新人指南:不使用第三方工具访问 GitHub
已经会魔法的 / 能够稳定访问 GitHub 的朋友,这篇文章对你来说帮助不大,本文面向刚开始接触 GitHub 的新朋友。
本人不精通计算机网络知识,用语难免不严谨。本文只是分享一些自己的经验,如果有错误,欢迎指正。
1. Introduction
无论你是先从 GitHub 上的 OpenAuto 找到了这里,还是先从这里知道了 OpenAuto,并且想要进一步使用里面的资源,你都需要能够稳定地访问 GitHub。
HITSZ OpenAuto 的资源基于 GitHub 托管,导致许多人问我们的第一个问题就是:
为什么 GitHub 进不去啊?
许多人在没有科学上网的情况下,访问 GitHub 会遇到各种各样的困难,比如:
- GitHub 网页打不开
- 偶然能访问 GitHub 上的仓库,但里面的文件无法下载
- GitHub 仓库无法克隆
- 从本地推送到 GitHub 仓库失败,例如经典的报错
Failed to connect to github.com port 443: Timed out
解决这些问题的办法很多,一种是使用魔法,有魔法你就成功了 90%。 但不是所有人都能获取到好用的代理,本文也没办法教你😶,抱歉。
但是,有一个好消息,那就是如果只是为了访问 GitHub,那么在不使用自建魔法的前提下难度并不高。
2. 软件和网站?
有许多免费的软件可以直接帮助我们访问 GitHub,这里只介绍一个我曾经用过的。
- Watt Toolkit:原名 Steam++,一个开源跨平台的多功能 Steam 工具箱,并且可以加速 GitHub 的访问。 目前已支持 Windows、macOS、Linux 和 Android,属于开箱即用的软件。
如果只需要下载本组织中的文件,可以使用本站提供的代理服务:
3. 通过修改 hosts 文件访问 GitHub
上面所述的使用软件,本质上还是使用别人帮我们设置好的代理上网,速度有时并不理想; 而使用镜像站点下载文件,前提是知道 GitHub 上文件的地址;为了获取地址,你通常还是直接访问 GitHub。最重要的是,这些工具随时可能失效。
所以本文的核心内容不是分享软件和网站,而是教大家如何通过自己的操作连接 GitHub。
3.1 基础知识
先介绍几个常用的命令。 这些命令是在终端(Windows cmd / Powershell,Linux Bash)下运行的指令。
ping
:测试网络连接是否正常,例如ping github.com
。这个命令在 Windows 和 Linux 下都可以使用。ipconfig
:(仅限在 Windows 下)查看本机的 IP 地址。ifconfig
:(仅限在 Linux 下)查看本机的 IP 地址。需要安装net-tools
。
3.2 获取 GitHub 的 IP 地址
方法 1:手动查询
首先保证使用 3.1 中的 ping
命令能够成功连接到 GitHub。
如果你的 ping 返回的是 Request timed out
,那么说明你所处的网络环境有问题,这个不是本文能够解决的,因此不深入讨论。
下一步,查询 GitHub 的 IP 地址。 提供 IP 查询的网站很多,这里给大家介绍 IP Address。
进入网站,选择其中的 IP Address Lookup
功能(或直接点击这个链接:https://www.ipaddress.com/ip-lookup)。
在搜索框中输入 github.com
,点击 Lookup
就可以在结果中看到 GitHub 的 IP 地址了。
我们查询这 4 个网站的 IP 地址,把它们记下来:
- github.com
- api.github.com
- github.global.ssl.fastly.net
- codeload.Github.com
这 4 个网站足够我们访问 GitHub、推送/拉取 GitHub 仓库、使用 GitHub 的 API(包括 GitHub Copilot)了。
方法 2:别人已经帮你查好了
手动查询 IP 地址的方法虽然不复杂,但是重复多次后会觉得麻烦。 好在你并不是唯一一个这么认为的人。
访问 若风/github-hosts 这个 Gitee 仓库(Gitee 是国内的代码托管平台,不用担心连不上),README.md 已经列出了 GitHub 相关的多个 IP 地址。
这些地址每天会多次自动更新。把它们一口气全部复制下来,下一步会用到。
3.3 修改 hosts 文件
hosts 文件是一个没有扩展名的文本文件,用于将 IP 地址映射到域名。
Windows 中,hosts 文件位于 C:\Windows\System32\drivers\etc
目录下。
Linux 中,hosts 文件位于 /etc
目录下。
需要注意,无论是 Windows 还是 Linux,修改 hosts 文件都需要管理员权限。
3.3.1 Windows
如果使用记事本直接编辑 hosts 文件,系统会提示无法保存,因为没有管理员权限。 解决的办法有两个。
把原有的 hosts 文件复制一份到系统目录外,编辑后再复制回去。 复制回去时只需临时提供管理员权限即可成功。 这个方法比较保险,相当于给 hosts 文件做了一个备份。
打开管理员终端,输入命令
notepad C:\Windows\System32\drivers\etc\hosts
,这样就可以直接在记事本中编辑 hosts 文件了。
在 hosts 文件的最下方,按如下格式添加在步骤 3.2 查询到的 IP 地址:
# GitHub
140.82.113.3 github.com
140.82.113.5 api.github.com
146.75.77.194 github.global.ssl.fastly.net
140.82.114.9 codeload.Github.com
(把上面的 IP 地址换成你查询到的地址)
3.3.2 Linux
Linux 下修改 hosts 文件的方法和 Windows 下类似,只是需要使用 sudo
命令。
不熟悉 vim
的朋友可以使用 nano
编辑器。
sudo nano /etc/hosts
然后在 hosts 文件的最下方按照同样的格式添加内容。
3.4 测试
修改完 hosts 文件后,我们就可以尝试访问 GitHub 了。
4. 总结
本文为大家介绍了一种通过修改 hosts 文件访问 GitHub 的方法。 这种方法不依赖任何需要本地安装的工具,因此不限设备、任何时间都可以使用。
但是这种方法还是存在两个缺点:
- 网站的 IP 地址是不固定的,因此 hosts 文件需要时常更新。如果某一天你发现你又连接不上 GitHub 了,那么就需要重新查询一下 GitHub 的 IP 地址了。
- 纯手工操作,每次更新会比较麻烦。
如果你不是活跃在 GitHub 上的开发者,只是偶尔需要获取 GitHub 上的资源,那么这种方法已经足够了。
😉