我想检查和修改发送给另一个进程的http请求。 为此,我有一个在本地主机端口8080 / tcp上运行的代理。 进程所有者是root,并且它发送的应用程序在localhost port 50000 / tcp上运行。 该过程产生新的子过程,这就是为什么我select上述路线。 我不能使用--pid-owner 。 这个iptables命令怎么样呢?
或者换句话说:
情况:
目标:
难点:
我们需要拦截到localhost TCP / 50000的P2连接,并将它转发到在TCP / 8080上监听的PROXY – 必须configurationPROXY来将请求转发到LOCALHOST TCP / 5000。
为此,我们需要激活localhost端口转发到IPTABLES,改变以下系统参数:
sysctl -w net.ipv4.conf.all.route_localnet=1
之后,这个IPTABLES命令应该把P2连接到TCP / 50000,并且对在端口TCP / 8080上监听的PROXY做NAT:
iptables -t nat -A OUTPUT -m addrtype --src-type LOCAL --dst-type LOCAL -m owner --uid-owner 0 -p tcp --dport 50000 -j DNAT --to-destination 127.0.0.1:8080
此configuration也可以使用外部PROXY(意味着不在运行P1和P2的同一台计算机上运行)将IP地址127.0.0.1更改为外部IP地址:
--to-destination XXXX:8080
希望这可以帮助。