爲什麼會說Failed connect to github.com:443是一個詭異的問題?乍一看,寫明瞭無法連接到github.com,ping也不通,但是獲取到了github的IP(192.30.252.131),而且ping其他網站如baidu.com是通的。更讓人意想不到的是網關可以git,但是本機卻不能git。然後就陷入了掙扎中。。。
iptables掙扎:
停掉本機iptables,查看網關iptables確保192.30.252.130能夠路由到本機。掙扎過後發現不是iptables的問題。
git版本問題:
前面遇到過git版本問題導致git提交時報錯,但是這次網關和本機的git都是1.7.1版本。掙扎過後發現也不是git版本問題。
於是轉回到ping不通github.com的問題:
爲什麼ping的通其他網站,ping不通github。迴歸到本機的路由來尋找問題。github的IP地址是192.30.252.131,ping github返回的是本機報告Destination Host Unreachable,而這並不是網關的問題。traceroute跟蹤一下192.30.252.131,果然壓根就沒跳出本機,直接丟失了。現在才意識到,本機路由出了問題,而偏偏github這個詭異的192網段IP跳進了這個坑。用route命令看一下本機路由,終於發現罪魁禍首:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.0.0.0 * 255.0.0.0 U 0 0 0 br1
顯而易見,這條靜態路由除了沒用以外還造成了無法訪問192.30.252.131,直接刪除之。route del -net 192.0.0.0 netmask 255.0.0.0
再來git試一下,果然可以了。。
其實問題還是很簡單的,關鍵是一開始沒注意到ping不通192.x.x.x並且由本機返回了Destination Host Unreachable,還在糾結git的自身問題。。