回國翻牆(科學上網)101
父親節,祝壇子裏的父親們快樂!
今天聊一聊二十一世紀中國最偉大的發明 – 防火長城。
從業網絡工作多年,沒想到連自己翻牆也是困難重重,費了不少勁才跟上牆梯更新的步伐。回顧在網上查找到資料,感覺都缺少對翻牆的基礎知識的介紹,使得局外人(即便是網絡專業人員)很難找對入口。特別是在網上 Google 時,結果會出現許多 VPN 商業軟硬廣告,產生誤導。在此我記錄一下我的學習心得,以餐有需要的朋友。
本文不是教人如何翻牆的,因為這些翻牆教程網上到處都是,甚至讓人無所適從。這裏旨在介紹翻牆相關的基礎知識和社會環境,讓讀者在製定自己的翻牆計劃時有的放矢。
就像長城(Great Wall)一樣,防火長城(Great Firewall,GFW)也是中國獨一無二的。不同的是,長城是固定不變的,而 GFW 則時時在加高,而且在某些敏感時期會額外增加防護網。用普通的梯子是很難跨越的,即便僥幸過去了幾次,也無法穩定地長期使用。
防火長城被戲稱牆,來源於防火牆技術。現在,“牆”不僅是名詞,也是動詞:“被牆了”就是被斷了翻牆的通道,被“屏蔽”了。
同樣,“翻牆”這個土詞也出現了“科學上網”這個陽春白雪的同義詞,我想這裏主要是有兩層含義:一是在國內的科研院所需要到外網查找資料,二是在國內的“局域網”不夠科學。
近十幾年來,牆越建越高,用來翻牆的手段也不斷更新。圍繞著這種魔道爭霸,其相關的技術已經自成體係,不斷進化,充分體現了魔高一尺,道高一丈的關係。
基於 VPN 的手段,不管底層是 IPSec,IKE 還是什麽 SSH tunnel 之類的,基本上都是基於信息安全的設計,也就是監聽者無法看到加密的傳輸內容。這是傳統信息安全的首要目標,但不是翻牆的主要目的。用這些 VPN 來翻牆有諸多問題:
小的 VPN 開發商跑路就更是常見了。隨著近幾年 GFW 的不斷加高,VPN 翻牆基本已經成為雞肋,隻有那些大品牌的廣告宣傳還是轟轟烈烈,但實用時穩定性極差。
那麽自建 VPN 怎麽樣呢?我前兩日安裝了一個 Amazon AWS EC2 的虛擬服務器,在上麵搭了 一個 VPN 服務,在我的手機上運行很好,可惜,在國內就被牆了。我了解一下,好像就是 Amazon 的 IP 地址都已經上了黑名單。
總之,耗費時間精力有點得不償失。就算現在通了,不知什麽時候又會被牆,需要不斷維護,不如用別人專業的服務更劃算。
早年的網絡安全技術 VPN 為代表的翻牆手段已經很難適應這種魔道之爭了,近五年出現的“機場”方式更能體現“道高一丈”。現在的翻牆技術都轉向了“機場”了。
熟悉網絡技術的朋友可以跳過這一段。
現在互聯網的網絡基礎可以說是三十年未變,還是基於 IP 地址上的一係列協議。我們在網上通訊,最底層都會被打包成為一個 IP 包,包頭上有兩個重要的信息:源 IP 地址和目的地 IP 地址。以 IPv4 為例(現在互聯網上的流量還是以 IPv4 為主),就是如同 52.132.254.12 樣子的四個小於 255 的數字標識。
每個 IP 地址都代表網絡上的一個節點。比如我們拿手機用流量看油管時,發出的信息包都有一個類似的 IP 地址作為源地址 A,而油管的服務器的 IP 地址就是目的地地址 B。反過來,油管發回給我們的視頻數據包裏正好把這兩個地址換了一下,B 為源地址,A 為目標地址。當然這是一個簡化的示範,加入路由後事情就會很複雜了。
用 IP 地址作為通訊的標識對計算機很方便,但對人們則不是很友好。所以人們對網絡節點還賦予了名字,叫 hostname 或 nodename。比如 www.youtube.com:這個 www 就是服務器的主機名,youtube 是域名,com 是頂級域名。網絡上的每個節點都可以賦予一個名字,並綁定到一個(或多個) IP 地址上。
但網絡通信還是用 IP 包的,發包的計算機知道自己的 IP 地址,可是它如何知道目的地的 IP 地址呢,比如上麵的 www.youtube.com。互聯網的設計者在網上安排了若幹的域名服務器,負責解析這些域名/主機名到 IP 地址。全球有 13 根域名服務器來解析頂級域名下的地址,有一兩千個鏡像服務器來分流。這種域名服務叫 DNS – Domain Name Service,它們不僅需要物理的計算機服務器,也代表著一個協議,支持各個網絡節點的域名服務請求。所以,每個網絡節點計算機都需要設置 DNS 服務器的 IP 地址才能上網(在局域網內,網關 Gateway 可以自動提供 DNS 服務器)。
好了,主要的“牆”技術和“翻牆”手段都圍繞著上麵的最基礎信息展開。
“牆”隻是網絡世界對現實世界的一個形象描述,而實際上網絡世界裏的牆和現實世界裏的情況是不一樣的。網絡世界裏的牆可以理解為籬笆,中間總是有許多漏洞,理論上就不可能完全堵死。除非真的換成土牆,但那樣就徹底隔絕了,成了地地道道的局域網,連官方通過也隻能走專線(門),這明顯不靠譜。
所以,嚴格地說,牆不僅是不斷加高,而且是不斷加密,堵塞漏洞。而牆的嚴密的程度和牆內有需要的人“合法”出牆的難度成正比,所以理論上牆總是有漏洞的,而且需要有漏洞。我理解官方的要求是“漏洞可控”,而不是完全堵塞漏洞,否則成本太高,承受不起。
舉個例子。美加邊界有近九千公裏(包括加拿大和阿拉斯加的邊界),要想建牆堵住是不可能的。所以隻在有公路通過的地方設卡,估計所有公路上的美加邊境障礙也不過幾公裏長。如果有人經常走某個小路非法越境,時間長了管理層可能就會建一段牆堵住那個小路。但總體上說,能通過的地方是遠遠多於不能通過的地方,隻是人們都習慣了走大路,這才覺得到處是牆。
為此,GFW 開發了一係列的相關技術用於檢測和幹擾“非法”翻牆:
DPI (Deep Packet Inspection)技術 – 分析 IP 數據包內內容。對於 IPSec 的數據包,隻有兩個 IP 地址可見,但現在有大數據,可以據此判斷目標地址是否該堵。這也是 VPN 翻牆經常出問題的一大原因。
DNS 汙染 – 當 DPI 發現數據包內有問題,GFW 就可以馬上給發包節點發回假的 DNS 信息,讓該節點的通信異常。
IP 封鎖 – 當認定某個 IP 地址是禁止訪問的,就對之進行牆內全網封鎖,當然也就無法建立通訊了。這裏麵具體的還有各種手段,就不一一列舉了。
VPN 屏蔽 – 為了翻牆,VPN 開發商往往把數據包偽裝成各種“合法”數據,但由於 VPN 技術的特點,這些包總會有某些特征,稱為指紋。就像當年查病毒軟件一樣,GFW 可以根據這種特定的指紋信息對數據包進行欺騙處理。
如此種種,不勝枚舉。但萬變不離其宗,就是對數據包的檢查和封鎖。
先從 VPN 技術說起。VPN 商家製作一個軟件 (或手機上的 app),用戶就在自己的計算機/手機上安裝後直接可以訪問外網了。
VPN 如果沒有 GFW 是很方便的,不需要用戶有多少網絡知識就可以使用。但這也產生一個致命缺陷,就是這個軟件是一個“穩定”的產品,這也意味著從這個軟件發出的數據包都會有某些遺傳特征,數據包的目的地也都是比較固定,時間長了 GFW 就會發現。這就是為什麽傳統的 VPN 很難勝任翻牆工作的根本原因。不管它做得多隱秘,隻要用戶多了、流量大了,就會被針對,然後被屏蔽。這種 VPN 和 GFW 的鬥法讓用戶很無奈,經常會出現 VPN 很長時間不能用,甚至以月來計。相信多數人沒有毅力在一兩個月 VPN 不好用的情況下還繼續期待著吧。
機場采用的是積木式方法來搭建。從底層技術上來說,它並不比 VPN 先進。雖然采用了許多新的協議,但那些東西都是大同小異,如果 GFW 給力的話,都可以咬上一口的。但機場把客戶端的應用和翻牆用的服務器分離開來,這樣隻要那些各種翻牆的服務器足夠多, GFW 是忙不過來的,即便屏蔽了幾個,客戶很快可以導入其他的機場,繼續翻牆。這樣就大大地提升了翻牆的客戶體驗。
機場是翻牆機場的簡稱,這個名字來源於其起初的 Shadowsocks 協議,其客戶端是一個小紙飛機 – 是不是和 Telegram 的圖標也有點像?這個詞沒有英文對應,是完完全全國產名牌 。
必須說明,機場的信息安全性(不被監視)是不如 VPN 的。當然,想要偷窺機場傳輸的內容也不是那麽簡單。所以 GFW 也沒有能力去全部過濾所同雨後春筍般的機場。
其實,就我的理解,這些機場也都是在某種監控之下的。作為監管方,他們比我的手段、經驗、技術高多了,如果真的想要對付某個具體的機場或 VPN 是輕而易舉的事兒。但凡事都有副作用,平衡利弊是關鍵,當副作用過大時,殺敵八百自損一千的事兒就沒人幹了。這些副作用都有什麽呢?
也許還有其他的原因。所以我認為徹底嚴封“非不能也,實不為也”。但為什麽當局對 VPN 斬盡殺絕呢?當然一方麵是它可以做到,另一方麵是 VPN 讓反賊們交流太容易了。其實,他們隻知其一,不知其二:如果用機場搭了梯子,然後再用 WhatsApp 一類的端到端加密通訊,其安全性不比 VPN 差。
機場也分專線(如租賃 IPLC/IEPL)、直連和中轉。專線是最好的,就像上山坐纜車一樣, 沒有 GFW 幹擾,但價格昂貴,往往是企業內部專用,這是“合法”翻牆的;直連就是直接連到國外的服務器,不經國內的服務器中轉,其缺點主要是因服務提供商不同其網速迥異,現在已經不多了;中轉式是性能價格比最高的方式,也是有當局某種默許的成分在裏麵。
說起來好像挺複雜,實際上隻要了解了原理,安裝機場並不是太難的事兒。
現在流行的操作係統都可以安裝機場客戶端,比如 Windows,Linux,MacOS,Android,iOS 等。但不同的操作係統有不同的客戶端,而且這些客戶端在中國的 app store 裏往往不支持 – 需要登錄到外國的 app store 裏下載。非蘋果產品有直接安裝的優勢,不必受此累,但也會產生安全顧慮(有一得就有一失)。
以 iOS 為例,有付費的 Shadowrocket (USD $2.99),有免費的 FoXray,V2Box,Sing-Box 等。這些客戶端大多都支持各種翻牆協議。大陸客戶必須在境外注冊 Apple ID 才能下載。
有了客戶端,就可以訂購機場服務了。網絡上搜索翻牆機場 2024 就會給出大量的機場,本文不做廣告推薦。
在搜索機場時,用“翻牆機場2024”作為關鍵字即可。放上年份是因為這些信息的時效性很強。另外,也要注意區分 VPN 和機場。機場在實際使用時會像 VPN 一樣,而 VPN 在做廣告時又和機場一樣,很是混亂。
在找機場時還需要注意以下原則:
訂閱後,按機場的要求說明,導入 profile 到客戶端,就可以像 VPN 一樣使用了。要注意那些 profile 需要經常更新,以免被牆。
幻想買一個 VPN 軟件就可以在國內翻牆的朋友,可以洗洗睡了。
翻牆是一個持續的魔道爭霸賽,不僅僅 VPN 不能一勞永逸,用機場也不行。最好的辦法是加入翻牆群,比如 Telegram 有不少這樣的群,有許多就是機場開發商建的,可以跟蹤目前的實用翻牆技術。另外和幾個搞機場的朋友的連上微信,以後就方便多了。
不要完全相信哪個機場。他們可能會跑路,可能會被拔線,也可能本身就是當局設的。
作為用戶,機場有三類:
大家可以看到,機場其實比 VPN 要便宜一些。上麵的價格都是按月付款,按季按年都另有優惠。
作為機場用戶,應該有狡兔三窟,就是同時準備幾個機場。比如,有一個大容量的作為主機場,另安排一兩個不限時按流量付費的備份機場,當主機場出問題時,備份機場就可以生效了。它們之間是不衝突的。
至於付費方式,這些機場基本都是支持支付寶、微信付款的,因為主要客戶群畢竟是在中國國內。
對於短期回國旅行的朋友,在國內翻牆時還有另外兩種方法:
這兩種方式都可以訪問外網。
----
本文是基於身在國外,需要臨時回國的角度來考慮回國後如何翻牆出來的。從國內同胞的角度可能會另有考慮。
本人也是脫離網絡技術多年,錯誤和謬誤難免,望讀者海涵。
謝謝博主的科普,自由萬歲!