linux - 如何从 iptables 中删除特定规则?

我分别在端口 8006 和 8007 上托管特殊的 HTTP 和 HTTPS 服务。我使用 iptables 来“激活”服务器;即路由传入的 HTTP 和 HTTPS 端口:

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006 
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007  
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8006
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 443 -j REDIRECT --to-ports 8007 

这就像一个魅力。但是我想创建另一个脚本来再次禁用我的服务器;即将 iptables 恢复到运行上述行之前的状态。但是,我很难弄清楚删除这些规则的语法。唯一可行的方法是完全冲洗:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

但这也会删除其他不需要的 iptables 规则。

最佳答案

执行相同的命令,但将“-A”替换为“-D”。例如:

iptables -A ...

变成

iptables -D ...

https://stackoverflow.com/questions/10197405/

相关文章:

python - 在多个模块中使用日志记录

linux - 在 Linux 中更改默认 shell

windows - Windows 和 Linux 目录名称中禁止使用哪些字符?

python - 如何格式化小数以始终显示 2 个小数位?

linux - 如何在不输入 'screen' 的情况下退出 'exit' ?

python - 什么时候 "i += x"与 Python 中的 "i = i + x"不同?

linux - 在每行的开头添加前缀字符串

python - cron 和 virtualenv

linux - Linux 中是否有任何标准的退出状态代码?

python - 转义正则表达式字符串