Linux 不使用 iptables `--reject-with` 发送 ICMP

Linux 不使用 iptables `--reject-with` 发送 ICMP

我正在尝试拒绝数据包iptables(我想返回一个 ICMP 消息)。

iptables -A FORWARD [...] -j REJECT --reject-with icmp-port-unreach

数据包被丢弃了,但是使用时tcpdump我看不到ICMP。怎么回事?我做错了什么吗?我需要翻转一些sysctl还是其他什么?

内核是:2.6.32-5-openvz-686

不建议“用……DROP代替REJECT”。

答案1

iptables --list --verbose您确定有问题的数据包符合您要拒绝的规则吗?当您查看详细输出 ( )时,您是否看到与该规则相关的计数器在增加?

您是否尝试过禁用除该规则之外的所有其他 iptables 规则,以确保没有其他规则干扰?

答案2

你确定你击中了 FORWARD 链吗?你可以添加一条规则来记录所有匹配的数据包。

 iptables -I FORWARD [...] -j LOG --log-prefix "FORWARDED"

如果添加该规则后您无法在 /var/log/messages 上看到任何内容,则您可能使用了错误的链(INPUT 而不是 FORWARD?)或错误的条件。

相关内容