办理GitHub不能访问的几个办法

打印 上一主题 下一主题

主题 866|帖子 866|积分 2598

一、问题现象

GitHub页面时而能访问,时而不能。不是慢,而是不能访问。固然,下载它的好比仓库Release下的压缩包比力慢则是另一回事。蛋疼的影响不限于打不开页面,更多的在于不能git pull和git push等操纵。范围方面,凡国内不管是家宽、移动网络还是云上的,都受到同等的影响。
二、问题缘故原由

1、DNS分析污染

网上有个这个说法,大致原理就是“某某”通过拦截你发起的GitHub域名分析请求并伪装返回非正确的IP地址。但我有些怀疑,打不开GitHub也没见什么其他页面显示出来,怀疑这个“某某”的目的是什么?难道就是让你恒久不能稳定访问?
2、网络限定

按理说雷同有的站点被限定一样,应该是一直打不开。以是这个说法不成立。
三、办理办法

1、科学上网(备用)

但是呢也有些问题,好比包下载依然较慢,这个差别供应商和实现方式的效果不一样,好比企业申报类的企业业务用途、外企VPN隧道等正常,个人用途的那就不肯定了。
如果是对我提供服务的服务器,这个方式大概就不太合适了。
2、使用署理(首选)

从实际观测来看,应该使用了反向署理,采用一个这样的IP(域名),既能让国内正常访问,同时也能正常访问GitHub,然后在这个IP的主机上搭建一个反向署理,吸收国内的访问,署理请求GitHub并返回效果给访问者。
这种办法只必要更改github.com为署理的域名即可,使用方式与GitHub除了域名差别其他都一样,速率挺快,可登陆,可提交。雷同站点众多但服务连续性和稳定性广泛不强(安全性待验证),不外本钱较低、简单便捷。好比https://kgithub.com(这个地址后期大概失效),也有人专门列举和更新有用的署理清单。
具体更换github.com这个地址的方式有两个,一是直接git remote来修改具体仓库的地址,二是全局修改git,如下:
  1. git config --global url."代理地址如https://kgithub.com/".insteadOf "https://github.com/"  # 全局修改
  2. git config --global --list  #  查看配置
  3. git config --global --unset url.https://github.com/.insteadof  # 取消修改
复制代码
3、修改hosts(备用)

当前网上最多的使用方法,即通过雷同站长工具的本领查询获取GitHub域名的IP,然后增加当地hosts分析记载。但不论Windows还是Linux,都有几个不敷的地方。
   #Windows: C:\Windows\System32\drivers\etc\hosts;Linux: /etc/hosts
ip1 github.com
#ip2 github.com
ip3 xx.github.com
  1)根据GitHub官网说明,它的IP会不定期修改,且不告知当前具体IP是什么,只是给出IP CIDR网段。固然Web方面尾部的几个IP都是32位子网掩码,可以确定具体IP,但不知道当前使用的是哪个,不外目前观测来看,正在使用的IP基本上恒久不变革。
   ……
“web”: [
“192.30.252.0/22”,
“185.199.108.0/22”,
“140.82.112.0/20”,
“143.55.64.0/20”,
“2a0a:a440::/29”,
“2606:50c0::/32”,
“20.201.28.151/32”,
“20.205.243.166/32”,
“20.87.225.212/32”,
“20.248.137.48/32”,
“20.207.73.82/32”,
“20.27.177.113/32”,
“20.200.245.247/32”,
“20.233.54.53/32”

],
“api”: [
“192.30.252.0/22”,
“185.199.108.0/22”,
“140.82.112.0/20”,
“143.55.64.0/20”,
“2a0a:a440::/29”,
“2606:50c0::/32”,
“20.201.28.148/32”,
“20.205.243.168/32”,
“20.87.225.211/32”,
“20.248.137.49/32”,
“20.207.73.85/32”,
“20.27.177.116/32”,
“20.200.245.245/32”,
“20.233.54.49/32”
],
……
  2)指定的具体IP,同样频仍时不时不能访问,导致你又得去找新IP,不绝的修改hosts在几个IP中来回切换。该方法不具有便捷性和持续性。
   而之前指定的IP并非不再使用,从这里看出,不仅仅是域名分析问题那么简单。
  3)寻找IP的方式太单一和缺乏足够准确性。一种做法是通过ping来获取,如果说是DNS分析污染,那这个方式最好不用,同时GitHub的IP从实测上看不会相应ping的ICMP包。二种做法是使用前面提及的IP查询工具,但返回的IP太少。这里补充个方式 - 直接查询GitHub域名的A记载。通过雷同这个网站来查询,可以一次性查看GitHub在差别地区和差别DNS服务商的分析设置记载,这里列举几个得到的IP。
   192.30.255.113 # Cloudflare、Authoritative
192.30.255.112 # Google、OpenDNS
20.87.225.212 # Microsoft
20.248.137.48 # Microsoft
20.207.73.82 # Microsoft
140.82.121.4 # Microsoft
20.201.28.151 # Microsoft
140.82.121.3 # GitHub
140.82.114.4 # GitHub
140.82.112.4 # GitHub
    从这里你大概也发现了,域名分析设置的实际IP和前面GitHub官网meta API给出的不太同等,用哪个?用实际的DNS记载。
  4、使用镜像(我不用)

把GitHub的实际内容同步、复制一份,并开放访问。这种方式本钱较大、时效性稍弱,但也提供一些增值服务。如gitclone.com。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表