从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • RSS
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 📖 读书

    • 读书工具
    • 读书笔记
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • RSS
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 📖 读书

    • 读书工具
    • 读书笔记
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • 计算机简史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

  • 数据库

  • 编程工具

    • Git

      • 版本控制
      • 安装和配置 Git
      • 初识版本库
      • 版本管理
      • 工作区、暂存区和修改
      • 远程仓库
      • 解决 GitHub 访问失败的办法
        • 原因
        • 原理
        • 方法一:魔法上网
        • 方法二:改 hosts 文件
        • 方法三:使用第三方下载
        • 方法四:使用 Gitee
        • 最后
        • 参考
      • 关于 GitHub 的奇技淫巧
      • 分支管理
      • GitStash
      • 远程仓库和分支
      • 标签管理
      • 自定义 Git
      • 使用可视化工具
      • Github Action
      • 常用 Git 命令
      • Git 帮助文档
      • GitHub 个人主页美化教程
      • 其他 GitHub 技巧
      • 在 commit 里使用 emoji~
      • 逆天,CSDN 批量搬运 GitHub 项目
    • 终端

  • 装机

  • 计算机基础
  • 编程工具
  • Git
2024-07-30
目录

解决 GitHub 访问失败的办法

# 65.解决 GitHub 访问失败的办法

聊聊如何解决 GitHub 访问失败/缓慢的问题。

‍‍

# 原因

由于 GFW 的原因,在国内访问 GitHub 完全是看缘分。

早在 2013 年 1 月,李开复 (opens new window)就开始在微博抗议了:

【强烈抗议封锁 GitHub] GitHub 是全球最大的社交编程及代码托管网站,近日在国内遭全面屏蔽。在 GitHub 的 300 万会员中,中国是第四大国。GitHub 是程序员学习和与世界接轨的首选工具。GitHub 并无意识形态,也没有反动内容。封锁 GitHub 毫无道理,只会导致国内程序员和国际脱轨,失去竞争力和前瞻性。转!

当时的动静也挺大的,抗议后,也是有一段时间能正常访问了。不过现在嘛…… ‍

# 原理

我们在浏览器输入 GitHub 的网址时,会向 DNS 服务器发送一个请求,获取到 GitHub 网站所在的服务器 IP 地址,从而进行访问。

就像你是一名快递员,在送快递前要先找中间人询问收件人的地址。而 DNS 就是这个告诉你目标地址的中间人,如果 DNS 告诉了你错误的地址、或者请求被拦截、再或者 DNS 挂了,都会导致你无法访问网站。

那么根据这个原理,可以得出的解决办法:

  • 使用代理服务器
  • 修改 hosts,绕过 DNS

接下来说说我了解到的解决办法。 ‍

# 方法一:魔法上网

​​ ‍

如题,直接用魔法上网,使用代理,解决墙的问题。

如果你看不懂,那么请忽略该方法。

# 方法二:改 hosts 文件

还是科普下吧:

hosts 文件是一个纯文本文件,存在于几乎所有的操作系统中,用于将主机名映射到 IP 地址。 ‍ 简单来说,就是将 GitHub 服务器的地址直接写到 hosts 文件里,绕过 DNS 的解析。 ‍ hosts 文件在每个系统的位置不一:

  • Windows 系统:C:\Windows\System32\drivers\etc\hosts​

  • Linux 系统:/etc/hosts​

  • Mac(苹果电脑)系统:/etc/hosts​

  • Android(安卓)系统:/system/etc/hosts​

  • iPhone(iOS)系统:/etc/hosts​ ‍ 注意,修改该文件的话:

  • Windows、Linux、Mac 使用 Root 权限

  • iPhone、iPad 须越狱

  • Android 必须要 root ‍

# Windows

以 Windows 为例,文件的路径是:C:\Windows\System32\drivers\etc​

​​

由于该文件比较重要,一般是不能直接修改的。解决方法有:

  1. 以管理员权限运行记事本,然后打开该文件进行编辑,然后保存
  2. 将该文件复制到桌面或其他文件夹,修改后复制回去(会提示要管理员权限)
  3. 在该文件上右键 → 打开文件属性 → 将“只读”取消勾选并应用保存 ‍ 以第一个方法为例,首先以管理员权限打开记事本:

​​ ‍

在记事本里打开该文件,即可进行编辑。

如果打开所在文件夹后,如果看见文件夹是空的,请修改下方选择框中的文件类型为“所有类型”:

​​

​​ ‍ 修改方式:将 IP 和域名填写到该文件末尾,注意两者直接有个空格( xx 为你查询到的 IP 地址):

xx.xx.xx.xx www.github.com
1

# Linux / Mac

而对于 Linux / Mac 用户来说,文件的路径是:/etc/hosts​

修改方法:

  • 通过 vim,例如 sudo vim /etc/hosts​
  • 通过追加符,例如 echo 127.0.0.2 google.com >> /etc/hosts​
  • 其他常用命令...... ‍ 至于 iPhone,iPad,Android 的修改 hosts 场景很少见,也挺麻烦,这里就不展开了。 ‍

