我之前添加了以下规则:
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp — dport 80 -j REDIRECT — to-port 3000
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp — dport 443 -j REDIRECT — to-port 8000
现在我需要删除它们。我首先尝试列出它们,sudo iptables -L INPUT --line-numbers
但它们没有出现在那里。我该如何删除它们?
答案1
您正在向 NAT 表的 PREROUTING 链添加规则,但您尝试从默认(过滤器)表的 INPUT 链中列出它们。
这不会显示您添加的规则。
您应该在 list 命令中指定 NAT 表 ( -t nat
) 和 PREROUTING 链 ( )。因此,正确的命令是:-L PREROUTING
sudo iptables -t nat -L PREROUTING --line-numbers
-A
只需将创建规则的命令中的 (add)改为 (delete) 即可删除规则-D
。因此,用于删除规则的命令变为:
sudo iptables -D PREROUTING -t nat -i eth0 -p tcp — dport 80 -j REDIRECT — to-port 3000
sudo iptables -D PREROUTING -t nat -i eth0 -p tcp — dport 443 -j REDIRECT — to-port 8000