解决国内GitHub无法连接问题
解决国内GitHub无法连接问题
laoyeeGitHub 算是程序员经常访问的一个网站了,好多优秀的开源作品都会发布在这里,因此不少优秀的个人开发者都会将开源作品或者代码挂在GitHub上,但是国内访问 GitHub 貌似不是很通畅,时不时访问速度就非常慢,部分地区经常直接无法访问。在国内会被解析到新加坡节点的 20.205.243.166 ,这个 IP 在全国范围内被空路由了,其他 GitHub 的 IP 暂时没事,也可能只是策略还没分发完毕
只需要我们手动修改设备的 hosts 就可以很大程度上解决,或者使用第三方工具,如反代镜像加速或者网络代理
修改 hosts 的前提就是需要获取到所在区域访问该网站最佳的 IP 节点,我们可以直接用网站测速工具进行获取
https://ping.chinaz.com/github.com
一片红,喜气洋洋,好家伙!第一次尝试宣告失败!此文终结…
换种方式,我们可以找现成整理好的 GitHub hosts 源就可以了,其实官方就提供了 meta API 获取 IP 地址列表
仔细看了看还不是现成的,还需要个人二次整理,懒的弄,直接 pass
有没有现场开箱即用的方案,肯定是有的,借助于热心民间开发者的整理,找到了两个项目,不过依然是放在了 GitHub 中,直接陷入死循环了,本来就访问不了,还将解决方案放到访问不了的网页中
好在我们可以通过第三方的反向代理镜像服务来解决,注意这类第三方因为都是公益免费的存在服务不稳定问题,随时都可能会被薅秃了关闭服务
大家可以使用bing搜索关键词GitHub 加速镜像
查找
GitHub Proxy 加速代理
https://www.gitmirror.com/
https://moeyy.cn/gh-proxy/
https://mirror.ghproxy.com/
注意,以上加速代理为临时解决方案,且有诸多不便
修改 hosts 文件
最新hosts:
https://github.com/maxiaof/github-hosts
hosts 文件在不同系统位置不一,详情如下:
- Windows 系统:
C:\Windows\System32\drivers\etc\hosts
。 - Mac(苹果电脑)系统:
/etc/hosts
。 - Linux 系统:
/etc/hosts
。
修改方法,复制内容粘贴到到hosts文件里
- Windows 使用记事本。
- Linux、Mac 使用 Root 权限:
sudo vi /etc/hosts
。
激活生效
大部分情况下是直接生效,如未生效可尝试下面的办法,刷新 DNS:
- Windows:在 CMD 窗口输入:
ipconfig /flushdns
- Mac 命令:
sudo killall -HUP mDNSResponder
- Linux 命令:
sudo nscd restart
Tips: 如以上刷新不好使,请重启尝试
SwitchHosts自动更新hosts文件
SwitchHosts 是一个管理、切换多个 hosts 方案的工具,还是一个免费开源软件。只要将订阅的 hosts 源添加上,后续就不需要手动更新 hosts 文件了
Hosts 管理工具
https://switchhosts.vercel.app/zh
工具安装好后添加订阅源就可以自动更新,避免日后 GitHub 部分节点失效导致需要手动更新 hosts
订阅源
https://github.com/ineo6/hosts
订阅源1: https://jsd.cdn.zzko.cn/gh/ineo6/hosts/master/next-hosts
https://github.com/maxiaof/github-hosts
订阅源2: https://jsd.cdn.zzko.cn/gh/maxiaof/github-hosts/hosts
其它工具
GitHub Push问题
以下就是程序员专区了,平时写好的代码片段托管至GitHub时,使用Git提交代码经常会出各种问题
遇到往 GitHub push 的时候始终报错:ssh: connect to host github.com port 22: Connection timed out
而且仅限于 ssh 类型的仓库,即[email protected]
类型的地址。 如果仓库是 https 类型的,即https://github.com
并未受影响
该错误通常是因为使用TAP设备,如Clash TAP Device和Clash TUN Mode,默认22端口被TAP设备占用而导致SSH无法正常工作
解决方案
找到~/.ssh/config
文件,没有的话新建一个
该文件在Windows操作系统的路径一般为C:\Users\{Username}\.ssh\config
1 | vim ~/.ssh/config |
Refer: https://stackoverflow.com/a/52817036/4156036 and https://hellodk.cn/post/975
END:
自备一个好用的网络代理工具,确实要少许多折腾
拓展一下,GitHub上 的一些静态资源可以使用 jsDelivr 来加速访问,但是 jsDelivr 在国内也已经被滥用至无法使用了,不过还有一些基于 jsDelivr 的反代加速服务,篇幅有限后面再说……