我需要将所有对端口 80 的请求转发到 8020。我用 Google 搜索了一下,得到了:
iptables -t nat -I PREROUTING --source 0/0 --destination 0/0 -p tcp --dport 80 -j REDIRECT --to-ports 8020
现在,如果我将来必须撤消它,我该怎么办(除了重新启动系统)?
答案1
只需删除规则:
iptables -t nat -D PREROUTING --source 0/0 --destination 0/0 -p tcp --dport 80 -j REDIRECT --to-ports 8020
答案2
当我想删除 iptable 规则时,我发现完全重建它是一件很麻烦的事。相反,我会列出带有行号的规则,然后按行号删除。例如:
iptables -t nat -L --line-numbers
给出如下输出:
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8020
然后按号码删除:
iptables -t nat -D PREROUTING 1
警告:删除一行时,下面的所有行都会获得一个新的行号。例如,如果您有如下规则:
1 rule A
2 rule B
3 rule C
然后删除规则 2,则会得到:
1 rule A
2 rule C
答案3
我想知道是否可以使用 vim
iptables-save > editme
vim editme # remove the rule you dont want
iptables-restore < editme
答案4
您还可以使用此代码删除整个端口转发规则
sudo iptables -P FORWARD DROP