前言
以前曾有一段日子旅居深圳,對GFW的理解和使用各種工具翻牆算是有點經驗,
雖然多年前已回到牆外,但偶爾也須要進入匪區,故此還是保持了解各種工具,
就曾經搭建過或使用過的說說
目前還有效的工具
1) shadowsocks
這個還是現在最熱門的工具,暫時來說沒聽到大面積陣亡
優點
多平台,服務器可部署到由路由器到任何系統,版本眾多,輕盈的shadowsocks-libev
可在64M/0 vswap的Linux VPS運行,而不會跑不動。客戶端也是多平台,路由器,
電腦到移動裝置,幾乎涵蓋所有系統,可以說是install once, Fuck GFW everywhere
缺點
因為只使用預定密鑰作為客戶端和服務器的唯一辨別身份方式,有可能會遇上中間人
攻擊,客戶端連上是偽造的目標服務器,在服務器方面的缺點更明顯,因為只用預定
密鑰,於是錯誤的密碼或加密方式服務器照樣回應客戶端的請求,只是不連接到目標
網站,有無聊者用字典窮舉密碼,而不是拒絕連線,日誌上就出現很多ERROR,我的最
高萬多個錯誤,共二百多個來自CN的IP試著連線,shadowsocks-libev可以開啟一次性
認證,但很多客戶端不支援,例如iOS的Surge,A.Big.T都沒有,變成無法使用這一方式
,如果寫個腳本紀錄日誌的錯誤次數,達到某一數目調動iptables封鎖,又會誤傷填錯
密碼的用戶,或者是分配到被封的IP而連不上服務器。
多用戶無法簡易控制用戶訪問的端口,一個人或三數好友使用時問題不大,但用戶有
一定數目時,如果有不良用戶通過代理hack其他服務器的sshd,或者濫發郵件,端口掃
描等等行為,有可能是收到VPS供應商投訴或封權才知道,要防止可能要設置複雜的
iptables規則作限制,另外限制連接數也要用上iptables,例如要限制14701端口的連
接數,你得輸入,例如32個
iptables -A INPUT -p tcp --syn --dport 14701 \
-m connlimit --connlimit-above 32 -j REJECT --reject-with tcp-reset
這是shadowsocks-libev官網的舉例,由於shadowsocks一端口一用戶方式,
如果有20個端口要輸入20次或寫腳本自動化,相當麻煩,也不是一般用
戶處理得了。
結論
還是推薦為首選搭建的工具,原因還是那個,輕盈,有效,多平台,不論低端VPS到
高端VPS都可部署,應對無聊人士窮舉密碼方式是設置16位以上字符長度的密碼,不
要理會就成,用命令隨機產生比較難以破解的密碼,例如:
head -c 512 /dev/urandom | md5sum | base64 | cut -c3-18
每一端口配上不同密碼
2) HTTPS/SSL 代理
這個方式存在很久,暫時仍然有效
優點
通常以stunnel作為加密隧道,後端可自由配搭不同的代理,只要支援CONNECT方式
的都行,我就搭建過配合squid3,3proxy和tinyproxy,這些後端已很成熟,能控制用戶訪
問的端口,或是服務器接受的連接數,也可設置用戶認證方式,電腦上無須使用客戶
端,現在大多數browser支援HTTPS代理,在一些限制嚴格的公司內,如不能下載安裝
軟件,控制用戶訪問的網站,端口,可以購買商業用的SSL證書,設置用戶認證,把
代理設置在443端口,公司不能封這端口,只須在browser設置代理就能突破公司封鎖,
而且網管不知你去了那裡。
這個方式也是多平台,路由器刷了第三方韌體,例如Asuswrt-Merlin,又能擴展entware
環境,就可搭建服務器在路由器,使用的資源也不多,也可以設置stunnel為客戶端連
接服務器。移動設備也有支援,ios的Surge和A.Big.T都有支援http with tls ,安卓也有
tls-tunnel等app,只是不太好用。
缺點
部署麻煩,如果使用IP + 自簽名證書,須要自己gen,同時要把證書導入browser或系統
,非常麻煩,而且據說GFW能分辨證書,會按照類型封殺服務器,據說現在還包括免費
的有效證書,例如Letsencrypt ,通常商業不會用這些,不能混跡其中,危險性便
增加了。
另外有說SSL握手特徵明顯,GFW容易察覺,shadowsocks的作者clowwindy
就不建議使用SSL翻牆,
按我看原文 。
個人淺見以數據安全和防止中間人攻擊就高於shadowsocks,對於窮舉密碼的無聊人仕
直接拒絕連接,有效得多,而且有網友使用還沒見到大量被封。
搭建成本高昂,為了比較難被封鎖,除了VPS的費用,還要購買域名和証書,這無疑比
較其他方式使費較多,使用域名連接一旦遇到DNS污染,還得修改hosts文件把域名指向
IP抵禦,如果封的是服務器IP,全部投資報銷。
結論
我還是推薦搭建作為輔助工具,原因是少數用戶使用我搭建的SSL代理至今還沒有連接
不上的報告,這些有用Letsencrypt證書或自簽名證書,如果條件許可,請購買商業用的
SSL證書配合域名搭建,可以混跡其中使GFW不會亂封,openvpn之所以失效就是特徵
明顯,公司不會以這個協議的VPN作為數據安全通道,於是便大面積失效。使用這類
SSL代理最好是三兩好友算了,我經常懷疑GFW會根據加密連接數目主動檢測是否翻牆
,為了長久翻牆,不要超過三個用戶,最好自己私用。
另外前端可改為較新的nghttp2
點我 點我 據說速度驚人,但我未搭建過。
3) Cisco IPSec VPN
目前算是很流行的VPN,暫時有效
優點
以StrongSwan搭建服務器,多平台,由路由器到各種*nix系統都可搭建,客戶端也是
涵括各種系統,移動系統2大主流還原生支援,使用共用密鑰配合用戶認證,連客戶
端都不用安裝,而且穩定性高,兼容性好,使用方便加設置容易,數據安全性高。這
個VPN協議為商業公司使用的方案之一,混跡其中可使GFW不敢亂封,當然在共匪開
大會時會有嚴重干擾。
缺點
全局代理,不能分流,訪問匪區網站時等如繞了地球一圈,多用戶的時候難以防範不
良用戶,例如作為BT代理,hack其他服務器等等,如要限制有可能要設置複雜的規則
,限制用戶訪問的端口和下載的文件。
搭建麻煩,單是那一堆iptables規則足夠麻煩,使用固定端口,
點我看官方論壇討論
這被封鎖機會大增,現在是GFW無法檢測關鍵字,而且是商業上公司常用VPN,才
得以不死,據說GFW的IT狗已著手研究檢測IPSec VPN協議,以求檢測到流量特徵和
關鍵詞。
小弟第一次搭建時看了多篇中英文教學,搞了兩天才搭好,後來發現有人寫了一鍵
安裝腳本,第二個服務器干脆用人家的腳本好了,免頭痛
點我取得腳本
結論
一般我會在服務器搭建2種工具,shadowsocks-libev是主力,如果是用窮鬼級NAT VPS
,就配上自簽名證書+IP的SSL代理,因為搭建不了IPSec,端口不能改,獨立IP的正常
VPS,則選擇IPSec VPN 作為第二工具,以ss-libev和IPSec配搭,使用資源不多,一枚
openvz 128M/128 vswap 的vps已經足夠有餘,在iOS下會隨時遇到奇怪的shadowsocks
客戶端問題,這時較穩定的IPSec便會派上用場,對於使用iPhone的朋友,分享給他們
使用,客戶端不須要付款,不必下載,對於女性朋友,0技術更是恩物,只要截一張
設置的圖,她們就會使用。故此我是推薦搭建的選擇方案之一。
4) Cisco AnyConnect VPN
在iOS裝置上,未有shadowsocks客戶端出現前,幾乎是ifans的標配工具,目前還是有
效,未聞有大面積陣亡案例。
優點
以ocserv搭建,非常穩定,無論客戶端還是服務器,可以分流,在iDevice下載了 Cisco
Anyconnect 客戶端,可以使用證書連接,也可以用戶認證連接,或是兩者相加,不同
於IPSec,端口可以自定,可用域名+有效SSL證書搭建,商業上公司常用VPN協議,據
說是Cisco力推的VPN協議,混跡其中,GFW不敢亂封,我自己搭建了一枚,用域名加
Letsencrypt證書,以用戶認證登錄連接,端口設在443,客戶端也是多平台,由路由器
的vpnc客戶端到任何主流系統都能使用
缺點
搭建困難,須有一定技術,這也是花了我不少時間搭建的貨色(技術不好的原因),幸
好有好人寫好了一鍵安裝腳本,如果不想頭痛
點我免頭痛 ,第一次搭建時我自己手動
搭建,重灌系統後使用上面腳本搭建,並自行配上letsencrypt免費證書取代自簽名
證書。速度不是特別出眾,感覺上部署在同一服務器上的shadowsocks比它還快速。
結論
這也是推薦的輔助工具,在一個服務器上除shadowsocks外可考慮部署,可因應不同情
況使用,在一枚openvz vps 128M/128M vswap 運行它與shadowsocks,
在debian 7 x86下綽綽有餘,耗用資源不多
5) gfw.press大殺器
最新出品的工具,號稱除白名單外,再也不能破解的協議,開發者是推特趙國劣紳石
斑魚大爺
@chinashiyu ,其官網是
http://gfw.press ,這是他的
github代碼倉庫
優點
確實非常穩定,我搭建了一枚在cloudatcost,順便測試自己的腳本,有5位推友幫忙
測試,多天正常使用,直到服務器挂了前都沒有受到任何干擾,有測試用戶連續
使用10小時沒有斷線一次。
附上推友
@FWT_T_O_O的
源碼分析,後端自由配搭,相當靈活。
缺點
以Java編寫的程序,對VPS有一定要求,少於512M/512M vswap的openvz vps最好
不要嚐試,跑不動的機會極高。文檔不足不利第三方開發和搭建,
除
電腦系統客戶端外,移動系統只有
安卓客戶端,iOS用戶暫時無緣。
部署並不十分困難,由於它只是一條類似stunnel的加密隧道,搭建的麻煩在於
後端代理,如果是debian base 用戶,或者可以試試小弟編寫的
簡陋腳本安裝
結論
如果shadowsocks失效的話,小弟首選轉戰這個,再配搭HTTPS/SSL代理或
IPSec VPN在電腦上和iDevice使用,有較強勁VPS的朋友,
甚麼虛擬方式的VPS也可以試試搭建,如果有高手志願者以Python/C/C++等等
較少資源改寫,相信會火起來。
6) V2Ray
這也是較新的工具,也是新一代配上混淆流量,躲避GFW流量特徵檢測,並且兼容
shadowsocks協議的工具,部署它可除可使用V2Ray外,也可使用shadowsocks而無須
另外安裝
手冊在這裡 v2ray project官方github代碼倉庫
優點
這個我部署了一個在低階VPS上,後來因使用不常使用,且低階VPS跑起來吃力,就
把它刪除了,搭建非常簡單,在Linux VPS上以root執行以下命令就完事了
bash <(curl -L -s https://raw.githubusercontent.com/v2ray/v2ray-core/master/release/install-release.sh)
配置文件類似shadowsocks,如果有搭建ss服務器的朋友,很容易就會配置服務器文件,
算是無痛轉移,這個在搭建後測試期間相當穩定,也沒有受到任何干擾或失靈。
缺點
和gfw.press一樣,對於VPS要求較高,由於以golang編寫,官方建議一人使用VPS最少
128M RAM,更多用戶如此類推,2 vcore的VPS較能發揮速度優勢,客戶端暫時只有電
腦系統,在移動裝置只能使用兼容的shadowsocks
結論
同樣,如果shadowsocks失效,這也是我會轉戰的目標,配搭其他的工具,在電腦和移
動裝置使用,電腦上主力使用,移動裝置使用IPSec,AnyConnect或HTTPS/SSL代理,如
果網友的VPS夠強勁,建議搭建一枚,即可使用v2ray和shadowsocks兩件工具,
電腦和移動裝置都可使用
7) lightsword
以nodejs編寫的代理,客戶端支援電腦和iOS,iOS客戶端售8元港幣,
官方github代碼倉庫
優點
小弟在一枚256/512 vswap openvz vps搭建過,並購買了iOS客戶端測試,抱歉,完全
沒有發現有任何優勢,大概是shadowsock的nodejs改寫版本,客戶端並不兼容SS
缺點
以nodejs編寫的程序,和Java一樣,RAM Eater ,低階VPS相當不利,功能上沒有
出彩的特點,用於混淆流量的加密只支援aes-128/192/256-cfb , 而沒有較輕量的
chacha20和rc4-md5, 安卓沒有客戶端,iOS客戶端售價便宜,
本來是針對當時ios的ss客戶端Surge,後者達到天價的$99美元,但隨著
shadowrocket,A.Big.T只售8元港幣,這個優勢也沒有了,ios客戶端到我刪除之前,
就只支援全局代理。
服務器方面,以python shadowsock連系統70個連接只用3X RAM左右,但lightsword在
同一VPS相同條件下,已經使用80M以上記憶體,而且還不斷增加,其實以前也是有
shadowsocks nodejs版本,後來clowwindy停止開發,
原因 ,
nodejs官方解釋
服務器沒有UDP轉發,沒有一次性認證,沒有輕巧的加密方式,官方文檔不全,配置
描述文件在我刪除服務器前沒看見,我是把命令行參數寫到腳本使用,唯一是搭建不
難,官方有一鍵安裝腳本,自行搭建只要安裝了nodejs,以npm即可安裝。
結論
在沒有大改變之前,不建議搭建或使用。
8) shadowsocks-R
號稱根據shadowsocks弱點加以「改良」的版本,支援電腦客戶端和部份移動裝置,
這是官方github代碼倉庫
優點
沒有使用或搭建,說不出來
缺點
移動裝置客戶端支援不多,其他同上
結論
本人不會作出推薦或者不推薦的個人建議,作為用家未來也不會部署服務器或使用,
如果網友有興趣,自行往官網看手冊文檔,這裡給出shadowsocks和shadowsocks-R的
網絡事件和安裝腳本
关于ShadowsocksR和Shadowsocks的安全性
ShadowSocks协议的弱点分析和改进 #38
对GPL协议的违反 #28
ShadowsocksR一键安装脚本
最後,這裡並沒涵蓋所有工具,這些意見非常主觀,而小弟也非IT人,只是普通用家
的個人體會,錯誤和偏見是絕對的,不須要用來參考,當作是笑話閱讀最好,然後給
出「哦」一個字就可以了。
:)