外观
报错 Failed to connect to github.com port 443 解决方法
执行 git clone / git push 时报:
text
fatal: unable to access 'https://github.com/...':
Failed to connect to github.com port 443 after 21090 ms: Connection timed out或 Connection refused。这说明 Git 走 HTTPS(443 端口)连不上 GitHub。按下面顺序排查,90% 能定位。
先分清 timed out 和 refused
| 报错 | 含义 | 优先怀疑 |
|---|---|---|
Connection timed out | 连接发出去没回应 | 网络封锁 / DNS / 代理没开 |
Connection refused | 目标明确拒绝 | 代理配错端口 / 本地代理没运行 |
方法一:检查是不是"代理残留"(最常见)
很多人之前配过 git 代理,后来代理客户端关了,但 git 配置还指着 127.0.0.1:7890,于是每次都连一个没开的端口 → refused 或 timed out。
bash
# 查看 git 当前代理配置
git config --global --get http.proxy
git config --global --get https.proxy如果输出了 127.0.0.1:xxxx 但你现在没开代理,清掉它:
bash
git config --global --unset http.proxy
git config --global --unset https.proxy反过来:如果你现在有代理,那就确认端口对不对(见方法二)。
方法二:确认代理是否开启、端口是否正确
bash
# 单独测代理端口能否通到 github(把 7890 换成你的端口)
curl -x http://127.0.0.1:7890 https://github.com -I- 通了 → 把 git 代理指到这个端口:参考 Git 设置代理。
- 不通 → 代理客户端没开,或端口填错(HTTP 端口 vs SOCKS 端口别搞混)。
方法三:测试 443 端口连通性
bash
# 直接测能否连到 github 443
curl -v https://github.com
# 或用 telnet / Test-NetConnectionWindows PowerShell:
powershell
Test-NetConnection github.com -Port 443如果 TcpTestSucceeded 为 False,说明 443 直连被网络阻断 → 需要代理,或对 SSH 用户改走 SSH 443。
方法四:排查本地防火墙 / 安全软件
- 临时关闭第三方杀毒 / 安全卫士,重试。
- 公司电脑可能有企业防火墙拦截 GitHub,需走公司允许的代理。
方法五:DNS 问题
如果 github.com 解析到了错误 IP,也会连不上:
bash
nslookup github.com解析异常就换 DNS 或改 hosts,详见 👉 DNS 污染导致 GitHub 打不开 和 Hosts 加速。
方法六:改用 SSH 或降级尝试
- HTTPS 走不通,SSH 用户可切 SSH 443 端口。
- 临时可用镜像/加速前缀 clone,见 git clone 加速。
排查顺序速查
text
报错 443
├─ 有 git 代理配置但没开代理? → unset(方法一)
├─ 有代理? → curl -x 测端口(方法二)
├─ 443 直连不通? → Test-NetConnection(方法三)→ 需代理/SSH443
├─ 解析异常? → 换 DNS / hosts(方法五)
└─ 都正常还不行 → 防火墙/安全软件(方法四)小结
- 最高频原因:代理配置残留,
--unset一下就好。 - 有代理就确认端口、用
curl -x验证。 - 443 被封的,走代理或 SSH 443。
本文仅供技术学习与研究,请遵守所在国家/地区法律法规。