# 如何查询 IP

可以通过 IP 查询工具(例如 ipaddress.com (opens new window)),打开后输入要查询的域名,即可查到对应的 IP 地址。

也可以通过 GitHub520 (opens new window),这个 GitHub 项目,作者每天会更新一份完整的 hosts 列表,无需大家自己查询,直接拿来用即可。

也可以用 fetch-github-hosts (opens new window),这和上一个项目是类似的,官网:hosts.gitcdn.top (opens new window) ‍

# 刷新 DNS 缓存

修改完 hosts 文件后,如果还不能正常访问,那就试试刷新下 DNS 缓存,在命令行里执行:

  • ​Linux​: /etc/init.d/network restart​
  • ​Windows​: ipconfig /flushdns​
  • ​Macos​: sudo killall -HUP mDNSResponder​

如果上述方法无效,那就再试试重启机器。

如果还不行,那就只能换个方法了。 ‍

# 自动更新 hosts

如果每天都手动更新 hosts 文件,也太麻烦了,为此可以借住一些图形化工具来完成,例如 SwitchHosts (opens new window),配置参考下面:

  • Hosts 类型: Remote​
  • Hosts 标题: 随意
  • URL:https://raw.hellogithub.com/hosts​ (这个是 GitHub520 (opens new window) 提供的 hosts 文件,会定期更新)
  • 自动刷新: 最好选 1 小时​

​​ ‍‍

也可以借住自动任务(例如 Linux 的 crontab)来完成更新。Unix/Linux 一键使用:

sed -i "/# fetch-github-hosts begin/Q" /etc/hosts && curl https://hosts.gitcdn.top/hosts.txt >> /etc/hosts
1

‍

# 方法三:使用第三方下载

如果以上方法都不行,可以换种思路:直接将 GitHub 上的项目下载到本地。

现在有很多支持 GitHub 加速下载的网站,比如 GitClone.com (opens new window),输入项目名即可高速下载!

​​

该方法的缺点:

  • 如果项目过大,下载起来也挺麻烦
  • 看不到对应项目的 issue 等,也不能进行 PR 等操作

如果你仅仅是想看看文档、源码等,该方法也是可以的。

还可以用 Offcloud (opens new window),号称当前离线下载服务的最佳选择之一。除了常规的 BT 或磁力链接下载外,它还支持 YouTube、Vimeo 等视频网站和 Dropbox、百度网盘等在线储存服务的链接,免去在各客户端间切换的烦恼。

输入邮箱即可免费注册,登录后选择 instant,然后复制 GitHub 项目的 zip 链接,点击 Dowload 即可快速下载。

​​

其他加速下载网站:

  • GitHub 加速下载 - 在线工具:https://github.ur1.fun (opens new window)

  • 加速你的 Github:https://github.zhlh6.cn (opens new window)

  • FAST-GitHub:https://fhefh2015.github.io/Fast-GitHub (opens new window)

  • Offcloud.com (opens new window):号称当前离线下载服务的最佳选择之一,支持 BT、YouTube、Vimeo 等视频网站和 Dropbox、百度网盘等在线储存服务的下载。

    例如,输入 GitHub 项目的 zip 链接即可加速下载(右键 → 复制链接地址)

    ​​

# 方法四:使用 Gitee

Gitee 支持在新建项目时,直接导入已有的 GitHub 仓库。想要下载哪个项目的源码,直接输入对应的 GitHub 仓库地址即可:

​​

还可以随时将 Gitee 的仓库和 GitHub 仓库进行同步。同步后,你就可以在 Gitee 上提交和管理代码了:

​​ ‍

此外,也可以下载项目后重新关联远程仓库为 GitHub。

# 最后

GitHub 是 全球知名的代码开源平台。这里有千万个项目的源代码,可以和各位编程技术大牛交流学习,也可以发布自己的开源项目,利用平台进行代码托管。

如今 GitHub 的功能越来越强大了,比如工作流、仓库图表可视化、在线开发、项目页面等,即使你是 GitHub 的老用户,我相信很多功能你也未必知道。

总之,想要提升自己的编程技能,就必须要掌握 GitHub 的用法!为此,首先就得先解决访问失败的问题。

# 参考

https://github.com/521xueweihan/GitHub520 (opens new window)

https://github.com/Licoy/fetch-github-hosts (opens new window)

https://github.com/oldj/SwitchHosts (opens new window)

GitHub 访问不了?砸墙狂魔教你几招 - 程序员鱼皮 (opens new window)

国内访问 Github 慢的解决方法 - 阿小信的博客 (opens new window) ‍

上次更新: 2025/5/5 17:15:09
远程仓库
关于 GitHub 的奇技淫巧

← 远程仓库 关于 GitHub 的奇技淫巧→

最近更新
01
2025 年 4 月记
04-30
02
山西大同 “订婚强奸案” 将会给整个社会带来的影响有多严重? - 知乎 转载
04-26
03
一个小技巧,让电子书阅读体验翻倍!
04-18
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式