使用 iptables,我失去了连接。冲洗后,连接恢复

使用 iptables,我失去了连接。冲洗后,连接恢复

这些是我在失去连接时使用的命令。

sudo iptables -I INPUT -j NFQUEUE --queue-num 0

sudo iptables -I OUTPUT -j NFQUEUE --queue-num 0

谁能告诉我为什么?

答案1

iptables' 的文档NF队列告诉:

--queue-bypass

默认情况下,如果没有用户空间程序正在监听 NFQUEUE,然后 所有要排队的数据包都被丢弃。使用此选项时,NFQUEUE 规则的行为类似于 ACCEPT,并且数据包将移至下一个表。

因此,这意味着您应该运行一个程序来接收通过该队列发送的数据包,但没有这样的进程在运行。

这是解释如何使用 NFQUEUE 的链接,包括示例代码(不能按原样使用):

Linux 及更高版本!使用 NFQUEUE 和 libnetfilter_queue

请注意,示例中使用的一些函数是已弃用

同时,如果您不想在设置此类程序或工具时失去连接但发生错误,您可以添加--queue-bypass这样的选项(但根据实现使用不同的队列可能是有意义的):

sudo iptables -I INPUT -j NFQUEUE --queue-num 0 --queue-bypass
sudo iptables -I OUTPUT -j NFQUEUE --queue-num 0 --queue-bypass

唉,这意味着你的过滤器输入输出链将被完全绕过,因为NF队列会表现为接受,而NF队列进程可以使用判决重新注入数据包以进行进一步处理NF_重复和标记,例如同一博客中的另一个链接中所述:

构建符合 Suricata 的规则集

相关内容