使用github出现以下问题:
fatal: unable to access 'https://github.com/andoma/rtmpdump.git/': Failed to connect to github.com port 443: 连接超时
网上解决办法部分可以通过设置或取消代理来修复,尝试未果。
更换为 ssh
可以正常使用。
proxy
git config http.proxy
git config https.proxy
git config --global --unset https.proxy
git config --global 'socks5:/127.0.0.1:1080'
git version
$ git --version
git version 2.13.0
ping
$ ping github.com
PING github.com (192.30.252.128) 56(84) bytes of data.
^C
--- github.com ping statistics ---
79 packets transmitted, 0 received, 100% packet loss, time 79855ms
traceroute
$ traceroute 192.30.252.128
traceroute to 192.30.252.128 (192.30.252.128), 30 hops max, 60 byte packets
1 gateway (192.168.110.1) 0.920 ms 0.908 ms 0.900 ms
2 * * *
3 192.168.3.1 (192.168.3.1) 1.542 ms 1.536 ms 1.510 ms
4 115.236.90.217 (115.236.90.217) 9.464 ms 9.387 ms 9.464 ms
5 220.191.159.125 (220.191.159.125) 5.358 ms 61.164.19.145 (61.164.19.145) 6.558 ms 61.164.8.45 (61.164.8.45) 5.350 ms
6 * 61.164.22.149 (61.164.22.149) 3.388 ms *
7 202.97.82.9 (202.97.82.9) 7.015 ms 202.97.68.137 (202.97.68.137) 6.437 ms 202.97.82.9 (202.97.82.9) 7.958 ms
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
netstat
$ netstat -nr
内核 IP 路由表
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.110.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.188.1 0.0.0.0 UG 0 0 0 wlan0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan0
192.168.110.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
192.168.188.0 0.0.0.0 255.255.254.0 U 0 0 0 wlan0
hosts
删除 hosts
中关于github的记录
#fix github
23.235.40.249 github.global.ssl.fastly.net
192.30.252.128 github.com
64.233.179.91 dl-ssl.google.com
64.233.169.101 groups.google.com
216.58.218.138 ajax.googleapis.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
将 192.30.252.128 github.com
屏蔽解决问题
$ ping github.com
PING github.com (192.30.255.113) 56(84) bytes of data.
64 bytes from lb-192-30-255-113-sea.github.com (192.30.255.113): icmp_seq=1 ttl=44 time=191 ms
64 bytes from lb-192-30-255-113-sea.github.com (192.30.255.113): icmp_seq=2 ttl=44 time=224 ms
^C
--- github.com ping statistics ---
3 packets transmitted, 2 received, 33% packet loss, time 2002ms
rtt min/avg/max/mdev = 191.531/208.191/224.851/16.660 ms
由上面打印可以看出是 github.com
地址发生变化导致 hosts
不对应,从而不能正常访问
原理
为了方便用户记忆,我们将IP变成一个个的域名来输入到浏览器进行访问。而这使得访问网站时要先将其域名解析成 IP 。DNS (Domain Name Server) 的作用就是进行 IP 解析,把域名对应到 IP。在 Great FireWall 的 5 种封锁方法中,有一种简单而效果很好的方法是 DNS 污染。GFW 会对 DNS 的解析过程进行干扰,这会使对某些被干扰的域名返回一个错误的 IP 地址给你的主机,使你无法正确连接到你要的服务器上读取正确的信息。
Hosts 文件本来是用来提高解析效率。在进行 DNS 请求以前,系统会先检查自己的 Hosts 文件中是否有这个地址映射关系,如果有则调用这个 IP 地址映射,如果没有再向已知的 DNS 服务器提出域名解析。也就是说 Hosts 的请求级别比 DNS 高。当你的 Hosts 文件里面有对应的 IP 时,它就会直接访问那个 IP,而不用通过 DNS。