談談中國的網路



来源:https://medium.com/@maxchou415/gfw-f79b73a7b6c1

作者周奕勋,现年 16 岁,9 岁开始编写网页,国中便组队参加中国 AWS 挑战赛,曾经在美国和中国拿到 3 个工程师的工作机会、还破格申请上位于硅谷的 Foothill 学院的独特入学名额。虽然小时候被人称为"不听话的小孩",但周奕勋在程式语言中,找到了自己的道路,踏出了许多连大人都难以想像的风景。


筆者本人到北京工作大約 3 個月,基本上有兩個月的時間都是在研究如何「架梯子」也就是翻牆。

身為一個自由國家的好公民兼任軟體工程師,基本社交圈應該都是在 Facebook 上面,debug 也應該都在 Google 上面。
可以說生命都寫在 GFW List 裡面了(誤)。

在臺灣我自己在家準備了一台又有 Shadowsocks 又有 IPSEC 的 Server ,也請住在舊金山灣區的朋友在家裡 (位於 Sunnyvale,線路 Comcast) 幫我架了一台 SoftEther VPN (超級穩,果然 Google 工程師好牛逼 XD)。
一開始我剛下飛機的時候是使用香港的手機卡,所以完全感受不到 GFW 的存在,後來我的香港卡過期了,所以我辦了中國聯通的吃到飽。

一裝上中國聯通的 SIM Card 之後,馬上感受到好像有個人把我的手跟腳綁起來,不能上 Facebook 跟 Google ,通通斷了我的生命,當下我覺得我跟廢人沒有兩樣 XD
一開始我使用的是我美國朋友架的那台 VPN ,一開始用起來非常快,但是問題是在 iOS 原廠的 Client 不會自動幫你 Reconnect ,也就是如果被 GFW 砍了你的 Connection 之後,你就要手動自己重新連線,也因此我常常漏接一堆 Facebook Messenger 的 Message (大哭)。

後來,我開始自己在 VPS 上面架 Shadowsocks Server ,從大家都知道的 Digital Ocean, Google Compute Engine (臺灣節點) 到很少人聽過的 GigsGigsCloud 都用過了,也在這中間得知了中國海纜,或是 CN2 的狀況。

前面講了一堆廢話,現在帶入正題。

先介紹一個常見的 Protocol ,還有最佳方案。

Shadowsocks

先從 Shadowsocks 開始說起,Shadowsocks 是在中國翻牆速度最快,且最爽的一個選擇,怎麼說呢?
大家應該都有上淘寶的經驗,買完準備結帳,開啟支付寶的那時候,速度是慢到爆炸,沒錯 GFW 會降速!!!

所以如果我們用 VPN (不管哪一個 Protocol) 在連回來中國的 Server 就會慢到想哭,尤其是在點外賣的時候沒辦法下單 …

那為什麼 Shadowsocks 可以解決這個問題呢?嚴格來說,不是 Shadowsocks 解決這個問題,而是 Shadowsocks 可以選擇要 Proxy 哪些 Domain Name 或是 IP Address。

 OpenWRT 上,我自己常用 GFW List 指定 Shadowsocks 代理 GFW List 裡面的 IP 跟 Domain ,像是 Google 或是 Facebook。

在 iOS 我自己比較推薦使用 Surge 跟 Potatso 2 (比較便宜)。
其實還有一個 Client 叫做 Wingy ,它是不用錢的,問題是 Wingy 不能使用 Facebook Messenger ,原因出在 Facebook Messenger 使用了 SPDY ,但是 Wingy 不會代理到 SPDY ,故無法使用。
但是 Wingy 很容易 Config ,因為他內建了 PAC Mode ,基本上填入 Server Information 就可以使用了。

而 Potatso 2 比 Wingy 強大很多,它可以設定自己的代理規則,也自訂 DNS Server。

IPSEC

其實我不想多說 IPSEC ,因為 GFW 已經有能力明文 IPSEC 的封包了。
(那就別用啦~)

SSL VPN

個人蠻推薦 SSL VPN 的,原因很簡單,因為很穩定。
筆者自己用過 ExpressVPN,它是走 SSL VPN (UDP) ,基本上斷線的機率很少。

自建 Server 的話,在這裡推薦使用 OpenConnect (ocserv) 並使用 Cisco AnyConnect Client 連線。
基本上速度不會太慢,Facebook 開直播與看 YouTube Full HD Video 不是甚麼太大的問題。


由於這篇是分享文不是 VPN Protocol 分析文,所以我就只介紹兩個 Method。


三大電信評比

