gpt4 book ai didi

linux - 没有 GPL 的数据包注入(inject)、过滤和压缩?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:31 53 4
gpt4 key购买 nike

我必须在 Linux 系统上进行数据包检查、处理、丢弃和注入(inject)数据包。理想情况下,这也应该在用户空间以及 IP 数据包和以太网帧上。

不幸的是,我不能为此使用 OpenSource,这基本上排除了任何基于 NFQUEUElibnetfilter_queue 的方法,因为所有 netfilter(和他们的狗)仅适用于 GPL。

我考虑过通过简单地调用 iptables 来并行使用 TAP/TUN 设备来控制 netfilter,但这似乎充其量是困惑的......

那么,是否有 netfilter 的替代方案?

最佳答案

我认为您的问题是 libnetfilter 受 GPLv2 许可(而非 LGPL)的约束,因此基于这些构建的任何项目也将受 GPLv2 许可的约束;这是你想要避免的(我认为)。

另一种方法是使用不受 GPLv2 许可约束的语言绑定(bind)。一个候选人似乎是 Go 绑定(bind) - 请参阅 here例如,它似乎是在 Apache 许可下。我显然没有检查其中每个文件的出处。另一种方法是将您的应用程序分成两部分 - 一个与 Netfilter 通信的小层,通过(例如)RPC 接口(interface)与您的应用程序的其余部分进行通信。

然而,上次我遇到这个问题时,我使用了 libpcap,它是 BSD 许可的。一个鲜为人知的事实是 libpcap 可以发送和接收原始数据包。但是,它的级别比 netfilter 低得多 - 您获得的是原始数据包,仅此而已。

关于linux - 没有 GPL 的数据包注入(inject)、过滤和压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16398711/

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