use*_*990 0 iptables forwarding
我想检查和修改从一个进程发送到另一个进程的 http 请求。为此,我有一个在本地主机端口 8080/tcp 上运行的代理。进程所有者是 root,它发送到的应用程序在本地主机端口 50000/tcp 上运行。该进程会产生新的子进程,这就是我选择上述路线的原因。我无法使用--pid-owner
。iptables 命令会是什么样子?
或者换种说法:
情况:
目标:
困难:
小智 5
我们需要拦截到本地主机 TCP/50000 的 P2 连接并将其转发到在 TCP/8080 上侦听的 PROXY - 必须将 PROXY 配置为将请求转发到 LOCALHOST TCP/5000。
为此,我们需要激活本地主机端口到 IPTABLES 的转发,更改以下系统参数:
sysctl -w net.ipv4.conf.all.route_localnet=1
Run Code Online (Sandbox Code Playgroud)
之后,此 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
Run Code Online (Sandbox Code Playgroud)
此配置也可以使用外部代理(意味着不在 P1 和 P2 运行的同一台机器上运行)将 IP 地址 127.0.0.1 更改为外部地址来工作:
--to-destination X.X.X.X:8080
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。