Vpn

從外部(主機或其他容器)訪問 docker 容器的 VPN

  • October 23, 2017

我在同一台機器上有幾個 docker 容器,其中一個正在執行 OpenVPN 伺服器,因此它具有網路介面tun0( 192.168.255.1)。這個虛擬專用網路有一個192.168.255.2遠端客戶端。

我需要能夠從另一個 docker 容器或主機與該遠端客戶端通信,就好像它們在同一個本地網路中一樣。我在主機上添加了路由:

# 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 這正是我配置的內容,除了我沒有使用預設的 Docker 橋,而是創建了一個專用的橋。但它與預設網橋類似。

您確實必須添加正確的路由(就像您所做的那樣),但您至少還需要允許在您的 iptables 上進行轉發,例如sudo iptables -A FORWARD -i tun+ -j ACCEPT.

確保還擁有client-to-client並且topology subnet至少在您的 OpenVPN 伺服器配置中。

所有細節都在我的另一個答案中。

引用自:https://serverfault.com/questions/831736