如何在 Docker 容器内运行 OpenVPN 客户端?

如何在 Docker 容器内运行 OpenVPN 客户端?

我想在 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 访问。

答案1

我成功了。看来我必须手动启用 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

相关内容