GitHub 是全球最大的开源代码托管平台。然而在中国大陆网络环境下,由于 DNS 域名解析经常遭受投毒与污染,常导致用户打不开网页或 Git 克隆代码超时。
通常浏览器会提示以下错误:
无法访问此页面
github.com 响应时间太长 / 拒绝了我们的连接

本文整理了 6 种行之有效的解决办法,帮助你绕过 DNS 污染恢复 GitHub 的正常访问与使用。
1. 手动修改本地 Hosts 文件
通过向系统 Hosts 文件中显式写入 GitHub 域名的真实无污染 IP 地址,可以绕过运营商默认的 DNS 解析劫持。
操作步骤
查询 GitHub 域名的最新无污染 IP: 通过 IPAddress.com 域名查询网站 检索以下域名的最新 IP:
github.comassets-cdn.github.comgithub.global.ssl.fastly.netraw.githubusercontent.com
也可通过公网干净 DNS 进行终端查询:
BASHnslookup github.com 8.8.8.8nslookup github.com 8.8.8.8编辑系统 Hosts 文件:
Windows 系统: 使用管理员身份打开记事本,修改
C:\Windows\System32\drivers\etc\hosts文件,在底部添加对应解析记录:TEXT# GitHub DNS Fixed 140.82.113.3 github.com 185.199.108.153 assets-cdn.github.com 199.232.69.194 github.global.ssl.fastly.net 185.199.108.133 raw.githubusercontent.com# GitHub DNS Fixed 140.82.113.3 github.com 185.199.108.153 assets-cdn.github.com 199.232.69.194 github.global.ssl.fastly.net 185.199.108.133 raw.githubusercontent.commacOS / Linux 系统: 打开终端执行命令
sudo nano /etc/hosts,将上述解析记录追加至文件底部后保存。
刷新本地 DNS 缓存:
- Windows:在 CMD 中执行
ipconfig /flushdns - macOS:在终端执行
sudo killall -HUP mDNSResponder - Linux:执行
sudo systemctl restart nscd
- Windows:在 CMD 中执行
2. 使用加密 DNS 服务 (DoH / DoT)
传统 DNS 使用 UDP 协议明文传输,极易在传输中途被拦截投毒。开启加密 DNS(DNS-over-HTTPS 或 DNS-over-TLS)可以防止数据包被篡改。
推荐方案
- 公共加密 DNS 节点:
在浏览器(如 Chrome / Edge 设置 -> 隐私与安全 -> 使用安全 DNS)中配置:
- Cloudflare DoH:
1.1.1.1(https://chrome.cloudflare-dns.com/dns-query) - Google DoH:
8.8.8.8(https://dns.google/dns-query)
- Cloudflare DoH:
- 专业加密 DNS 工具: 使用 AdGuard DNS 官网 或 NextDNS 官网 提供的私有加密 DNS 服务。
3. 使用网络代理与分流 (推荐终极方案)
若单纯依靠修改 DNS 仍然遇到 SNI 阻断或连接丢包,通过网络代理软件配置自动分流是最为稳定彻底的解决手段。
推荐工具与教程
- Clash / Clash Verge:支持基于规则的分流,将
github.com及.githubusercontent.com流量走加密代理节点。
设备配置教程:
- 📱 Android 安卓手机 Clash Meta 配置教程
- 🖥 Windows / macOS / Linux Clash Verge Rev 配置指南
- 🍎 iOS 苹果手机 Shadowrocket 小火箭使用教程
4. 使用 GitHub 镜像站与加速通道
如果只需要下载 GitHub 仓库的代码包或 Releases 资产文件,可以直接使用公共镜像站或下载加速服务:
常用镜像加速工具
- Ghproxy 镜像加速:直接在终端或下载工具的资源 URL 前加上
https://ghproxy.net/加速下载。 - FastGit / GitClone 代理:使用
git clone https://gitclone.com/github.com/用户名/仓库名.git进行代码拉取。
5. 验证本地是否存在 DNS 污染
如何判断访问失败是由于 DNS 污染引起的?
打开命令行终端,分别对比使用本地默认 DNS 与干净公网 DNS 的查询结果:
# 使用本地默认 DNS
nslookup github.com
# 使用 Google 8.8.8.8 干净 DNS
nslookup github.com 8.8.8.8若本地默认 DNS 返回的 IP 地址与公网 DNS 返回的真正 IP 不一致,或返回的是无效/空地址,即可确认存在 DNS 污染。
6. 清除本地与浏览器 DNS 缓存
修改设置后,需要彻底刷新本机 DNS 缓存以生效:
- Windows 刷新命令:CMD
ipconfig /flushdnsipconfig /flushdns - macOS 刷新命令:BASH
sudo killall -HUP mDNSRespondersudo killall -HUP mDNSResponder - Chrome / Edge 浏览器刷新:
在地址栏打开
chrome://net-internals/#dns,点击 Clear host cache 按钮。
注意事项与建议
提示
定期更新 Hosts 记录 GitHub 的 CDN 与官方服务器 IP 并不固定,手动修改 Hosts 之后,若过一段时间发现再次无法访问,需重复步骤 1 重新获取最新 IP 地址。
重要
防范中间人风险 请仅从权威查询工具获取真实的 GitHub 官方 IP,切勿从不信任的网盘下载或批量替换任意修改过的 Hosts 文件,防止遭遇 DNS 欺骗攻击。