【问题标题】:Docker containers not accessible while connected on VPN在 VPN 上连接时无法访问 Docker 容器
【发布时间】:2021-02-08 02:31:41
【问题描述】:

我在我的 ubuntu 18.04 中使用 docker 19.03.5。通常,我可以访问所有容器。一切都很好,但是当我将我的机器连接到 VPN 客户端(Cisco anyconnect)时,真正的问题出现了。连接到 VPN 后,我无法访问任何容器。有什么方法可以让我访问连接到 VPN 的 docker 容器?

【问题讨论】:

  • 尝试删除docker网络:docker network prune
  • 为 docker 建立一个 diff 网络,在这里查看 33 票的答案:How make openvpn work with docker
  • 我尝试删除 docker 网络但没有用

标签: docker vpn


【解决方案1】:

此问题与 Docker 守护程序/容器设置无关。 VPN 服务器配置是罪魁祸首(禁用拆分包含或禁止本地网络访问)。

因为你有有限的选择来解决这个问题:

  • 请 VPN 服务器管理员允许拆分包含(mikrotik 术语)
  • 检查任何连接客户端设置,例如“通过 VPN 路由所有流量”并将其禁用
  • 在您的计算机上创建自定义静态路由,以通过 anyconect 客户端创建的接口访问特定 IP 范围(VPN 服务器后面的服务器)

【讨论】:

    【解决方案2】:

    我遇到了这个问题并尝试了互联网上所有可能的解决方案,但没有任何效果。看起来 Cisco Anyconnect vpn 对系统的路由进行了独占控制,所做的任何更改都没有显示任何效果。

    以下内容对我有用。使用 OpenConnect VPN 代替 Cisco Anyconnect。两者都使用相同的协议。下载:

    sudo apt install openconnect network-manager-openconnect network-manager-openconnect-gnome
    

    重新启动您的 PC,然后转到 VPN 设置 -> 多协议 VPN 客户端(打开连接)并根据您的组织要求提供设置。

    【讨论】:

      【解决方案3】:

      这是因为 VPN 配置为使用全隧道。网络管理员应配置拆分隧道配置文件。

      全调:

      [PC] ---> [VPN] ---> { all networks
      

      拆分隧道:

      [PC]  ------> [VPN] ---> [Configured networks]
            \-----> [Internet / other networks]
      

      您可以尝试的另一件事是编辑路线。 您可以添加一个指向您的容器 IP 的路由并指定好的网络适配器,然后您必须在此路由上设置比 VPN 的默认网关更高的优先级。

      【讨论】:

      • @abdullah-toufiq 如果我的回答对您有所帮助,如果您可以投票或将其标记为答案,将不胜感激。如果是这种情况,您还可以告诉我为什么它不能解决您的问题。
      • 从cisco anyconnect VPN客户端切换到openConnect vpn客户端后,问题已解决
      猜你喜欢
      • 2021-05-22
      • 1970-01-01
      • 2016-11-24
      • 2023-03-23
      • 2021-05-22
      • 2017-05-19
      • 2020-12-16
      • 2017-06-04
      • 1970-01-01
      相关资源
      最近更新 更多