在处理连接的进程获取流之前,我需要对来自已知tcp host:port的传入流量进行一些小的修改。
例如,让192.168.1.88成为运行Web服务器的远程主机。
我需要这样,当我本地主机上的某个进程从192.168.1.88:80(例如浏览器)接收到数据时,首先将数据更改text-A
为text-B
,如下所示:
- 127.0.0.1:...连接到192.168.1.88:80
127.0.0.1:...发送到192.168.1.88:80:
GET /
192.168.1.88:80发送到127.0.0.1:...:
HTTP/1.0 200 OK Content-Type: text/plain Some text-A, some other text
该数据在某种程度上被系统拦截,并传递给程序,其输出为:
HTTP/1.0 200 OK Content-Type: text/plain Some text-B, some other text
系统会将更改后的数据提供给处理127.0.0.1:...的过程,就像它来自192.168.1.88:80一样。
假设我有一种基于流的方法来进行此更改(sed
例如使用),预处理传入的tcp流的最简单方法是什么?
我想这会涉及到iptables
,但我不是很擅长。
请注意,该应用程序应具有处理原始主机的感觉,因此设置代理不太可能是一种解决方案。