无法访问 pypi.org

无法访问 pypi.org

背景:我有两台机器:

  1. VPN 服务器(Ubuntu 20.04)
  2. 主机(Ubuntu 22.04)
  3. 它们都通过 WireGuard VPN 连接,并且主机通过 VPN 服务器传输所有流量。
  4. 在主机上我有docker(23.0.1)
  5. SSH 工作正常(我可以通过 SSH 连接到两台机器)

当我在 docker 中运行容器并运行 pip install **** 时,出现错误 pypi.orgHttpConnectionPool(host='pypi.org',port=443):读取超时

我无法理解这个道理。

我的发现:

  1. 当 WireGuard 关闭时,一切正常
  2. 如果 WireGuard 已打开:
  • pip 根本不起作用
  • 如果我运行 Ubuntu 容器apt-get工作正常
  • 如果我运行 Debian 容器apt-get不起作用
  • 如果我运行 WG run 的 Debian 容器切换apt-get 更新然后打开 WG,然后apt-get 更新工作正常。

我做了什么:

  • 将 DNS = 8.8.8.8 添加到 VPN 服务器配置、主机配置
  • 在两台机器上的 UFW 端口/upd 都允许双向

我很高兴收到任何建议。并解释发生了什么

=======

继续搜索:我发现 curlhttps://pypi.org在 Ubuntu 容器中,直到我关闭 WireGuard 后才可以工作,但是 curlhttp://pypi.org任何时候都可以正常工作。

答案1

问题出在 MTU 大小上。我已在 WireGuard 服务器配置和 WireGuard 客户端配置中增加了 MTU 大小

[Interface]
...
MTU=1500
...

答案来源在这里https://github.com/cmulk/wireguard-docker#other-notes。作者写道,HTTP、Pint 工作正常而 HTTPS 和 SSL 不工作时会出现问题。然后他给出了解决方案的链接。

相关内容