【问题标题】:Connect through openvpn client container from another container从另一个容器通过 openvpn 客户端容器连接
【发布时间】:2018-02-18 00:02:49
【问题描述】:

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

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

我错过了什么吗?因为我无法访问任何连接到 vpn 的服务器。

【问题讨论】:

  • 这太令人困惑了,你有一个带有 openvpn 的容器连接到一个 openvpn 服务器,但你没有使用它?
  • 是的。我希望其他容器通过安装了 openvpn 的容器连接。如果我有 n 个需要相同 vpn 连接的独立应用程序(一个用于容器),为什么我必须在所有 n 个容器上安装 openvpn?这个问题对我来说似乎是合法的,但我没有真正使用 docker 的经验。

标签: docker openvpn


【解决方案1】:

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

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

另一种选择是使用 vpn 构建一个基础容器,然后在其中添加额外的服务,这本身并不有趣或不推荐。

【讨论】:

  • 知道了,谢谢!没有声誉可以投票,但谢谢!
  • 无忧,乐于助人!
【解决方案2】:

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

docker openvpn 客户端

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 桥

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2023-01-14
    • 2021-08-27
    • 2018-01-26
    • 2019-12-28
    相关资源
    最近更新 更多