Linux

iptables 錯誤:未知選項 –dport

  • February 18, 2022

命令 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 或泰拉瑞亞伺服器,或完全其他服務)。但即使這樣也行不通:

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

用禮貌的話說,這變得非常令人沮喪(與此相關的大量詛咒會使水手告訴我要注意我的嘴巴)。我的 Google-fu 很糟糕,所以我還沒有找到一個可行的解決方案。我在路由器上執行 CentOS 6.5。你們可以提供的任何幫助和指示都會很棒。

編輯:

額外的問題:我也計劃配置埠轉發。是否仍然需要設置規則以接受通過特定埠的傳入連接?

首先給出一個-p選項,例如-p tcpor -p udp

例子:

iptables -A INPUT -p tcp –dport 22 -m state –state NEW -j DROP

iptables -A INPUT -p udp –dport 53 –sport 1024:65535 -j ACCEPT

您也可以嘗試-p all,但我從未這樣做過,並且在範例中沒有找到太多支持。

如果使用 –dport,則需要協議 (-p)。例子:

-p tcp

引用自:https://serverfault.com/questions/563033