Docker 中带有 OpenVPN 的 IPv6
IPv6 with OpenVPN in Docker
我正在尝试在 docker 容器 (alpine:3.7) 运行 IPv6 中获取 OpenVPN。当 OpenVPN 主机不发送任何 IPv6 信息时,它工作正常。当它为我的连接发送 IPv6 地址时,我收到以下错误:
[...]
Wed May 30 08:32:20 2018 TUN/TAP device tun0 opened
Wed May 30 08:32:20 2018 TUN/TAP TX queue length set to 100
Wed May 30 08:32:20 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup=1
Wed May 30 08:32:20 2018 /sbin/ip link set dev tun0 up mtu 1500
Wed May 30 08:32:20 2018 /sbin/ip addr add dev tun0 10.4.1.112/16 broadcast 10.4.255.255
Wed May 30 08:32:20 2018 /sbin/ip -6 addr add fde6:7a:7d20:4::116e/64 dev tun0
RTNETLINK answers: Permission denied
Wed May 30 08:32:20 2018 Linux ip -6 addr add failed: external program exited with error status: 2
Wed May 30 08:32:20 2018 Exiting due to fatal error
我正在用
启动我的 docker 容器
sudo docker run -it --name container --cap-add=NET_ADMIN --device=/dev/net/tun myimage
知道吗,我必须添加哪个特权才能使其正常工作?
哦,我刚刚自己找到了解决方案:
必须通过设置 sysctl 值为容器启用 IPv6:
--sysctl net.ipv6.conf.all.disable_ipv6=0
所以没有上述问题的启动容器的最终命令是:
sudo docker run -it --name container --cap-add=NET_ADMIN --device=/dev/net/tun --sysctl net.ipv6.conf.all.disable_ipv6=0 myimage
我正在尝试在 docker 容器 (alpine:3.7) 运行 IPv6 中获取 OpenVPN。当 OpenVPN 主机不发送任何 IPv6 信息时,它工作正常。当它为我的连接发送 IPv6 地址时,我收到以下错误:
[...]
Wed May 30 08:32:20 2018 TUN/TAP device tun0 opened
Wed May 30 08:32:20 2018 TUN/TAP TX queue length set to 100
Wed May 30 08:32:20 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup=1
Wed May 30 08:32:20 2018 /sbin/ip link set dev tun0 up mtu 1500
Wed May 30 08:32:20 2018 /sbin/ip addr add dev tun0 10.4.1.112/16 broadcast 10.4.255.255
Wed May 30 08:32:20 2018 /sbin/ip -6 addr add fde6:7a:7d20:4::116e/64 dev tun0
RTNETLINK answers: Permission denied
Wed May 30 08:32:20 2018 Linux ip -6 addr add failed: external program exited with error status: 2
Wed May 30 08:32:20 2018 Exiting due to fatal error
我正在用
启动我的 docker 容器sudo docker run -it --name container --cap-add=NET_ADMIN --device=/dev/net/tun myimage
知道吗,我必须添加哪个特权才能使其正常工作?
哦,我刚刚自己找到了解决方案:
必须通过设置 sysctl 值为容器启用 IPv6:
--sysctl net.ipv6.conf.all.disable_ipv6=0
所以没有上述问题的启动容器的最终命令是:
sudo docker run -it --name container --cap-add=NET_ADMIN --device=/dev/net/tun --sysctl net.ipv6.conf.all.disable_ipv6=0 myimage