GitHub 打不开怎么办?先用 5 步判断故障层级
简答:GitHub 打不开时,先查 GitHub Status,再用手机热点或另一条可信网络测试。只有当前网络失败,优先检查 DNS、代理或公司网络规则;多个域名都无法解析,先查 DNS;网页能开但 git clone 失败,则单独检查 Git 配置,不要把网页访问当成 Git 连接成功。
定义:“GitHub 打不开”只是现象描述,可能对应网站无法加载、DNS 解析失败、连接超时、连接被重置、代理失效或 Git 单独无法连接,不能直接判断为 GitHub 服务故障。
先做一分钟判断:5 步定位问题范围
本文是第三方使用指南站,不代表 GitHub 官方。先不要修改 hosts、关闭 TLS 证书校验,也不要在第三方镜像中输入 GitHub 密码、Token 或 SSH 私钥。
| 现象 | 先做什么 | 看到什么就停止这一层排查 |
|---|---|---|
| 所有设备都打不开 | 打开 GitHub Status 查看当前服务状态 | 状态页存在相关故障时,先等待官方更新,不要改本机配置 |
| 手机热点能开,原网络打不开 | 检查当前网络的代理、防火墙、DNS 或组织网络策略 | 确认是公司、校园网或公共 Wi-Fi 时,联系网络管理员 |
| 只有当前设备打不开 | 换浏览器,再检查系统代理和 DNS | 其他设备正常而本机仍失败时,保留错误文本后再改设置 |
| 多个 GitHub 域名都解析失败 | 运行 nslookup github.com | 返回地址后不要继续反复刷新 DNS,转向 HTTPS 或代理排查 |
| 网页能开但 Git 操作失败 | 把问题单独归类为 Git 配置、认证或 SSH 连接问题 | 不要用浏览器成功证明 Git 已经可用 |
- 查状态:访问 GitHub Status,只确认是否存在当前服务异常。状态页正常并不代表你的本地网络、代理或 DNS 正常。
- 换网络:用手机热点或另一条可信网络打开
https://github.com。如果新网络能打开,优先检查原网络,不要先改 hosts。 - 分开访问:依次测试
https://github.com、https://raw.githubusercontent.com和https://api.github.com。这是为了观察不同访问目标是否表现一致,不把单个页面的结果扩大为整体结论。 - 检查解析:运行
nslookup github.com。出现找不到主机、NXDOMAIN 或查询超时时,先处理 DNS 或本地缓存。 - 记录具体报错:保存浏览器错误页、命令行输出、失败域名和使用的网络。没有错误文本时,不要同时修改 DNS、代理和 hosts。
GitHub 官方将防火墙、代理服务器、公司网络等列为连接问题的常见来源,并建议检查网络配置、切换克隆方式或使用官方诊断工具。参考 GitHub 连接问题故障排除。
按错误提示分流:不要把所有问题都当成 DNS
| 错误或现象 | 可能所在层级 | 最小排查动作 |
|---|---|---|
DNS_PROBE_FINISHED_NXDOMAIN、Could not resolve host | DNS、缓存或 hosts | 运行 nslookup github.com;确认是否能返回解析结果,再决定是否刷新缓存。 |
Connection timed out | 网络路径、防火墙、代理或端口 | 换手机热点;如果只有公司或校园网失败,联系管理员确认是否限制相关流量。 |
ERR_CONNECTION_RESET、连接被重置 | 代理、网络设备或 TLS 中间设备 | 记录是否仅在某个网络发生;不要用关闭证书校验的方式绕过。 |
| SSL、TLS 或证书错误 | 系统时间、证书链或 HTTPS 代理 | 先检查设备日期和时间;如使用公司代理,交由管理员确认是否存在 HTTPS 检查。 |
| 网页能打开,Git 仍失败 | Git 独立代理、认证或 SSH | 运行 git config --global --get http.proxy,并把网页问题与 Git 问题分开记录。 |
公司、校园网或公共 Wi-Fi 用户如果确认换网络后恢复,应把失败时间、网络名称、错误文本和测试域名交给管理员;不要自行绕过组织安全策略,也不要把代理账号交给陌生页面。
DNS 与 hosts:先备份,再做可回滚的检查
Windows
- 打开命令提示符,运行
nslookup github.com,记录返回结果或错误。 - 如果怀疑是本地缓存,可用管理员权限运行
ipconfig /flushdns,然后再次执行nslookup github.com。 - 若仍然失败,检查当前网络的 DNS 设置和默认网关;不要继续重复刷新缓存。
Microsoft 文档将 ipconfig /flushdns列为清理 DNS 客户端缓存的命令,具体说明见 Microsoft Learn 的 ipconfig 文档。
macOS 与 Linux
macOS 可在“系统设置”→“网络”→当前网络→“详细信息”→“DNS”中查看 DNS 服务器,并在修改前记下原值。Apple 的操作路径见 Apple 支持文档。Linux 先运行 nslookup github.com 或 resolvectl query github.com;不同发行版的 DNS 管理方式可能不同,不要直接套用其他系统命令。
hosts 只做检查,不作为首选修复:先备份文件,确认记录是你本人添加且已经过期后再删除;无法确认来源的记录不要擅自改动。不要复制网络文章中的固定 IP,旧地址可能失效或造成证书不匹配。
代理与网页设置:先确认是否由当前网络控制
- 在浏览器中查看是否启用了手动代理或自动代理脚本。可以暂时关闭后做一次对比测试,但公司网络要求代理时,应恢复设置并联系管理员。
- Windows PowerShell 可运行
Get-ChildItem Env:*proxy*;macOS 或 Linux 可运行env | grep -i proxy,查看是否存在旧代理环境变量。 - 如果仅公司网络失败,向管理员确认代理地址、端口、认证方式以及是否存在 HTTPS 检查。普通用户无法仅靠浏览器设置证明代理没有改写连接。
- 如果浏览器正常、Git 失败,再查看 Git 的代理配置:
git config --global --get http.proxy。发现明确失效的全局代理时,先记录原值,再按需使用git config --global --unset http.proxy回滚。
Git 官方文档说明,http.proxy会覆盖通常由 http_proxy、https_proxy 和 all_proxy提供的代理设置;代理还应保持透明,不应修改、转换或缓存请求。参考 Git config 官方文档。
验证边界:浏览器能打开 GitHub,不等于 Git 的 HTTPS 克隆、API 请求或 SSH 连接都成功。若问题只出现在 Git,记录 Git 版本、远程地址形式、完整错误文本和代理配置后再继续。
网页恢复后仍无法使用 Git:只做通道区分
如果本文目标是解决“网页打不开”,网页恢复后仍有 git clone 或 SSH 报错,应将其视为另一个问题,不要继续反复刷新浏览器。
- HTTPS 克隆失败:检查 Git 的代理、证书、凭据和环境变量。不要把
http.sslVerify设置为关闭来绕过证书错误;Git 官方文档显示该选项默认用于验证 HTTPS 证书。 - SSH 22 端口超时:可以先改用 HTTPS。若必须使用 SSH,可按 GitHub 官方方法测试
ssh -T -p 443 [email protected]。 - SSH 443 测试的边界:命令只验证 SSH 通道和身份验证结果,不等于某个仓库有权限,也不等于完整克隆已经成功。GitHub 文档明确要求使用主机名
ssh.github.com,而不是github.com,详见 GitHub SSH over HTTPS 端口文档。
如果网页、DNS 和另一条网络都正常,但 Git 仍失败,停止修改系统网络设置,转向 Git 配置、仓库权限或认证信息核验。
回滚清单:排查无效时恢复原配置
- 恢复原来的 DNS 服务器设置,并重新连接当前网络。
- 恢复浏览器代理、系统代理和自动代理脚本。
- 删除你为本次排查临时添加的 Git 代理配置,或恢复备份文件。
- 恢复 hosts 备份,不保留来源不明的固定 IP 映射。
- 保留错误文本、测试时间、失败域名、网络类型和命令输出,便于联系管理员或 GitHub 支持。
不要在第三方镜像或所谓加速页面登录 GitHub,也不要输入密码、Token、Cookie 或 SSH 私钥。本文不判断任何具体线路、节点或网络服务当前是否可用,只提供可回滚的基础诊断路径。
常见问题
GitHub Status 正常,但我还是打不开,怎么办?
状态页正常只说明官方公开状态没有显示相关故障,不能排除你的 DNS、代理、防火墙或网络路径问题。先用手机热点交叉测试,再根据错误提示分流。
修改 DNS 能解决 GitHub 打不开吗?
只有在域名解析失败、缓存异常或当前 DNS 服务有问题时,刷新或调整 DNS 才可能有效。如果报错是连接超时、连接被重置或 TLS 失败,应转向网络、代理或证书排查。
为什么浏览器能打开 GitHub,git clone 还是失败?
浏览器和 Git 可能使用不同的代理、环境变量、证书配置或连接方式。先检查 <code>git config --global --get http.proxy</code>,并区分 HTTPS、SSH、认证和仓库权限问题。
可以把网上找到的 GitHub IP 写进 hosts 吗?
不建议。未经核验的固定 IP 可能已经失效、指向不匹配或引发证书错误。应先记录 DNS 现象,优先检查当前网络、代理和 DNS。
公司或校园网打不开 GitHub,应该怎么做?
先用个人热点做一次对比测试。如果热点可以访问,保存失败时间、错误文本和测试域名,联系网络管理员确认是否存在防火墙、代理或访问规则,不要自行绕过组织策略。
SSH 22 端口失败,测试 443 成功就代表仓库能克隆吗?
不代表。<code>ssh -T -p 443 [email protected]</code>主要验证 SSH 通道和身份验证,仓库权限、远程地址和完整克隆仍需单独验证。
相关阅读
参考资料
- GitHub 文档:连接问题故障排除
- GitHub Status 服务状态页(githubstatus.com)
- GitHub 文档:使用 SSH 通过 HTTPS 端口连接
- Git 官方文档:git-config(git-scm.com)
- Microsoft Learn:ipconfig 命令
- Apple 支持:更改 Mac 上的 DNS 设置