You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

WireGuard VPN环境下Docker容器网络异常求助:pip无法访问pypi.org HTTPS、不同发行版容器apt-get表现不一致

WireGuard VPN环境下Docker容器网络异常求助:pip无法访问pypi.org HTTPS、不同发行版容器apt-get表现不一致

大家好,我最近碰到了一个非常诡异的网络问题,折腾好几天都没找到根源,想请教下各位有没有思路。

先交代下我的环境:

  • 两台机器:一台是作为WireGuard VPN服务器的Ubuntu 20.04,另一台是作为主机的Ubuntu 22.04
  • 两台机器通过WireGuard建立了VPN连接,主机的所有流量都通过VPN服务器转发
  • 主机上安装了Docker 23.0.1,两台机器的SSH连接都完全正常

核心问题

当我在Docker容器内执行pip install ****时,总会抛出超时错误:

HttpConnectionPool(host='pypi.org', port=443): Read timed out

排查出的奇怪现象

  • WireGuard关闭状态:所有操作一切正常,pip、apt-get都能正常访问网络
  • WireGuard开启状态
    • pip彻底失效,不管是Ubuntu还是Debian容器里都无法访问pypi.org的HTTPS端口
    • Ubuntu容器里的apt-get可以正常工作
    • Debian容器里的apt-get直接无法连接,更新失败
    • 特殊情况:如果先关闭WireGuard,在Debian容器内执行完apt-get update,再重新开启WireGuard,之后apt-get update又能正常运行了

已尝试的解决办法

  • 在VPN服务器和主机的WireGuard配置文件中都添加了DNS = 8.8.8.8
  • 两台机器的UFW防火墙都开放了UDP端口的双向访问权限

后续补充测试结果

之后我又用curl做了测试:在Ubuntu容器里,curl https://pypi.org必须关闭WireGuard才能成功,但curl http://pypi.org不管WireGuard是否开启都能正常访问。

实在搞不懂这到底是哪里出问题了,有没有大佬能帮忙分析下原因,或者给点排查方向?

备注:内容来源于stack exchange,提问作者Андрей Мельников

火山引擎 最新活动