在使用 Git 进行代码管理时,偶尔会收到 Failed to connect to github.com port 443 after ... ms: Couldn't connect to server 的错误提示。这类问题通常源于网络配置、代理设置或 DNS 缓存的干扰。根据你是否处于 VPN 环境,处理逻辑会有所不同。
使用 VPN 环境下的解决方案
当你开启 VPN 时,GitHub 连接失败往往是因为 Git 配置的代理端口与实际系统不一致,或者代理服务器本身不稳定。此时需要确保 Git 能正确通过代理访问外网。
1. 检查当前代理设置
先确认系统的代理端口。VPN 客户端通常会占用一个本地端口(如 127.0.0.1:1234)。
- Windows:进入 设置 > 网络和 Internet > 代理,查看'手动代理设置'中的地址和端口。
- macOS:在 系统偏好设置 > 网络 > 高级 > 代理 中查找。
记录下这个端口号,后续配置 Git 时需要用到。
2. 配置 Git 使用代理
让 Git 跟随系统的代理设置。假设你的代理端口是 1234,执行以下命令:
git config --global http.proxy http://127.0.0.1:1234
git config --global https.proxy http://127.0.0.1:1234
这样 Git 就会通过该代理转发请求。注意,如果之前配置过其他代理,这些命令会覆盖旧值。
3. 验证代理设置是否生效
配置完成后,列出全局配置确认一下:
git config --global -l
输出中应包含 http.proxy 和 https.proxy 且指向你刚才设置的地址。如果没看到,说明配置未成功写入。
4. 刷新 DNS 缓存
有时候 DNS 解析残留也会导致连接超时,建议刷新系统缓存后再试。
- Mac 用户:
sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder - Windows 用户:
ipconfig /flushdns
5. 重新尝试 Git 操作
完成上述步骤后,执行 git push 或 git pull 测试连接。如果依然失败,请检查 VPN 服务是否正常,或尝试切换节点。
未使用 VPN 环境下的解决方案
如果你没有开 VPN,却遇到同样的报错,大概率是 Git 配置里残留了之前的代理信息,导致它试图走不存在的代理通道。
1. 取消 Git 配置的代理
移除所有全局代理设置,恢复直连模式:
git config --global --unset http.proxy
git config --global --unset https.proxy
这两条命令会清除之前可能遗留的代理配置。
2. 验证代理设置已成功移除
再次运行查看配置的命令:
git config --global -l


