删除 iptables 规则时出现问题

删除 iptables 规则时出现问题

我之前添加了以下规则:

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

相关内容