在 Linux 中转发之前修改传入数据包

在 Linux 中转发之前修改传入数据包

我使用的是 Linux(基于 Debian)系统,该系统启用了 IP 转发(/proc/sys/net/ipv4/ip_forward 设置为 1)。我可以使用原始套接字程序读取传入的数据包,但我想在转发之前修改其内容。此链接提到我可以使用一个iptables REDIRECT rule将传入的数据包发送到我的程序正在监听的端口,但我没有找到有关具体如何执行此操作的任何信息。我​​主要想知道:

  1. 修改数据包后,我该如何转发它们?我是否必须在收到并修改数据包后手动从程序将它们发送到其目标地址?

  2. 如果程序没有监听特定端口(例如,仅关注数据包的 IP 头的程序),我应该怎么做。

如果有任何问题,请在同一接口 (wlan0) 上接收和转发数据包。我必须将数据包转发到同一 WLAN 上的设备,并从这些设备接收数据包。

相关内容