感觉像是同时做 DNAT+SNAT ,然后转发到其他机器上。
本机:192.168.1.1
其他机器:192.168.1.2
两进程 localhost 通信
127.0.0.1:12345->127.0.0.1:8080
入站先使用 DNAT 变成 127.0.0.1:12345->192.168.1.2:80
出站使用 SNAT 变成 192.168.1.1:12345->192.168.1.2:80
这样其他机器的响应报文也可以发回来。
主要问题就是 localhost 好像和物理网卡的入站流量不太一样,iptables 拦截不太清楚能不能走到 PREROUTING 和 POSTROUTING 链,可能要开个 route_localnet 的选项 |