ошибка iptables: неизвестная опция --dport

ошибка iptables: неизвестная опция --dport

Команда iptables больше не распознает один из наиболее часто используемых параметров при определении правил: --dport.

Я получаю эту ошибку:

[root@dragonweyr /home/calyodelphi]# iptables -A INPUT --dport 7777 -j ACCEPT_TCP_UDP
iptables v1.4.7: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.

Приведенная выше команда добавления правила — это всего лишь пример включения подключений Terraria.

Вот что у меня сейчас есть в качестве базовой конфигурации iptables ( listiptablesимеет псевдоним iptables -L -v --line-numbers), и очевидно, что это --dportработало в прошлом:

root@dragonweyr /home/calyodelphi]# listiptables 
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       39  4368 ACCEPT     all  --  lo     any     anywhere             anywhere            
2      114 10257 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
3        1    64 ACCEPT     tcp  --  eth1   any     anywhere             anywhere            tcp dpt:EtherNet/IP-1 
4       72 11610 ACCEPT     all  --  eth1   any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 91 packets, 10045 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain ACCEPT_TCP_UDP (0 references)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            

Я также пытаюсь создать индивидуальную цепочку (вдохновленнуюэтот вопрос) для приема соединений tcp и udp, чтобы мне не приходилось определять два правила для всего, для чего я хочу включить tcp и udp (например, сервер Minecraft или Terraria или вообще другая служба). Но даже это не работает:

[root@dragonweyr /home/calyodelphi]# iptables -P ACCEPT_TCP_UDP DROP
iptables: Bad built-in chain name.

Это становится очень раздражающим, если говорить вежливо (количество ругательств, связанных с этим, заставило бы моряка сказать мне, чтобы я следил за своим языком). Мой Google-fu ужасен, поэтому я пока не нашел работающего решения для всего этого. Я использую CentOS 6.5 на маршрутизаторе. Любая помощь и указания, которые вы, ребята, можете предложить, были бы потрясающими.

РЕДАКТИРОВАТЬ:

Бонусный вопрос: Я также планирую настроить переадресацию портов. Нужно ли все еще устанавливать правила для приема входящих соединений через определенные порты?

решение1

Сначала укажите -pвариант типа -p tcpили -p udp.

Примеры:

iptables -A ВХОД -p tcp --dport 22 -m состояние --state НОВЫЙ -j ОТБРОС

iptables -A ВХОД -p udp --dport 53 --sport 1024:65535 -j ПРИНЯТЬ

Вы также можете попробовать -p all, но я никогда этого не делал и не вижу в примерах особого подтверждения этому.

решение2

Другое возможное решение — вы забываете запустить как root. Я только что столкнулся с этим, когда использовал руководство Debian

$ iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1  --dport 80 -j REDIRECT --to-ports 8080
iptables v1.8.2 (nf_tables): unknown option "--dport"
$ sudo iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
# OK

решение3

Протокол (-p) требуется, если вы используете --dport. Пример:

-p tcp

решение4

@dmourati и @diegows уже ответили на ваш первый вопрос, так что я займусь вашим вторым вопросом. И бонусным вопросом. И я также добавлю бонусный совет ;)

iptables -P толькопринимает ВСТРОЕННЫЕ цепи. В filterтаблице это будут цепи INPUT, OUTPUT, и .FORWARD

Переадресация портов не обрабатывается цепочкой INPUT, поэтому вам не нужно открывать порт вINPUT цепочке. ЭтоделаетНо пусть тебя обслужит FORWARDцепь. Будь осторожен с этим.

Бонусный совет:При обучении и/или устранении неполадок iptablesвывод на iptables-saveголову лучше, чем вывод iptables -L -v --line-numbers. Попробуйте, вы будете приятно удивлены :)

Связанный контент