最近要在虛擬機器裡更新webrtc,按照網上的教程使用shadowsocks+橋接模式實現了虛擬機器的翻牆,翻牆方法可參考http://blog.csdn.net/MENGHUAN…
但在執行gclient sync這一步時,一直沒法更新完畢,下載一段時間後會提示類似於fatal: The remote end hung up unexpectedly的資訊,根據網上的資料,出現這種現象的原因可能是如下幾種:
- git的buffer過小,導致較大檔案下載不下來,解決方法是設定:git config –global http.postBuffer 157286400(這裡的數值可以依據需求設定)
- gnults協議的缺陷,git預設使用的是gnults協議,為了避免這種現象發生,可以將gnults改為openssl,具體操作可以參考:https://askubuntu.com/questio…
- git高版本可能存在的問題,解決方法是安裝git 1.9.1,刪除現有的高版本git
- 網路問題,這裡網路問題一種是網路本身不穩定,另一種是代理的不穩定。
在排除了前面幾種可能性之後,我發現我的問題出現在網路上。我使用的是Windows7系統,虛擬機器為Ubuntu14,代理使用的是shadowsocks,埠對映7070。問題就出在shadowsocks裡,我發現資料流只要走代理進行傳輸,無論是下載google的原始碼還是GitHub上不需要翻牆的原始碼,下載大概10到20M時git就會斷開一次連線,導致下載中斷。我解決的方法是設定VPN進行翻牆,沒走shadowsocks,下載速度雖然很慢,但能保證相對穩定的下載。