我在同一台机器上有几个Docker容器,其中一个运行OpenVPN服务器,所以它有networking接口tun0 ( 192.168.255.1 )。 该虚拟专用networking远程具有一个客户端192.168.255.2 。
我需要能够从另一个docker集装箱或主机与远程客户端进行通信,就好像它们将在同一个本地networking中一样。 我在主机上添加了路由:
# ip route add 192.168.255.0/24 dev docker0
现在我可以ping 192.168.255.1 (VPN服务器),但客户端无法访问:
# ping 192.168.255.2 PING 192.168.255.2 (192.168.255.2) 56(84) bytes of data. From 172.17.0.1 icmp_seq=1 Destination Host Unreachable From 172.17.0.1 icmp_seq=2 Destination Host Unreachable From 172.17.0.1 icmp_seq=3 Destination Host Unreachable
我尝试TAP和TUN OpenVPN设备模式,默认和子网拓扑 – 没有帮助
你应该看看我的答案在这里: https ://serverfault.com/a/879809/67419这正是我已经configurationexecpt,我没有使用默认的docker桥,但创build了一个专用的。 但是它的工作原理与默认桥相似。
你确实必须添加正确的路由(就像你一样),但是你至less还需要在你的iptables上允许FORWARDING,比如sudo iptables -A FORWARD -i tun+ -j ACCEPT 。
请确保至less在您的OpenVPN服务器configuration中具有client-to-client和topology subnet 。
所有的细节都在我的其他答案。