Featured image of post  「翻牆」普及 Part one - 理論部分

「翻牆」普及 Part one - 理論部分

此文章最後修改於 2022 / 04 / 5

索引

「翻牆」這個話題,在大陸來說,還是一個比較敏感的話題。這個行爲其實觸犯了大陸的法律,相關的內容可以了解查詢中華人民共和國網路審查,這其中就包括了對「翻牆」這個行爲的定義。

但以我個人生活在大陸這些年,對大陸的了解,其實有六成以上的人會使用簡單的工具進行翻牆。所以如果你有這個習慣或者需求,其實你並不是少數人。

如今,我覺得「翻牆」是一種很重要的生存手段。如果你在大陸長期生活,避免不了會有這種需求。當你需要查詢資料,收看新聞時,「牆內」的訊息也很難滿足你的需求。所以這篇文章,可能可以幫助到你。

再來說說這篇文章。這篇文章我主要會分爲理論和實踐兩方面來寫。理論方面會在這裏介紹一些歷史,名詞,工具等等一類;而實踐方面,我則會着墨於如何使用一些主流的工具。會想講到理論,其實是希望每個人都能對你用到的東西能有一些了解,就算是淺顯的部分也可以。我覺得這能幫助你如何使用或者在出現問題時,你能夠有基本的動手能力。古人雲:「授人以魚不如授人以漁」,這才是比較重要的部分,而後面的實例,只是給你一個簡單的示範。當你有這方面的知識之後,你也可以寫出自己的教程。

如果在閱讀文章的過程中你有任何的問題或者你覺得我的文章有錯誤,都可以來Telegram上找我, 我會很高興收到你們的建議。

什麼是「牆」

牆,其實是中華人民共和國國家防火牆,也稱「長城防火牆」,常用簡稱是GFW(取自 Great Fire Wall)。其實對官方來說並沒有GFW這個稱謂,只是後來民間興起和演變,這個綽號也被越來越多人熟知,於是也就變成了一種習慣名稱。

爲什麼會有「牆」,其實起因有很多。因爲涉及衆多政治因素,這裏不做過多說明。

GFW主要作用於分析和過濾中華人民共和國境內外網路間的相互訪問。這句話其實說明了GFW的工作其實是雙向性的,一是限制大陸網民訪問某些境外站點,二是限制國外的用戶訪問國內的站點。

GFW的主要工作方式

在談到這個之前,我想先簡單的介紹一下一般情況下,在無GFW幹擾下訪問網站的過程。

正常工作基本流程

在瀏覽器輸入你所要訪問的網站域名,你的電腦會生成一個數據包,通過你的本地網路接入骨幹網,再通過DNS域名解析,解析出你輸入的域名所要訪問的服務器ip地址,再傳入服務器中,服務器經過處理,會返回一個數據包到你的電腦。

可能會有點難理解,但這個過程可以類比成「寫信-寄出-收信-回信」。當你寫信時,信封上需要有收信人的地址,這個地址就類似於上面的網站域名,寄出後,信回先到一個大的中轉站,然後會分發給信差,這步就類是於傳入服務器前的動作。然後收信人收到信後再回信,就類似於服務器接受請求返回數據包。其中發往服務器的過程中需要經過很多的地方,這些名詞你可以自行檢索,了解他們各自的工作。

在有GFW幾種基本工作模式

在前面的部分幾乎一樣,都是把數據包由本地網路接入骨幹網,再通過DNS解析,再來到GFW。接下來就會由GFW展開工作了。一般來說,GFW有三種基本工作原理:

ip黑名單

在GFW內,可能有一張巨大的ip黑名單,上面都是被屏蔽的ip地址。當域名經過DNS解析後,ip地址可能就會和黑名單中的ip地址進行檢索比較。如果你所訪問的網站的ip地址在這張名單上,就會被屏蔽。

不過,這個方法的缺點也很明顯。如果單純採用這個方法進行工作,許多網站並不止有一個ip地址。如果另一個ip地址不在黑名單內,則可以正常訪問。

關鍵字過濾

當你傳輸過來的數據包含一些敏感詞的時候,就會馬上被中斷連接

DNS劫持

因爲一般網路數據包都是明文流量,GFW可以直接看到你所要訪問的地址。當知道你要訪問一些不能訪問的網站時,DNS會自動解析出一個錯誤的ip地址,或者直接不解析地址,讓服務器無法和你的電腦建立連接。

上面講到的三種方法,其實是最簡單或者說基礎的方法,如今GFW逐漸完善,也多了其他很多的攔截方法。

突破 GFW 的幾種方法

早期 Http 代理

