iptables在列表中移动规则

use*_*662 18 linux android firewall iptables

我有2个iptables规则

iptables -A INPUT -s 5.5.5.5 -j DROP
iptables -A INPUT -s 6.5.5.5 -j ACCEPT 
Run Code Online (Sandbox Code Playgroud)

是否有一个函数或命令将规则交换为这样:

iptables -A INPUT -s 6.5.5.5 -j ACCEPT 
iptables -A INPUT -s 5.5.5.5 -j DROP
Run Code Online (Sandbox Code Playgroud)

d3v*_*kit 28

首先检查行号:

iptables -nL --line-numbers
Run Code Online (Sandbox Code Playgroud)

根据行删除:

iptables -D INPUT {line}
Run Code Online (Sandbox Code Playgroud)

插入您希望的位置:

iptables -I INPUT {line} -i lo -p tcp --dport {port} -j ACCEPT -m comment --comment "This rule is here for this reason"
Run Code Online (Sandbox Code Playgroud)

在这些来源找到:

删除规则

插入规则


小智 8

我们对某些规则的顺序存在问题,我发现更改此问题的最有效方法是使用两种工具:

  1. iptables-保存
  2. iptables-恢复

首先将规则转储到文件中:

sudo iptables-save > /root/iptrules.txt
Run Code Online (Sandbox Code Playgroud)

然后使用您喜欢的文本编辑器编辑该文件:

sudo vim /root/iptrules.txt
Run Code Online (Sandbox Code Playgroud)

进行必要的动作,然后恢复规则:

sudo iptables-restore < /root/iptrules.txt
Run Code Online (Sandbox Code Playgroud)


Man*_*nde 3

没有这样的命令可以交换两个 iptables 规则。

您只需删除它们并将它们插入到适当的位置即可。