Какой идиоматический способ разрешить входящие соединения через TCP-порт с 2021 года?

Просто добавил примечание к отличному ответу @ilkkachu, чтобы объяснить логику. Команда

truncate -s 1k {1..1000000}

вызывает truncateс одним миллионом аргументов плюс три (truncate(argv[0]), -sи 1k), что значительно превышает ограничение по умолчанию совокупного числа и размера аргументов и переменных среды для execve()системный вызов в большинстве систем. Отсюда и ошибка "Слишком длинный список аргументов" .

Вместо этого предлагаемое решение

seq 1 1000000 | xargs truncate -s 1k

просто запускаетtruncate(черезxargs)столько раз, сколько необходимо, с таким количеством аргументов (, кроме truncate, -sи 1k, которые повторяются при каждом вызове ), насколько это возможно, чтобы избегайте этого ограничения системного вызова execve().

-1
10.10.2021, 19:44
1 ответ

Поскольку вы используете Debian 11, рекомендуемым способом действительно будет nftables. Nftables хранит свою конфигурацию в одном файле :/etc/nftables.conf, который затем читается при запуске.

Debian поставляет примеры конфигурации в /usr/share/doc/nftables/examples/, которые могут оказаться полезными.

Внешние ссылки, которые могут оказаться полезными:

Чтобы ответить на ваш вопрос прямо:

# apt install nftables
# service nftables start
# nft add rule inet filter input tcp dport 5123 ct state new,established accept

Он также отлично работает без systemd, если nftables активируется в sysvinit или openrc.

1
10.10.2021, 21:25

Теги

Похожие вопросы