如何捕获IP数据包,更改其内容并在Linux上重新发送?

时间:2012-04-03 10:04:57

标签: linux ip packet

我的问题是:

如何从网络接口捕获传入的IP数据包,更改其内容并从其他网络接口重新发送?

3 个答案:

答案 0 :(得分:5)

选择是你的,没有偏好(因此没有“正常”)。

  • 使用libnetfilter_queue传递给用户空间并在那里进行大量修改。
  • 或xtables模块,也可以工作(因为它无论如何都被NF调用)。在用户空间的帮助下允许足够的细粒度配置。
  • nfhook模块,如果必须的话。您必须自己实施的所有配置。
  • 好吧,最后,如果你喜欢受伤的东西,你也可以实现自己的虚拟网卡驱动程序。

答案 1 :(得分:3)

执行此类操作的常用方法是创建netfilter hook module

请参阅this example以便快速入门。

答案 2 :(得分:0)

您没有提及您打算准确更改的内容,因此很难正确回答您的问题。

对于路由器类设备上的内容替换(猜测), netsed 可能是最简单的方法。