从另一个容器连接openvpn客户端容器

时间:2018-02-18 00:02:50

标签: docker openvpn

我设置了一个基于alpine的openvpn客户端容器,它连接到openvpn服务器,不知道它在哪里。我的想法是,我想在这个vpn网络中访问服务器而不是来自openvpn的容器(我可以成功ping通),而是来自另一个服务器,例如curl或ping到该服务器。

我在docker中设置了一个基本桥,并且容器(openvpn客户端和我尝试启动curl的bash)都连接到它。

我想念一下吗?因为我无法访问任何服务器连接到vpn。

2 个答案:

答案 0 :(得分:1)

ajankuv的第二个解决方案可能更好但是我在dperson / openvpn-client上找到的配置我能够从另一个容器成功到达openvpn网络。

docker openvpn client

docker run -it --privileged --name vpn --device /dev/net/tun <my_openvpn_image>

另一个容器使用--net = container:vpn

运行
docker run --rm --net=container:vpn --device /dev/net/tun byrnedo/alpine-curl <server_in_vpn>

现在我想我可能错误配置了docker bridge

答案 1 :(得分:0)

具有vpn连接的Docker容器不会在整个主机上启用vpn,除非您将所有流量从主机路由到它。这可能是一些奇特的路由表,但id建议反对它。

最好让主机运行客户端,然后将流量从docker容器路由到它。这将更容易实现。

其他选择是使用vpn构建一个基本容器,然后在其中添加额外的服务,这本身就不好玩或推荐。