基本Netfilterqueue用法Python

基本Netfilterqueue用法Python,python,network-programming,iptables,netfilter,Python,Network Programming,Iptables,Netfilter,我想充当一个代理,如果可能的话,我想管理来自第2层或第3层的接收数据包,我正在与之斗争,最基本的是,我无法让它工作,我告诉你我做什么: 这是我的代码(proxda.py) 代码直接取自python文档: 这是我配置的iptable规则: iptables -I INPUT -d 173.16.0.229 -j NFQUEUE --queue-num 1 这个想法是所有发送到173.16.0.229的流量都会进入我的程序 这就是场景,非常简单: 当我的程序proxa.py运行时,我执行从173.

我想充当一个代理,如果可能的话,我想管理来自第2层或第3层的接收数据包,我正在与之斗争,最基本的是,我无法让它工作,我告诉你我做什么:

这是我的代码(proxda.py)

代码直接取自python文档:

这是我配置的
iptable
规则:

iptables -I INPUT -d 173.16.0.229 -j NFQUEUE --queue-num 1
这个想法是所有发送到173.16.0.229的流量都会进入我的程序

这就是场景,非常简单: 当我的程序proxa.py运行时,我执行从173.16.0.236到173.16.0.229的ping操作,但不捕获任何内容

知道我在哪里失败了吗?知道如何调试它/让它工作吗


提前谢谢。

我问自己,问题是关于iptables的规则,我的IP是173.16.0.236,我正在过滤173.16.0.229的传入流量。 只要改变一下:

iptables -I INPUT -d 173.16.0.229 -j NFQUEUE --queue-num 1 

to: iptables -I OUTPUT -d 173.16.0.229 -j NFQUEUE --queue-num 1 

or to :  iptables -I INPUT -d 173.16.0.236 -j NFQUEUE --queue-num 1.
注意最后一行,因为我们机器的所有输入流量都将进入NFQUEUE,在我的情况下,这是一场灾难,因为我通过ssh连接,连接将中断。 例如,我使用的规则是:

iptables -I OUTPUT -s 173.16.0.236 -p tcp --dport 80 -j NFQUEUE --queue-num 1
iptables -I OUTPUT -s 173.16.0.236 -p tcp --dport 80 -j NFQUEUE --queue-num 1