後來人們逐漸發現,只要 GFW 無法偵查到我的流量意圖,也就是我發送一個帶有加密請求的數據包到 GFW ,那麼 GFW 就無法進行攔截。於是早期的很多 http 代理都是依賴這些模式進行突破。

簡單的講解一下過程。當你發送一個請求時,你的本地計算機會發送一個帶有加密請求的數據包,再接入本地網路,再到骨幹網,再由 DNS 解析,發現是去一臺沒有被「牆」的服務器(我們稱它爲中轉服務器)上,GFW 便會放行,然後到達這臺所謂「中轉」服務器上後便會解密數據包到真實你所要訪問的 ip 地址,再去往真實的服務器地址。之後服務器會返回數據給「中轉」服務器,再傳回你的本地計算機。

這套邏輯很簡單,但也有很大的弊端。這個弊端就是帶有明顯的「特徵」。你的每一次請求所發送的數據包,都是帶有加密請求,並且會去往一臺中轉的服務器上。久而久之, GFW 的維護人員就嗅到了這個特徵。所以 GFW 也具有了攔截這些代理的功能。也因爲太多人採用這種方式突破,使得這種特徵實在他太過於明顯。所以現在單純 http 代理的 VPN 幾乎斷絕了。

Shadowsocks 的出現及衍生工具

可以說 Shadowsocks 的出現是這段歷史中最精彩的一個節點。Shadowsocks 的作者是 Clowwindy ,其原理也是通過一個加密的數據包來欺騙 GFW ,但與上面說的不同點再於, Shadowsocks 是基於本地端-服務器端這樣一個架構,在本地端運行時,數據包就已經完成了加密,使得 GFW 並不清楚你的意圖,也不帶有明顯的特徵,到達遠端 Shadowsocks 服務器後,再進行解密,去往你要去的地址。

當然革命性的技術的出現,讓 GFW 的維護人員十分頭疼。因爲流量加密(雖然只是簡單的 sock 加密),但也足夠騙過 GFW 去訪問他們不想讓你訪問的網站,並且也不能禁止所有的加密流量通過,因爲加密流量中還會有很多的正常的流量需要通行。所以讓 GFW 很難攔截此類流量。

之後 Shadowsocks 就因爲政府介入,原來的 Shadowsocks 專案也被迫刪庫。但因爲有很多人 fork 了此專案,使得副本還有很多的使用者維護。後來 Clowwindy 也恢復了此專案。

但因爲有了 Shadowsocks 的這套理論邏輯,也演變出了其他的工具。例如 V2ray ,Clash ,SSR 等一系列的工具軟件。這些軟件在某些細節上可能有不同,但都是基於 Shadowsocks 的基本原理。

這段內容可能會導致一些人誤解 Shadowsocks 只是爲了用來突破GFW,其實這只是其中的一個功能。 Shadowsocks 其實是一個流量安全加密框架,其實是用來進行流量加密,可以更安全的進行傳輸。 Shadowsocks 也不算是一個「單獨的」軟體,它需要有伺服器端和用戶端才能正常使用。伺服器可以是任何的 vps,亦或者是你所購買的節點。而用戶端則是通過你所使用的裝置上的軟體。只有兩端進行連接後,才能正常使用。

一些詞語或名詞

「飛機」和「機場」

這個詞的來源挺有意思。早期有節點供應商的時候,爲了「避諱」,就在想一個比較好的詞來表示他們。因爲 Shadowsocks 的圖標是一個灰色的紙飛機,所以就會用「飛機」來代替這些節點。而飛機就需要一個停機坪,一般的飛機都停在機場內,所以就把提供節點的供應商稱作「機場」,機場老板一般叫「機場主」。

這個稱呼沿用至今,不管是任何類型(即使不是 Shadowsocks sock5協議的節點)的節點供應商都被稱爲「機場」。

這個稱謂也是爲了和加速器進行區分。

關於「線路」的名詞

這裏會簡略的提到一些機場常用的線路,幫助大家在選購「機場」時有一個初步了解。

這裏所介紹的線路,還是比較淺顯的。在自己選購的時候,一定要基於自己的情況來選擇。

而且機場水深,還是不要單純看他標榜的線路,自己實測一下還是最好的。

IPCL

全稱是 International Private Leased Circuit ,翻譯成中文爲“國際私用出租線路”。

這條線路 is awesome ,因爲實際上這是一條專線,傳輸不經過公網,只會經過內網,這就說明這條線路本不過牆,也就是你發送的請求是不會經過 GFW 。

要說缺點,可能真的就只有「貴」吧,一般來說帶寬小流量低。當然並不是說好的線路就不會卡。再好的線路多人一起用,都會出現卡噸的情況。

