GFW的封殺手段以及常見的翻牆手段
【美博翻牆2019.11.13】【轉載自猿猿筆跡】今天,shadowsocks的作者把shadowsocks的源碼從github上刪除了。這是一件翻牆界的大事,但對多數人來說其實並沒有什麼影響。這個項目顯然會被其他人接手,開發不會中斷。對我自己來說,shadowsocks我也沒用多久,現在翻牆還是主要VPN,所以也沒什麼影響。值得一提的是政府這次直接出面干涉一個開源軟體的作者,不得不說很傻很天真。身在海外的程序員成千上萬,怎麼可能通過干涉作者去阻止一個軟體的開發。
我從開始翻牆到現在也好幾年了。最開始只用twitter的api,後來自己架vpn伺服器,最後肉身翻出去,也算見證了GFW的成長。正好上學期學了network,趁機總結一下目前GFW和翻牆軟體之間道高一尺魔高一丈的對決。
一、GFW的主要功能
連接重置
當檢測到某個TCP連接的IP包中包含非法關鍵詞時,偽造RST包發給TCP連接兩端,導致連接斷開。
缺點是只對非加密的TCP數據有效。優點是維護方便。
對策很簡答,使用加密數據傳輸就可以了。VPN,shadowsocks,SSH全部是基於這個原理翻牆的。如果沒有其他的手段做輔助,單單使用https就可以繞過。
IP/連線埠封鎖
就是IP封鎖,簡單暴力。
缺點是IP封鎖需要部署在骨幹路由器上,能夠封鎖的IP數量有限制。優點是封鎖很徹底。
對策是代理伺服器,不需要對數據加密就可以繞過IP封鎖。但是由於連接重置的存在,顯然還是需要加密。
DNS污染
在用戶進行某些特定網站的DNS查詢時,搶先發送偽造的DNS結果,導致DNS解析到虛假的IP地址從而阻止用戶訪問非法資源。
優缺點不明。
對策是使用境外的代理伺服器進行遠程DNS查詢,從而獲取到正確的IP。單純把DNS設置為境外的DNS伺服器是無效的,因為只要是符合條件的DNS查詢UDP包都會被投毒。曾經的改hosts翻牆的辦法,也是針對DNS污染的手段,然而現在也已經沒什麼用了,因為重點被照顧的網站已經被前兩個手段封死了。
其他
近年來,GFW更新了很多新功能。OpenVPN的死亡預示著一些常用的個人翻牆手段開始被限制。之後,很多人發現SSH翻牆也經常失敗,甚至VPN也不能用了。現在並不知道GFW到底做了什麼,但是以下幾個特點已經被證實:
很多加密連接在握手時,發送的數據包有一定特徵
這並不是這些加密連接的設計問題。加密鏈接設計時優先保證數據不可被解讀和偽造,並不考量數據包是否有特徵。但GFW只需要阻止連接……以OpenVPN為例,GFW並不需要對數據包解密,只需要判斷出這是OpenVPN的握手包,然後阻斷就可以了。因此所有握手包有特徵的協議,都可以用這個方法來封鎖。
加密連接用在翻牆瀏覽網頁時,發送的數據包也有一定特徵
如果某個伺服器總有大量的加密流量通過,並且符合一定的特徵(入大於出等等),則GFW會重點屏蔽這些伺服器。很多大型VPN就是這麼死的。
一些雲服務商的IP地址被重點監視
Amazon的雲,linode,digitalocean等國人喜歡用的VPS,已經被重點照顧,大量IP被封。這些IP應該是被重點照顧的,有時自己新搭建的VPN伺服器,幾天就會被封,期間並沒有怎麼用。
二、主要翻牆手段的興衰
改HOSTS
如前面所說,改HOSTS可以應對DNS污染。然而當google的伺服器全面被封鎖,發向google.com的所有http請求都被阻斷的時候,改HOSTS就沒用了。
tor
一個反追蹤的軟體,原理簡單說就是每個用戶是一個節點,用戶的請求會通過其他用戶傳遞,這個路徑是變化的,而且信息是加密的。和很多其他P2P協議一樣,新節點進入網路時,總需要獲得周圍節點的信息,這個信息往往是由一個中心伺服器來維護的。這東西做反跟蹤很好,但是對GFW無效,因為它不講理。GFW只要屏蔽這個中心伺服器,這個TOR網路就掛了。因為需要建立一個龐大的節點網路,一定需要公開一個中心伺服器,這個伺服器很容易被GFW幹掉,所以TOR很快從翻牆界消失了。
VPN
目前仍然有效的翻牆手段。同時可以應對GFW的3大功能,另外原本設計出來是給公司建立虛擬區域網路的,很多公司在用,GFW不能簡單地封連線埠或封協議了事。但是由於有握手特徵,因此會被重點照顧。例如,GFW發現了你和某些雲服務商之間的VPN協議通信,就會重點照顧你。OpenVPN因為沒有什麼公司用,所以直接死透了。
SSH
目前仍然有效的翻牆手段。作為遠程連接的主要手段,和VPN一樣沒有被直接封鎖的可能。和VPN一樣,握手有特徵。
GoAgent
是個特殊的http代理,依託google的雲服務GAE。優點是免費,然而現在GAE已經死透,GoAgnent也沒什麼前途了。
shadowsocks
目前仍然有效的翻牆手段。之前提到的幾個協議,都不是為了翻牆設計的。shadowsocks是專門為了翻牆設計的。它依託socks代理協議,在代理的兩端之間對內容進行加密,加密的方式是預共享秘鑰,沒有明顯的握手包。想要封鎖shadowsocks,就必須找到shadowsocks通信的特點。已經有人表示可能GFW已經具備了這樣的能力,但是這個協議有個非常好的特點,就是更新迅速。由於是針對翻牆設計的,一旦被抓到規律,可以立刻反應,不像VPN和SSH這類承擔其他任務的協議不能隨意更改。發現規律是困難的,而更新協議來防止被發現則相對容易,我想這也是為什麼作者被要求停止開發的原因。
三、GFW攻防戰
首先,GFW存在的目的是為了防止網民看到政府不想讓他們看到的內容,同時保證正常的網路通信。這個目的本身就決定了無論過往,現在還是以後GFW攻防戰的方向,就是把流量偽裝成正常的網路通信,從而避免被封鎖。
由於GFW有IP和連線埠封鎖能力,任何大眾化的翻牆手段都會被封鎖。shadowsocks再強,如果幾萬人用一台伺服器,GFW直接把伺服器IP封了就好。因此翻牆必須小型化,個人化。例如程序員租一台伺服器,供給周圍好友100人以下用來翻牆,就很難被發現。現在有些大型VPN公司仍然沒有死,例如Astrill,原因不清楚,但是和我們討論的技術無關。
這次shadowsocks作者被請喝茶,其實給了我們一條明路,就是專有協議的翻牆。雖然缺點很明顯,就是不方便:手機等移動設備不可能內建對專有協議的支持,電腦也需要安裝軟體才能實現翻牆。但是優點無可替代:難以被發現,被發現可以迅速更新。
本文鏈接:GFW的封殺手段以及常見的翻牆手段
美博園文章均為「原創 - 首發」,請尊重辛勞撰寫,轉載請以上面完整鏈接註明來源!
軟體著作權歸原作者!個別轉載文,本站會註明為轉載。
這裡是你留言評論的地方