1. 国内进不去GitHub的问题背景
很多技术人员、开发者以及学生都会使用GitHub。它是一个全球最大的开源代码仓库,对于开发者来说,GitHub是一个难以替代的宝库。然而,由于某些原因,国内无法正常访问GitHub网站,这对于国内许多开发者来说是个大问题。
2. GitHub被墙的原因
2.1 中国防火墙
境外的一些网站包括GitHub在内的某些网站,被中国防火墙阻挡,这是大部分中国人不能访问GitHub的主因。中国政府开启的“网络防火长城”过滤出境的网络流量,具体有哪些协议、哪些网站被屏蔽不是透明的,也没有统一的标准。GitHub曾经因为网络攻击而被屏蔽,但之后谷歌在中国的遭遇已经不能单纯归咎于网络攻击。
2.2 GitHub认证证书过期
近年来,中国政府加强了对HTTPS加密的网络监管。观察者网于2018年4月25日报道称,中国互联网防火墙软件GFW是如何“黑科技”地中断在中国境内访问Github网站的,这与GitHub官方证书过期有关。
因此,当用户在中国境内访问基于HTTPS的网站时,如果该网站使用自己的证书进行加密,用户的HTTP请求将不受信任,从而无法访问该网站。
2.3 网络劫持
网络劫持指的是黑客等第三方劫持数据包,使用户访问的网站产生警报或无法访问目标网站。此外,庞大的机房机房网络技术领先,间谍软件可能会破解个人计算机,将数据上传至GitHub。
3. 中国访问GitHub的解决方案
3.1 反向代理
国外有很多提供免费代理服务的网站,只要我们了解这些代理网站的ip地址,就可以直接通过ip地址访问GitHub,无需配置vpn等一系列复杂的工具。具体方法如下:
sudo vi /etc/hosts
在打开的文件中添加以下代码:
192.30.253.112 github.com
192.30.253.119 gist.github.com
151.101.184.133 assets-cdn.github.com
151.101.184.133 raw.githubusercontent.com
151.101.184.133 gist.githubusercontent.com
151.101.184.133 cloud.githubusercontent.com
151.101.184.133 camo.githubusercontent.com
在完成此操作后,我们可以直接使用浏览器访问GitHub网站了。但是,这种方法存在的问题是网站访问速度较慢,较不稳定。
3.2 VPN
VPN代表虚拟私人网络。它是一种用于创建加密连接的技术,它可以使我们通过一个中间服务器访问本地网络内容。为了访问GitHub,我们可以通过一个境外服务器访问GitHub。
在中国,常用的VPN软件服务有:ExpressVPN、NordVPN、Ivacy VPN和HideMyAss。
3.3 SSH代理
Linux或Mac用户可以通过ssh代理来访问GitHub。具体示例如下:
ssh -D 5000 -p 22 username@domain.com #连接远程服务器
sudo vim /etc/profile #编辑系统环境变量
export ALL_PROXY=socks5://127.0.0.1:5000 #设置全局代理
source /etc/profile #生效环境变量
此后,我们可以通过ssh端口代理来访问github。这种方式使用起来比vpn更加方便,但需要有一定的网络配置和linux操作基础。
3.4 Gitee
国内的码云(Gitee)网站是另一个类似GitHub的代码托管服务。Gitee是针对中国开发人员特别推出的,它与GitLab源代码库代码逻辑基本相同,拥有免费的公共仓库,免费私有仓库数量也相较GitHub更多。
4. 总结
GitHub是一个全球性的代码托管平台,一直被广大开发者所使用。但是,由于一些原因,它在中国却无法正常访问。我们可以通过境外代理服务、VPN、SSH代理和国内替代品Gitee等方式来解决这个问题。当然,我们期望这些问题能尽快解决,开发者们可以轻松、顺畅地使用GitHub网站,提高开发效率,创造出更好的软件和服务。