Networking

如何在 docker 容器中執行 OpenVPN 客戶端?

  • July 12, 2019

我想在 docker 容器中執行 OpenVPN 客戶端。我在臨時測試中嘗試如下:

docker run -it --rm --cap-add=NET_ADMIN --device /dev/net/tun -v $PWD:$PWD ubuntu bash

in the container:

apt-get update && apt-get install -y openvpn
openvpn --config myconfig.ovpn

-v $PWD:$PWD(為了這個臨時測試,我添加了卷掛載以將我的 OpenVPN 配置放入容器中。)

然後我突然進入日誌記錄:

Fri Jul 12 17:19:37 2019 /sbin/ip -6 addr add <ip>/64 dev tun0
RTNETLINK answers: Permission denied
Fri Jul 12 17:19:37 2019 Linux ip -6 addr add failed: external program exited with error status: 2
Fri Jul 12 17:19:37 2019 Exiting due to fatal error

IPv6 似乎存在一些問題,但我現在不知道如何繼續。

請注意,如果我重複上述--net=host操作docker run,則一切正常。但這不是我真正想要的。我想讓 OpenVPN 客戶端在容器中隔離執行。

對於它的價值,我不需要 IPv6。VPN 網路中所有可訪問的主機都可以通過 IPv4 訪問。

我讓它工作了。看來我必須手動啟用 IPv6:

docker run -it --rm --cap-add=NET_ADMIN --device /dev/net/tun \
          --sysctl net.ipv6.conf.all.disable_ipv6=0 -v $PWD:$PWD \
          ubuntu bash

引用自:https://unix.stackexchange.com/questions/529867