修改 Iptables 中的一行

Ren*_*ene 1 debian iptables

如何修改 iptables 文件(debian)中的以下行?

ACCEPT     all  --  XXX.XXX.XX.X         anywhere            PHYSDEV match --physdev-in vif3.1 
Run Code Online (Sandbox Code Playgroud)

ACCEPT     all  --  YYY.YYY.YY.Y         anywhere            PHYSDEV match --physdev-in vif3.1 
Run Code Online (Sandbox Code Playgroud)

我查找了 h ttps://wiki.debian.org/iptables ,我很难弄清楚如何准确地进行此修改。是否可以使用一个命令来完成,或者有一种方法可以暂时“提取”iptables 文件并使用 nano 或 vi 对其进行修改,然后将其放回原位?

Val*_*ami 5

要使用替换该特定规则,iptables您需要先进行一些调试。

第一个选项是立即替换规则。

1)查看所提到的行放置在什么行号和什么链中。例如:

iptables -L -v -n --line-n
Run Code Online (Sandbox Code Playgroud)

2)找到该行并根据输出替换它。

iptables -R [CHAIN_NAME] [LINE_NUMBER] -s YYY.YYY.YYY.YYY -m physdev  --physdev-in vif3.1  -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

第二个选项是保存iptables规则并修改文件并导入它。

1) 保存规则。

iptables-save > my_ipt-$(date +%F).ipt
Run Code Online (Sandbox Code Playgroud)

2)修改my_ipt-$(date +$F).ipt

3)导入 my_ipt-$(date +%F).ipt

iptables-restore < my_ipt-$(date +%F).ipt
Run Code Online (Sandbox Code Playgroud)

注意:$(date +%F)是您保存文件的日期,例如:2013-11-07

检查一切是否如预期

iptables -L -v -n --line-n
Run Code Online (Sandbox Code Playgroud)