我正在尝试通过容器 A(10.10.1.3,haproxy,以透明代理模式设置)将容器 B(10.10.1.2,使用 mysql 的自定义二进制文件并在端口 4242 上运行)的 tcp 流量路由到外部世界,它们共享10.10.1.0/24
桥接模式下的相同用户定义的 docker 网络
容器 B 不暴露端口,只暴露容器 A。
在容器 B 上:
# ip route show
default via 10.10.1.1 dev eth0
10.10.1.0/24 dev eth0 proto kernel scope link src 10.10.1.2
# ip route replace default via 10.10.1.3
# ip route show
default via 10.10.1.3 dev eth0
10.10.1.0/24 dev eth0 proto kernel scope link src 10.10.1.2
Run Code Online (Sandbox Code Playgroud)
在容器 A(haproxy)上:
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.ip_nonlocal_bind=1
iptables -t mangle -N DIVERT
iptables -t mangle -A …
Run Code Online (Sandbox Code Playgroud)