Linux
如果規則文件中有 –multiport 選項,則 Debian buster/sid 中 的 iptables-restore 失敗
我的
/etc/iptables/rule.v4
文件包含許多規則,下面是我看到問題的那一行-A INPUT -p tcp -m multiport --dports 22 -j ACCEPT -A INPUT -p udp -m multiport --dports 16384:32768 -j ACCEPT
當我嘗試這樣做
iptables-restore
時失敗並出現以下錯誤root@rs-dal:/etc/iptables# iptables-restore rules.q iptables-restore v1.8.2 (nf_tables): multiport needs `-p tcp', `-p udp', `-p udplite', `-p sctp' or `-p dccp' Error occurred at line: 26 Try `iptables-restore -h' or 'iptables-restore --help' for more information. root@rs-dal:/etc/iptables#
為什麼它失敗了?,同樣的規則在
Debian Jessie
.同樣,當我更改如下規則時,它也起作用了。
-A INPUT -p tcp --dport 22 -j ACCEPT -A INPUT -p udp --dport 16384:32768 -j ACCEPT
我檢查了
iptables -L
這些規則並成功應用如下ACCEPT udp -- anywhere anywhere udp dpts:16384:32768 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
我目前擁有的規則是否是有效的語法?
以下是我的作業系統詳細資訊
root@rs-dal:/etc/iptables# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux buster/sid" NAME="Debian GNU/Linux" ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
正如使用者 AB 指出的那樣
nftables
,Buster 使用的 和iptables
.iptables
保存規則以iptables-restore
在兼容版本之間恢復的最佳方式。刪除違規行,並恢復規則:
iptables-restore < rules.q
將規則重新添加到您的配置中並保存:
iptables -A INPUT -p tcp -m multiport --dports 22 -j ACCEPT iptables-save > rules.q
現在嘗試再次恢復:
iptables-restore < rules.q
用於
iptables -L
驗證您的所有規則都已到位。