gpt4 book ai didi

python - Linux libnetfilter_queue延迟包问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:34 24 4
gpt4 key购买 nike

我必须使用 Linux 内核 libnetfilter_queue(准确地说是 python 绑定(bind))和 dpkt 来过滤和修改网络流量,并且我正在尝试实现延迟数据包转发。

普通过滤效果很好,但如果我尝试使用这样的功能延迟数据包

def setVerdict(pkt, nf_payload):
nf_payload.set_verdict_modified(nfqueue.NF_ACCEPT, str(pkt), len(pkt))


t = threading.Timer(10, setVerdict, [pkt, nf_payload])
t.start()

它崩溃时没有抛出任何异常(肯定是低级崩溃)。我可以像这样直接使用 libnetfilter 实现延迟,还是我必须复制 pkt,删除它并使用标准 socket.socket.send() 发送副本?

谢谢

最佳答案

很抱歉回复晚了,但我需要做这样的事情,虽然稍微复杂一些。我使用了库的 C 版本,并将数据包复制到程序中的缓冲区,然后发出 DROP 判决。在与您的延迟相关的超时后,我使用原始套接字重新注入(inject)数据包。这工作正常,而且似乎非常有效。

我认为你崩溃的原因是你没有足够快地做出判断。

关于python - Linux libnetfilter_queue延迟包问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com