這幾個評比是以 VPN 穩定度,速度,路由狀況作為基準。

中國的三大電信商分別是 中國聯通,中國移動,中國電信。

中國目前主要是兩大電信商作為出口線路,分別是 中國聯通 與 中國電信。

其中中國電信因為使用者過多,但是對外頻寬不足,所以 VPN 常常斷線,反倒是聯通就比較沒有相關問題。

中國電信

筆者長時間使用過 中國電信 分別是在自己家裡與公司,家裡是 50/6 的寬帶,並使用 LAN 接入。而公司的部分是 100M 的寬帶,接入方式不明。

中國電信對於中國國內 (GFW 內) 的速度一直以來表現是很不錯的,但是連國外或是翻牆就常常會有不穩定,掉封包的問題。(不走 CN2 的情況)

掉封包的情況沒有非常嚴重,算是可以接受的範圍,但是翻牆常常翻不出去或是翻牆之後速度很慢的情況常常發生,建議常翻牆(像我)的朋友們可以避開就避開。(不走 CN2 的情況)

中國電信可以說是翻牆剋星。

中國聯通

筆者應該可以說是中國聯通的忠實用戶,我有 2 張中國聯通的上網卡,分別是學生專案與不降速砸錢吃到飽專案。主力是使用後者。

筆者在北京待的其中一家公司有使用過中國聯通 FTTH 的網路,也是 12 小時一週 6 天都在翻牆,所以使用下來也有不少心得。

在中國聯通 FTTH 的網路環境下,12 小時內用 IPSEC 連到 位於美國舊金山的 Server ,好的時候整天不斷線,壞的時候一天斷個 3 次。

而使用 Shadowsocks 連到位於 臺灣的 Google Compute Engine 的 Server ,好的時候可以 99% 在線,壞的時候一天可能斷 1 次。

在中國聯通不降速吃到飽的情況下 (LTE) ,基本上 Shadowsocks 不斷線,並且表現的非常好。

如果使用 ExpressVPN 並且在中國聯通 LTE 的情況下,連結位於香港的 Server ,基本上速度跟在臺灣差不多,YouTube FHD 可以爽爽看,也可以在 Facebook 上 Live。

雖然中國聯通對外的頻寬沒有中國電信來得大,但是使用者比中國電信來得少很多,因此國外線路可以說是中國聯通表現最好。

如果跟我一樣,醒著的時間都在牆外,就用中國聯通吧!

中國移動

筆者有一張中國移動的吃到飽電話卡,所以剛好可以跟著中國聯通一起測試。

中國移動在於訊號的部分真的是不可否認的好,連我家的電梯裡面都有 LTE Coverage (後來有發現有裝 Booster )。

但是中國移動的聯外線路就沒有聯通跟電信來得好,原因是因為移動自己的出國線路比較少,大多都是跟聯通還有電信租來的,所以速度就會慢一些。


VPS 推薦

筆者自己使用過 GCE, Digital Ocean, GigsGigsCloud, OVH (感謝朋友借我測試)

也請朋友在臺灣家中 (Hinet 100/40) 架設 Shadowsocks 過。

速度最快的是 Google Compute Engine (Taiwan 節點),路由是 CN2 到香港在到 CHT 。

而路由最少的是朋友房子家中那台 Hinet ,北京電信跟北京聯通是直連,不會繞路。


VPN 推薦

有一些朋友對這方面可能比較不熟悉,或是懶得自己維護,故在此提出一些解決方案。

ExpressVPN

筆者目前是使用 ExpressVPN ,使用快一個月的感受非常不錯,速度很快,而且 99% 翻的出去。

依照筆者這一個月下來的測試,不管在聯通還是電信或是移動的網路環境,首選是「香港 3 號」再來是「臺灣 1 號」。

千萬不要用什麼 Smart Location ,每次都選日本,速度超級慢。都想說他是 Stupid Location 了。

ExpressVPN 最大的優點就是它沒有流量限制,並且支持 Router 翻牆。而且 Client 會 Auto Reconnect 。

雲梯

雲梯的速度表現也是很棒,但是每個月有流量限制(看方案),而且必須要有支付寶或是中國的電子支付才能購買。


訊號與網速比較

因為筆者擁有 3 個中國手機號,分別是 1 移動 2 聯通,所以順便做起了訊號測試員(?)

訊號

中國移動 > 中國聯通

速度

中國聯通 > 中國移動


總結

在中國這幾個月,我自己花了不少錢再購買 Server 與設備做測試,就是為了追求沒有 GFW 的感覺。XD


没有评论: