Docker容器内WireGuard实例跨接口双向数据转发配置求助
Docker容器内WireGuard实例跨接口双向数据转发配置求助
大家好,我遇到了一个WireGuard容器的双向转发问题,想请各位帮忙排查下:
我有一个运行在Docker网络上的WireGuard容器,Docker网络的子网是10.18.0.0/16,容器自身的IP是10.18.0.2。目前我能通过容器内的tcpdump看到eth0接口有数据进来,但需要实现双向数据转发——把eth0上的所有数据转发到wg0接口(对应地址10.10.10.1),同时wg0接口的数据也要能转发回eth0。
我已经尝试了两种配置命令,但都没达到预期效果:
第一种尝试的命令:
docker exec --privileged wireguard sh -c " sudo iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT sudo iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT sudo iptables -A FORWARD -i eth0 -o wg0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wg0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 ip route add 10.10.10.0/24 dev wg0 "
第二种尝试的命令(未完成部分按原内容保留):
docker exec --privileged wireguard sh -c " sudo iptables -A FORWARD -i eth0 -o wg0 -j ... "
有没有大佬能帮我看看哪里配置有问题?或者有没有更合适的双向转发配置方案?
备注:内容来源于stack exchange,提问作者adastra