IEPL

全稱是 International Ethernet Private Line ,翻譯成中文爲“國際以太網專線”。

這條線路算是真正的端到端的以太網線路,一般的大型跨國企業可能會選擇這條路線。因爲是以太網線路,則只需要 MAC地址 就可以直接配置線路,並且更加穩定,也有更快的速率。

對於 IPCL 和 IEPL 兩條專線來說,在特定的網路時期(例如說開會)也是十分穩定的,當然這就是加價的好處吧。所以要檢測一間機場是不是專線,最簡單的方法就是看他在特定時期還能不能正常使用就好了。

CN2

全稱是 ChinaNet Next Carrying Network ,縮寫爲 CNCN ,也就是 CN2 ,翻譯過來就是“中國電信下一代承載網”。

特點就是採用了 QoS 技術,這是163骨幹網路所沒有的技術。QoS 簡單理解就是能夠識別你網路中的流量的需求,從而調整帶寬速率。比如你在玩遊戲時可能不需要這麼高的速率但需要低延遲,QoS 就能自動偵測進行調整。

BGP

這個一般稱爲「多線機房」,他會根據你的網路服務商來自動連接到最適合你的連接服務。

VPS

全稱是 Virtual private server ,翻譯成中文就是虛擬專用伺服器。其實就是一臺實體伺服器,再通過一些技術分割成一個個獨立的虛擬伺服器。因爲他們分割之後並沒有各自的實體,本質上還是共用一臺伺服器,所以就叫做虛擬伺服器。

每個VPS都可分配獨立公網IP位址、獨立作業系統、實現不同 VPS 間磁碟空間、記憶體、 CPU 資源、行程和系統組態的隔離,為使用者和應用程式類比出「獨占」使用計算資源的體驗。 VPS 可以像獨立伺服器一樣,重新安裝作業系統,安裝程式,單獨重新啟動伺服器。

一般的服務中,也不會使用到一整臺伺服器。爲了節省資源,也就會分成一個個 VPS 分別使用。所以一般我們把這個實體伺服器稱謂「母雞」,下面的 VPS 就稱謂「小雞」。一般的節點服務,都是用 VPS 搭建的。

關於 流媒體解鎖

爲什麼想談這個問題呢,因爲其實這不僅是在大陸才有需要。如果你想要訂閱流媒體服務並且收看其他國家區域的流媒體,也會有「翻牆」的需求。比如說,我在香港購買了 Netflix 港區的流媒體服務,但我還想看一些只有新加坡區獨家的節目,那麼我就可以選擇「翻」到新加坡,然後觀看新加坡的節目。

但這些流媒體供應商是會審查你是否使用了 proxy(代理) 。一般來說,一些大的 VPS 的提供商的 IP 是直接被流媒體商家屏蔽掉的,就是這些 IP 是無法訪問流媒體網站的。 像是 Netflix 和 Hulu ,還會對你的IP注冊地址和所在國家是否一致。如果你的節點的 VPS 所在的國家和節點 IP 的注冊地址不一致的話,也是無法使用這些流媒體服務的。

檢測原生 Ip 也只是衆多限制中的一個。實際上流媒體運營商對 Ip 限制規則多有變化,而且對一些商用 Ip 段一般是完全屏蔽。解鎖流媒體也是機場需要實現的基本技術,因爲現在大部分的用戶都有對流媒體的需求。但到用戶層面來說,對於解鎖機如何實現例如「換 Ip」和「動態切換」等等的技術,並不需要過多的知識。因爲,只要能讓我們安心用不就好了嘛。

從21年來,流媒體大範圍的開始屏蔽一些網絡服務商的 IP。因爲一些機場使用 cookie 共享流媒體帳號,來讓用戶使用。就導致了一個帳號會有上百個人使用,這就讓商家不願意了,於是開始屏蔽掉一些網路服務商的 IP。不過就目前來說,還是可以正常使用流媒體。

如果你需要流媒體服務的話,就要選擇帶有流媒體解鎖的機場。

結語

其實對於一些基本的理論知識,在對我們實際使用上可能不會有太大幫助(除非你自己架設,不過要是會架設的話也大概率不會看我的這篇文章了)。但是能在你進行選購機場、協議等等方面,給你一點大致的輪廓。淺顯的說,就是有助於你不會被人騙吧。特別對於一些圈內的暱稱、術語,要是你聽不懂或者沒什麼概念的話,就很容易陷到陷阱裏面。推薦大家認真瞭解一下,有了大致輪廓,肯定是能幫助到你的。

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy