如何针对每个特定的接收数据包运行一个函数?

如何针对每个特定的接收数据包运行一个函数?

我正在为我的硕士论文做实验。我想在收到特定数据包(例如目标 TCP 端口为 6666 的数据包)时运行一个函数(例如将两个数字相乘),然后将数据包转发到另一个 IP 地址。我该怎么做?我使用的是 Linux Ubuntu。谢谢。

答案1

由于您使用的是 Linux,因此这非常简单,在 Linux 中,数据包由结构 sk_buff 表示。您可以使用带有预路由钩子的 netfilter 框架,通过使用其协议和目标端口号来破坏数据包。请参阅 netfilter 框架文档。

相关内容