我想检查和修改从一个进程发送到另一个进程的 http 请求。为此,我在 localhost 端口 8080/tcp 上运行了一个代理。进程所有者是 root,它发送到的应用程序在 localhost 端口 50000/tcp 上运行。该流程会产生新的子流程,这就是我选择上述路线的原因。我不能用--pid-owner
。用于此的 iptables 命令看起来如何?
或者换个说法:
情况:
- 有一个进程 p2,它使用 HTTP 与另一个进程 p1 进行通信。
- p2 和 p1 在本地主机上运行
- p1 在 50000/tcp 上运行
- p2 -> p1
目标:
- 通过代理运行流量。
- 代理也在 localhost 上运行。
- 端口 8080/tcp。
- p2 -> 代理 -> p1
困难:
- 我没有在 p2 中指定代理的选项。
- 一切都在本地主机上运行
我们需要拦截到 localhost TCP/50000 的 P2 连接并将其转发到侦听 TCP/8080 的 PROXY - 必须将 PROXY 配置为将请求转发到 LOCALHOST TCP/5000。
为此,我们需要激活 localhost 端口到 IPTABLES 的转发,更改以下系统参数:
之后,此 IPTABLES 命令应将 P2 连接连接到 TCP/50000,并对侦听端口 TCP/8080 的代理执行 NAT:
此配置也可以使用外部 PROXY(意味着不在运行 P1 和 P2 的同一台机器上运行)将 IP 地址 127.0.0.1 更改为外部地址:
希望这可以帮助。