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

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

问题描述:

我的问题是:如何捕获IP数据包,更改其内容并在Linux上重新发送?

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

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

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

通常的做法是创建一个netfilter hook module

查看this example快速入门。

你没有提到你打算改变什么,这使得很难正确回答你的问题。

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