我需要使用 VPN 来连接容器所需的一些资源。因此我使用集成打开连接Ubuntu 网络管理器中的客户端。当我连接到 VPN 时,从 Docker 容器内部,我
- 可以访问正常的http网站
- 只能通过我的 VPN 访问 http 网站
- 无法通过 VPN 或互联网访问任何 https 站点(我甚至没有遇到超时)
从我的主机终端内部,我可以访问任何 http 和 https 站点。我使用 curl 进行了测试,因为我的 VPN 阻止了本地网络之外的 Ping。
当我断开与 VPN 的连接时,从我的 docker 容器内部
- 可以访问正常的http网站
- 无法访问任何仅可通过 VPN 访问的网站(显然)
- 可以访问普通https网站
因此,我可以将问题缩小到依赖于我的 VPN 连接,但也仅发生在 Docker 容器内。
为什么会发生这种情况,我如何从 Docker 容器内部访问 VPN 中的 HTTPS 站点?
答案1
我在 Ubuntu 17.10 上遇到了同样的问题,并通过使用禁用 DTLS 的 openconnect 命令行实用程序而不是 Ubuntu 的 NetworkManager 连接到我的 VPN 解决了该问题。
openconnect VPNURL --user=USER --interface=tun0 --no-dtls