Просто добавил примечание к отличному ответу @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()
.
Поскольку вы используете 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.