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


2

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

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

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

如果重要的是接收和转发是在同一个接口(wlan0)上完成的。我必须将数据包转发到同一WLAN上的设备并从其接收数据包。


似乎这个关于服务器故障的答案可能会有所帮助。serverfault.com/a/321671
JakeGould

你打算做什么样的修改?有些可以在iptables中完成。
保罗

@Paul基本上我必须修改一些ICMP数据包,但如果程序能够做到这一点会更好(如果我将来必须做一些非常特别的事情)。
Awais Chishti 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.