前言
以前曾有一段日子旅居深圳,對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人,只是普通用家
的個人體會,錯誤和偏見是絕對的,不須要用來參考,當作是笑話閱讀最好,然後給
出「哦」一個字就可以了。
:)
2016年5月18日 星期三
2016年5月15日 星期日
shadowsock-libev一鍵安裝和升級腳本
安裝腳本 ss-libev-install.sh 用來安裝,是把文章Shadowsocks + TOR 一鍵安裝腳本
的shadowsocks分拆出來改寫,已測試,在nat share ipv4 vps或獨立ipv4的vps上安裝
成功。
使用方法
以root登錄VPS,執行
wget --no-check-certificate -O ss-libev-install.sh \
https://www.dropbox.com/s/mtare61xbd7brim/ss-libev-install.sh?dl=0
完成後,chmod +x ss-libev-install.sh ,根據你的VPS類型,如果是獨立IPv4的VPS,
執行
./ss-libev-install.sh -s
如果是窮鬼級NAT share IPv4 vps,就是只有20個指定端口轉發,共用IPv4的VPS,執行
./ss-libev-install.sh -n
源碼按這裡
shadowsocks-libev是用源碼編譯成deb安裝,原因是debian base os的源更新落後,
所以從github取得源碼編譯,這樣版本會是最新的,由於沒通過apt-get從軟件源
安裝,不會自動升級,這就寫了升級腳本 ss-libev-upgrade.sh
使用方法
以root登錄VPS,執行
wget --no-check-certificate -O ss-libev-upgrade.sh \
https://www.dropbox.com/s/2w23k175e1zm8mb/ss-libev-upgrade.sh?dl=0
完成後,chmod +x ss-libev-upgrade.sh && ./ss-libev-upgrade.sh
腳本會檢測現時版本是否最新,並自動執行更新程序,已測試,ss-libev 2.4.5成功
升級到2.4.6
源碼按這裡
:)
的shadowsocks分拆出來改寫,已測試,在nat share ipv4 vps或獨立ipv4的vps上安裝
成功。
使用方法
以root登錄VPS,執行
wget --no-check-certificate -O ss-libev-install.sh \
https://www.dropbox.com/s/mtare61xbd7brim/ss-libev-install.sh?dl=0
完成後,chmod +x ss-libev-install.sh ,根據你的VPS類型,如果是獨立IPv4的VPS,
執行
./ss-libev-install.sh -s
如果是窮鬼級NAT share IPv4 vps,就是只有20個指定端口轉發,共用IPv4的VPS,執行
./ss-libev-install.sh -n
源碼按這裡
shadowsocks-libev是用源碼編譯成deb安裝,原因是debian base os的源更新落後,
所以從github取得源碼編譯,這樣版本會是最新的,由於沒通過apt-get從軟件源
安裝,不會自動升級,這就寫了升級腳本 ss-libev-upgrade.sh
使用方法
以root登錄VPS,執行
wget --no-check-certificate -O ss-libev-upgrade.sh \
https://www.dropbox.com/s/2w23k175e1zm8mb/ss-libev-upgrade.sh?dl=0
完成後,chmod +x ss-libev-upgrade.sh && ./ss-libev-upgrade.sh
腳本會檢測現時版本是否最新,並自動執行更新程序,已測試,ss-libev 2.4.5成功
升級到2.4.6
源碼按這裡
:)
2016年5月9日 星期一
gfw.press安裝腳本(使用3proxy作後端代理)
gfw.press + tinyproxy 一鍵腳本發表後,有小部分網友使用安裝,
在腳本差不多完成時,會卡在./server.sh &這個代碼,使得用戶
按Ctrl-C中斷腳本運行,其實腳本已經安裝好了服務,是因為
gfw.press/server.sh使用nohup java ......XXX &,把stderr導向stdout
再寫入server.log,而在腳本執行變成了sub shell無法按Enter鍵繼續
執行餘下代碼。
由於gfw.press使用Java,一般VPS較少記憶體應付不了,根據項目
作者石斑魚大爺@chinashiyu 以為我們的VPS最少2GB記憶體
(高估網友和他一樣,錢多),server.sh腳本有java參數-Xmn1024M
-Xms1280M -Xmx1280M ,他說刪除就可以,反正還是低檔VPS
跑不起來,就不改之前的腳本,重新編寫,後端以3proxy作為
代理,也就比Tinyproxy花多一點點記憶體,但好處是多用戶可
以控制用戶訪問的端口,有效避免不良用戶通過代理進行非法
行為,如濫發郵件,端口掃描等等。
使用方法
以root登陸VPS,執行
wget -O gfw3proxy.sh --no-check-certificate \
https://www.dropbox.com/s/vuj2rpfpjlnkawu/gfw3proxy.sh?dl=0
然後輸入
chmod +x gfw3proxy.sh && ./gfw3proxy.sh
按這裡檢視原碼
這腳本不再支援NAT VPS,原因是基本跑不了,所以干脆連代碼
也省去,另外根據作者建議,腳本會把記憶體相關參數刪除,原
版未改動的server.sh會變為server.org,在gfw.press/ 目錄內,如果網
友的VPS夠強勁,可以用回原版的server.sh,在其目錄下輸入命令
mv -f server.org server.sh
這次腳本不再執行./server.sh ,而改為腳本完成後由用戶輸入,執行
gfw.press/server.sh
即可,這是因為避免運行腳本卡在這點上,也不清楚Java的標準
輸入/輸出是怎樣,把server.sh代碼抄到腳本內執行還是要用戶
按Enter鍵,那干脆由用戶輸入執行server.sh好了,執行後它還是不
會回到命令行介面,按一下Enter鍵即可。
3proxy會登記成為系統服務,如要停止運行輸入
/etc/init.d/3proxyinit stop
須要運行輸入
/etc/init.d/3proxyinit start
這個3proxyinit是沒有restart選項,如要停止再運行服務請執行上述
兩條命令。
3proxy的執行檔案和設置文件都在/usr/local/etc/3proxy/目錄內,如須
要更改設定在那裡編輯3proxy.cfg
3proxy設置用戶可訪問的端口為
80-88,8080-8088 #http
443,8443 #https
5222,5223,5228 # whatsapps,skype等等即時通訊語音服務器端口
465,587,995 # 電郵服務器端口 TLS AUTH
正常用戶應該足夠。
腳本預定一位使用者,要增加用戶,編輯gfw.press/user.txt ,格式是
端口【空格一個】密碼 ,每個描述一行,例如要增加為3個用戶
14401 xyz123MN
14402 XYZ456bc
14403 789lKpOH
這樣,編輯後儲存須要重啟gfw.press使其生效,假設沒有其他Java
程序在運行,在命令列輸入
kill $(ps aux | grep 'java' | grep -v grep | awk '{print $2}')
即可終止gfw.press運行,再次運行server.sh便可生效。
gfw.press的windows客戶端在這裡下載
這腳本在VMware VPS Debian 8 jessie x86_64通過測試,系統資訊如下
System Info
-----------
Processor : Intel(R) Xeon(R) CPU X7560 @ 2.27GHz
CPU Cores : 2
Frequency : 2261.000 MHz
Memory : 1000 MB
Swap : 1483 MB
Uptime : 10 min,
OS : Debian GNU/Linux 8
Arch : x86_64 (64 Bit)
Kernel : 3.16.0-4-amd64
Hostname : localhost
腳本以之前的debian 7 部署 gfw.press + 3proxy 輕鬆翻牆作為藍本編寫,
故此在Debian 7 x86/x86_64正常是可成功安裝,而Ubuntu 14.04/15.04
沒有測試,不過估計也可使用安裝,因為3proxy是編譯安裝的,軟件
源沒有,所以路徑問題應該不存在,Ubuntu的啟動服務和Debian相同,
正常也可使用,但不保證
Java是非常吃記憶體的,如果VPS的記憶體沒有512MB或以上,還是
建議放棄,跑不動的機會極高,當系統假死時可看server.log是否出現
記憶體不足的警告。
低檔VPS最好還是使用shadowsocks-libev或者stunnel+tinyproxy作為個
人梯子,這些可以在很少資源的系統上運行的
之前編寫的gfw.press+tinyproxy腳本請不要使用,有空會改寫一下避免
做成用戶誤會,這個腳本設有trap命令,如果用戶按Ctrl-C中斷腳本會
清理檔案和文件。
腳本須要安裝所需檔案,編譯原碼和更新系統,需時較久,請耐心等
待完成,完成後會給出客戶端所需資訊,記得手動輸入 gfw.press/server.sh
運行gfw.press
:)
在腳本差不多完成時,會卡在./server.sh &這個代碼,使得用戶
按Ctrl-C中斷腳本運行,其實腳本已經安裝好了服務,是因為
gfw.press/server.sh使用nohup java ......XXX &,把stderr導向stdout
再寫入server.log,而在腳本執行變成了sub shell無法按Enter鍵繼續
執行餘下代碼。
由於gfw.press使用Java,一般VPS較少記憶體應付不了,根據項目
作者石斑魚大爺@chinashiyu 以為我們的VPS最少2GB記憶體
(高估網友和他一樣,錢多),server.sh腳本有java參數-Xmn1024M
-Xms1280M -Xmx1280M ,他說刪除就可以,反正還是低檔VPS
跑不起來,就不改之前的腳本,重新編寫,後端以3proxy作為
代理,也就比Tinyproxy花多一點點記憶體,但好處是多用戶可
以控制用戶訪問的端口,有效避免不良用戶通過代理進行非法
行為,如濫發郵件,端口掃描等等。
使用方法
以root登陸VPS,執行
wget -O gfw3proxy.sh --no-check-certificate \
https://www.dropbox.com/s/vuj2rpfpjlnkawu/gfw3proxy.sh?dl=0
然後輸入
chmod +x gfw3proxy.sh && ./gfw3proxy.sh
按這裡檢視原碼
這腳本不再支援NAT VPS,原因是基本跑不了,所以干脆連代碼
也省去,另外根據作者建議,腳本會把記憶體相關參數刪除,原
版未改動的server.sh會變為server.org,在gfw.press/ 目錄內,如果網
友的VPS夠強勁,可以用回原版的server.sh,在其目錄下輸入命令
mv -f server.org server.sh
這次腳本不再執行./server.sh ,而改為腳本完成後由用戶輸入,執行
gfw.press/server.sh
即可,這是因為避免運行腳本卡在這點上,也不清楚Java的標準
輸入/輸出是怎樣,把server.sh代碼抄到腳本內執行還是要用戶
按Enter鍵,那干脆由用戶輸入執行server.sh好了,執行後它還是不
會回到命令行介面,按一下Enter鍵即可。
3proxy會登記成為系統服務,如要停止運行輸入
/etc/init.d/3proxyinit stop
須要運行輸入
/etc/init.d/3proxyinit start
這個3proxyinit是沒有restart選項,如要停止再運行服務請執行上述
兩條命令。
3proxy的執行檔案和設置文件都在/usr/local/etc/3proxy/目錄內,如須
要更改設定在那裡編輯3proxy.cfg
3proxy設置用戶可訪問的端口為
80-88,8080-8088 #http
443,8443 #https
5222,5223,5228 # whatsapps,skype等等即時通訊語音服務器端口
465,587,995 # 電郵服務器端口 TLS AUTH
正常用戶應該足夠。
腳本預定一位使用者,要增加用戶,編輯gfw.press/user.txt ,格式是
端口【空格一個】密碼 ,每個描述一行,例如要增加為3個用戶
14401 xyz123MN
14402 XYZ456bc
14403 789lKpOH
這樣,編輯後儲存須要重啟gfw.press使其生效,假設沒有其他Java
程序在運行,在命令列輸入
kill $(ps aux | grep 'java' | grep -v grep | awk '{print $2}')
即可終止gfw.press運行,再次運行server.sh便可生效。
gfw.press的windows客戶端在這裡下載
這腳本在VMware VPS Debian 8 jessie x86_64通過測試,系統資訊如下
System Info
-----------
Processor : Intel(R) Xeon(R) CPU X7560 @ 2.27GHz
CPU Cores : 2
Frequency : 2261.000 MHz
Memory : 1000 MB
Swap : 1483 MB
Uptime : 10 min,
OS : Debian GNU/Linux 8
Arch : x86_64 (64 Bit)
Kernel : 3.16.0-4-amd64
Hostname : localhost
腳本以之前的debian 7 部署 gfw.press + 3proxy 輕鬆翻牆作為藍本編寫,
故此在Debian 7 x86/x86_64正常是可成功安裝,而Ubuntu 14.04/15.04
沒有測試,不過估計也可使用安裝,因為3proxy是編譯安裝的,軟件
源沒有,所以路徑問題應該不存在,Ubuntu的啟動服務和Debian相同,
正常也可使用,但不保證
Java是非常吃記憶體的,如果VPS的記憶體沒有512MB或以上,還是
建議放棄,跑不動的機會極高,當系統假死時可看server.log是否出現
記憶體不足的警告。
低檔VPS最好還是使用shadowsocks-libev或者stunnel+tinyproxy作為個
人梯子,這些可以在很少資源的系統上運行的
之前編寫的gfw.press+tinyproxy腳本請不要使用,有空會改寫一下避免
做成用戶誤會,這個腳本設有trap命令,如果用戶按Ctrl-C中斷腳本會
清理檔案和文件。
腳本須要安裝所需檔案,編譯原碼和更新系統,需時較久,請耐心等
待完成,完成後會給出客戶端所需資訊,記得手動輸入 gfw.press/server.sh
運行gfw.press
:)
2016年5月5日 星期四
遠程控制Shadowsocks流量是否經洋蔥路由(TOR)
上兩篇文章已經寫出安裝Shadowsocks + TOR的步驟,並給出
一個一鍵安裝腳本,相信有興趣的朋友已經部署了。
但是想要開關是否經過洋蔥路由,每次都要登錄VPS,然後
cd /root/toriptables2 , ./toriptables2.py -l 把shadowsocks流量導向
TOR,不使用時,只使用shadowsocks又要輸入 ./toriptables2.py -f
, 似乎相當麻煩,於是就想了一些辦法,可在手機或電腦遙控
開關。
電腦上(Ubuntu Linux為例)
要執行遠端VPS命令,通過ssh就可以,不過要使用GUI腳本,
我們使用密鑰登錄方便一些,步驟如下
1) 在本地的Ubuntu Linux生成密鑰,執行
ssh-keygen -t rsa
注意: gen 時會問 Enter passphrase (empty for no passphrase): #
此處直接 enter 跳過,下次才不會詢問password
2) 以root登陸vps,執行
mkdir ~/.ssh
3) 在本地Linux執行
scp -P 22 .ssh/id_rsa.pub root@vps_server:~/.ssh
如果VPS端口不是22改回正確端口,vps_server改回正確的IP
4) 在VPS上執行
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
以後登錄這個VPS都不須要輸入密碼
5) 在本地Linux下載ss-tor-menu.sh , 執行
wget -O ss-tor-menu.sh --no-check-certificate \
https://www.dropbox.com/s/033ld1qwi86iq02/ss-tor-menu.sh?dl=0
這是源碼
這腳本依賴zenity這個圖形外框,請先確定系統有沒有安裝,執行
which zenity , 如果沒有輸出表示未安裝,我們先安裝它到系統,
sudo apt-get install zenity
6) 用文本編輯器打開腳本,例如gedit, vim, nano或其他你喜愛的,找到
host="My_VPS" # change to your vps IP or hostname
改為你的VPS IP或域名
rport=22 # change to vps sshd's port if not 22
如果VPS登錄ssh的端口不是22改回正確的
儲存離開編輯器。
7) 執行chmod +x ss-tor-menu.sh ,然後把它放到桌面,如圖
8) 雙擊腳本圖標,會出現這個選單
9) 遠端VPS執行命令 /root/toriptables2/toriptables2.py -l ,完成後會出現
10) 停止使用TOR後端
11) 完成後會如此
這就可不須要輸入命令決定是否通過洋蔥路由訪問互聯網,相當方便的 :)
在手機上,以iPhone爲例,登錄App Store 搜關鍵字"SSH Remote" , 然後下載
按"+"鍵新增命令,輸入按鈕名字,遠端VPS的免令輸入如下:
/root/toriptables2/toriptables2.py -l
其他的都是VPS的資訊,完成後儲存,如圖,這列是開啟TOR導入流量
接著加入不使用洋蔥路由的按鈕,遠端命令輸入如下:
/root/toriptables2/toriptables2.py -f
其他和上述一樣,只是關閉導向的名字不同,如圖
最後儲存變更,回到主頁,如圖
基本就是在手機按鍵開關,因為iOS的app無法像電腦一樣能檢測遠方
VPS命令完成後的返回狀態,所以是沒有對話框出現的,通常等10秒
左右就生效了
其他如安卓手機也有類似的app,請自行在Play Store搜索一下,設定
和iOS都是相同的,這裡就不囉嗦了。
一個一鍵安裝腳本,相信有興趣的朋友已經部署了。
但是想要開關是否經過洋蔥路由,每次都要登錄VPS,然後
cd /root/toriptables2 , ./toriptables2.py -l 把shadowsocks流量導向
TOR,不使用時,只使用shadowsocks又要輸入 ./toriptables2.py -f
, 似乎相當麻煩,於是就想了一些辦法,可在手機或電腦遙控
開關。
電腦上(Ubuntu Linux為例)
要執行遠端VPS命令,通過ssh就可以,不過要使用GUI腳本,
我們使用密鑰登錄方便一些,步驟如下
1) 在本地的Ubuntu Linux生成密鑰,執行
ssh-keygen -t rsa
注意: gen 時會問 Enter passphrase (empty for no passphrase): #
此處直接 enter 跳過,下次才不會詢問password
2) 以root登陸vps,執行
mkdir ~/.ssh
3) 在本地Linux執行
scp -P 22 .ssh/id_rsa.pub root@vps_server:~/.ssh
如果VPS端口不是22改回正確端口,vps_server改回正確的IP
4) 在VPS上執行
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
以後登錄這個VPS都不須要輸入密碼
5) 在本地Linux下載ss-tor-menu.sh , 執行
wget -O ss-tor-menu.sh --no-check-certificate \
https://www.dropbox.com/s/033ld1qwi86iq02/ss-tor-menu.sh?dl=0
這是源碼
這腳本依賴zenity這個圖形外框,請先確定系統有沒有安裝,執行
which zenity , 如果沒有輸出表示未安裝,我們先安裝它到系統,
sudo apt-get install zenity
6) 用文本編輯器打開腳本,例如gedit, vim, nano或其他你喜愛的,找到
host="My_VPS" # change to your vps IP or hostname
改為你的VPS IP或域名
rport=22 # change to vps sshd's port if not 22
如果VPS登錄ssh的端口不是22改回正確的
儲存離開編輯器。
7) 執行chmod +x ss-tor-menu.sh ,然後把它放到桌面,如圖
8) 雙擊腳本圖標,會出現這個選單
9) 遠端VPS執行命令 /root/toriptables2/toriptables2.py -l ,完成後會出現
10) 停止使用TOR後端
11) 完成後會如此
這就可不須要輸入命令決定是否通過洋蔥路由訪問互聯網,相當方便的 :)
在手機上,以iPhone爲例,登錄App Store 搜關鍵字"SSH Remote" , 然後下載
按"+"鍵新增命令,輸入按鈕名字,遠端VPS的免令輸入如下:
/root/toriptables2/toriptables2.py -l
其他的都是VPS的資訊,完成後儲存,如圖,這列是開啟TOR導入流量
接著加入不使用洋蔥路由的按鈕,遠端命令輸入如下:
/root/toriptables2/toriptables2.py -f
其他和上述一樣,只是關閉導向的名字不同,如圖
最後儲存變更,回到主頁,如圖
基本就是在手機按鍵開關,因為iOS的app無法像電腦一樣能檢測遠方
VPS命令完成後的返回狀態,所以是沒有對話框出現的,通常等10秒
左右就生效了
其他如安卓手機也有類似的app,請自行在Play Store搜索一下,設定
和iOS都是相同的,這裡就不囉嗦了。
2016年5月3日 星期二
Shadowsocks + TOR 一鍵安裝腳本
這個腳本會安裝shadowsocks-libev和tor,並會設置把shadowsocks的流量,
包括DNS查詢都會通過洋蔥網絡,設有開關,只要在toriptables2.py目錄裏
執行./toriptables2.py -f ,那shadowsocks的流量會不經tor訪問互聯網,
簡單的說,只用ss就是一層代理,加上tor便是多重代理。
好處:
眾所周知,shadowsocks設計理念不是為了安全和匿名,而是設計用來翻牆,所
用的加密通訊主要是為了混淆流量,而tor的設為是為了安全和匿名,翻牆只是它
的副作用,這個好方法既能騙過GFW,也可使用tor的多重代理使匿名性更好,適
合人權活動,記者,爆料者,匿名舉報,訪問敏感文件和需要使用深網(deepweb)
的服務,例如 https://facebookcorewwwi.onion 這是facebook在深網
的官網,不通過tor無法使用
壞處:
因為經過tor,速度便會減慢,這是由tor的設計決定,在腳本裏已設定較多的亞洲
出口節點,希望能提高一些速度,另外就是使用Cloudflare加速,google,
4chan.org等等很多的網站需要你証明自己不是機械人,輸入驗證碼之類
使用腳本:
以root登錄vps,執行以下命令
wget --no-check-certificate -O ss-tor.sh \
https://www.dropbox.com/s/huhdz7qspesmalt/ss-tor.sh?dl=0
chmod +x ss-tor.sh
如果是openvz nat vps,執行
./ss-tor.sh -n
正常獨立IP的openvz vps,執行
./ss-tor.sh -s
這腳本在debian 7.0 x86-minimal,debian 8 x86_64-minimal,
ubuntu 14.04 x86-minimal LTS和ubuntu 15.04-minimal x86_64
通過測試,這是源碼
腳本預設一個用戶,並開啟tor作為後端訪問互聯網,因為
使用shadowsocks-libev源碼編譯,和tor第一次運行需要取得
足夠資訊建立鏈路,所以比較花時間,請耐心等候,不要按
Control-C中斷腳本運行
雜項
這次沒有跟從tor官網修改/etc/resolv.conf,原因是toriptables2.py
會強制把所有流量包括DNS的UDP都導向tor,那就無須再修改,
腳本沒有相關代碼。
得力於他人的腳本,複雜的iptables規則已經幫助我們寫好了,
省卻很多工序,而且開關容易。
匿名乃系統工程,並非有了這個東西就不一定追蹤到你,還
需要更多配合,例如browser不能有flash,java,js腳本的網站在
安全情況可臨時允許,安裝noscript,https everywhere插件,每
次訪問網站後不能留下任何歷史和cookies等等等等。
個人方面,不要使用常用網名登記,使用即用即棄的電郵,
手機sim卡是預付卡不需要登記個人資料,手機使用山寨的
便宜手機,它在支國很多IMEI都是假的,隨時可棄,GPS
關閉等等。
這只是隨便列出基本方針,如要更好匿名匿蹤,請試用google
查詢
:)
包括DNS查詢都會通過洋蔥網絡,設有開關,只要在toriptables2.py目錄裏
執行./toriptables2.py -f ,那shadowsocks的流量會不經tor訪問互聯網,
簡單的說,只用ss就是一層代理,加上tor便是多重代理。
好處:
眾所周知,shadowsocks設計理念不是為了安全和匿名,而是設計用來翻牆,所
用的加密通訊主要是為了混淆流量,而tor的設為是為了安全和匿名,翻牆只是它
的副作用,這個好方法既能騙過GFW,也可使用tor的多重代理使匿名性更好,適
合人權活動,記者,爆料者,匿名舉報,訪問敏感文件和需要使用深網(deepweb)
的服務,例如 https://facebookcorewwwi.onion 這是facebook在深網
的官網,不通過tor無法使用
壞處:
因為經過tor,速度便會減慢,這是由tor的設計決定,在腳本裏已設定較多的亞洲
出口節點,希望能提高一些速度,另外就是使用Cloudflare加速,google,
4chan.org等等很多的網站需要你証明自己不是機械人,輸入驗證碼之類
使用腳本:
以root登錄vps,執行以下命令
wget --no-check-certificate -O ss-tor.sh \
https://www.dropbox.com/s/huhdz7qspesmalt/ss-tor.sh?dl=0
chmod +x ss-tor.sh
如果是openvz nat vps,執行
./ss-tor.sh -n
正常獨立IP的openvz vps,執行
./ss-tor.sh -s
這腳本在debian 7.0 x86-minimal,debian 8 x86_64-minimal,
ubuntu 14.04 x86-minimal LTS和ubuntu 15.04-minimal x86_64
通過測試,這是源碼
腳本預設一個用戶,並開啟tor作為後端訪問互聯網,因為
使用shadowsocks-libev源碼編譯,和tor第一次運行需要取得
足夠資訊建立鏈路,所以比較花時間,請耐心等候,不要按
Control-C中斷腳本運行
雜項
這次沒有跟從tor官網修改/etc/resolv.conf,原因是toriptables2.py
會強制把所有流量包括DNS的UDP都導向tor,那就無須再修改,
腳本沒有相關代碼。
得力於他人的腳本,複雜的iptables規則已經幫助我們寫好了,
省卻很多工序,而且開關容易。
匿名乃系統工程,並非有了這個東西就不一定追蹤到你,還
需要更多配合,例如browser不能有flash,java,js腳本的網站在
安全情況可臨時允許,安裝noscript,https everywhere插件,每
次訪問網站後不能留下任何歷史和cookies等等等等。
個人方面,不要使用常用網名登記,使用即用即棄的電郵,
手機sim卡是預付卡不需要登記個人資料,手機使用山寨的
便宜手機,它在支國很多IMEI都是假的,隨時可棄,GPS
關閉等等。
這只是隨便列出基本方針,如要更好匿名匿蹤,請試用google
查詢
:)
2016年4月30日 星期六
shadowscoks流量走TOR洋蔥網絡訪問互聯網
前言
一向對 TOR 的匿名性甚為推崇,以前旅居匪區,
靠著它訪問自由的互聯網,匿名度也高,近年GFW
對 TOR 大力封鎖,網橋連接也失效,只能使用
obsfproxy的網橋,或者用meek中繼連接洋蔥網絡,
但取得obfsproxy網橋要通過郵件,且非常稀少,
後者使用大型云端服務器,利用混跡於商業公司
的流量, 使GFW不敢封鎖,因怕誤傷,但難保某
一天照樣封殺,於是想到利用shadowsock,通過
iptales規則把流量導向 TOR ,這應該是一個方法。
安裝
系統為ubuntu 14.04 x86-minimal LTS,vps為128/128 vswap nat vps
步驟如是,以root登錄vps
1) 編輯 /etc/apt/sources.list,加入
deb http://deb.torproject.org/torproject.org trusty main
deb-src http://deb.torproject.org/torproject.org trusty main
每句一行,儲存離開
2) 執行以下命令
gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
apt-get update && apt-get upgrade -y
apt-get install tor deb.torproject.org-keyring
這樣就安裝好了tor,它會以Deamon運行,其實Ubuntu 14.04的軟件源也有,
只是版本較舊,為免有漏洞之類,建議從官網軟件源安裝
3) 編輯tor的設置文件 /etc/tor/torrc ,在最底加入
ClientOnly 0
StrictNodes 1
ExcludeNodes {hk},{cn},{mo},{ru}
ExitNodes {us},{jp},{sg},{kp},{gb},{nz},{au},{tw}
這四行參數,第一行是設置為客戶端,這個可有可無,默認設定也是
第二行是作為TOR運行排除節點的參數,TOR會根據排除節點設定網路
第三行是設定要排除的節點,這裡是香港,支國,澳門和俄羅斯。
第四行是設置出口,這裡除英美外,都是亞洲出口節點,希望速度提高
4) 下載shadowsocks-libev編譯
安裝git , apt-get install git ,然後執行
git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
apt-get install build-essential autoconf libtool libssl-dev \
gawk debhelper dh-systemd init-system-helpers pkg-config
dpkg-buildpackage -us -uc -i
cd ..
sudo dpkg -i shadowsocks-libev*.deb
這就安裝好了shadowsocks-libev,但還需要編輯 /etc/shadowsocks-libev/config.json
{
"server":"127.0.0.1",
"server_port":8388,
"local_port":1080,
"password":"foobar!",
"timeout":60,
"method":null
}
改動password那列,可用命令隨機產生一個比較難破解的密碼,執行
head -c 512 /dev/urandom | md5sum | base64 | cut -c3-18
或者不喜歡0oO這些較易混淆的字母,可以
openssl rand -base64 32 | tr -d '+/0oO' | cut -c3-18
timeout把60改為300,method由null改為"aes-128-cfb" ,有雙引號的,
而服務器端口則隨便,nat vps則要指向分配給你的20個端口之一,修改後的例子
{
"server":"0.0.0.0",
"server_port":14701,
"local_port":1080,
"password":"XVLcvDFIpaRjdHzG",
"timeout":300,
"method":"aes-128-cfb"
}
存檔後執行 /etc/init.d/shadowsocks-libev restart
一向對 TOR 的匿名性甚為推崇,以前旅居匪區,
靠著它訪問自由的互聯網,匿名度也高,近年GFW
對 TOR 大力封鎖,網橋連接也失效,只能使用
obsfproxy的網橋,或者用meek中繼連接洋蔥網絡,
但取得obfsproxy網橋要通過郵件,且非常稀少,
後者使用大型云端服務器,利用混跡於商業公司
的流量, 使GFW不敢封鎖,因怕誤傷,但難保某
一天照樣封殺,於是想到利用shadowsock,通過
iptales規則把流量導向 TOR ,這應該是一個方法。
安裝
系統為ubuntu 14.04 x86-minimal LTS,vps為128/128 vswap nat vps
步驟如是,以root登錄vps
1) 編輯 /etc/apt/sources.list,加入
deb http://deb.torproject.org/torproject.org trusty main
deb-src http://deb.torproject.org/torproject.org trusty main
每句一行,儲存離開
2) 執行以下命令
gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
apt-get update && apt-get upgrade -y
apt-get install tor deb.torproject.org-keyring
這樣就安裝好了tor,它會以Deamon運行,其實Ubuntu 14.04的軟件源也有,
只是版本較舊,為免有漏洞之類,建議從官網軟件源安裝
3) 編輯tor的設置文件 /etc/tor/torrc ,在最底加入
ClientOnly 0
StrictNodes 1
ExcludeNodes {hk},{cn},{mo},{ru}
ExitNodes {us},{jp},{sg},{kp},{gb},{nz},{au},{tw}
這四行參數,第一行是設置為客戶端,這個可有可無,默認設定也是
第二行是作為TOR運行排除節點的參數,TOR會根據排除節點設定網路
第三行是設定要排除的節點,這裡是香港,支國,澳門和俄羅斯。
第四行是設置出口,這裡除英美外,都是亞洲出口節點,希望速度提高
4) 下載shadowsocks-libev編譯
安裝git , apt-get install git ,然後執行
git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
apt-get install build-essential autoconf libtool libssl-dev \
gawk debhelper dh-systemd init-system-helpers pkg-config
dpkg-buildpackage -us -uc -i
cd ..
sudo dpkg -i shadowsocks-libev*.deb
這就安裝好了shadowsocks-libev,但還需要編輯 /etc/shadowsocks-libev/config.json
{
"server":"127.0.0.1",
"server_port":8388,
"local_port":1080,
"password":"foobar!",
"timeout":60,
"method":null
}
改動password那列,可用命令隨機產生一個比較難破解的密碼,執行
head -c 512 /dev/urandom | md5sum | base64 | cut -c3-18
或者不喜歡0oO這些較易混淆的字母,可以
openssl rand -base64 32 | tr -d '+/0oO' | cut -c3-18
timeout把60改為300,method由null改為"aes-128-cfb" ,有雙引號的,
而服務器端口則隨便,nat vps則要指向分配給你的20個端口之一,修改後的例子
{
"server":"0.0.0.0",
"server_port":14701,
"local_port":1080,
"password":"XVLcvDFIpaRjdHzG",
"timeout":300,
"method":"aes-128-cfb"
}
存檔後執行 /etc/init.d/shadowsocks-libev restart
5) 先取得vps對外的IP,方便設置shadowsocks客戶端,免得通過TOR網絡時IP不對
wget -qO - v4.ifconfig.co
下載腳本設置iptables規則,該腳本以python編寫,檢查系統是否
有python2.7,沒有先安裝上,通過 apt-get install python,然後
git clone https://github.com/ruped24/toriptables2.git
然後編輯 /etc/resolv.conf ,改成
nameserver 127.0.0.1
#nameserver 8.8.8.8
#nameserver 8.8.4.4
存檔離開編輯器,接著執行
cd toriptables2
./toriptables2.py -l
這個腳本會設置好iptables規則,並會在torrc加入相關參數,當明令成功時會出現
[+] Anonymizer status [ON]
[*] Getting public IP, please wait ...
[+] Your IP is 199.68.196.124
這就表明成功設置好tor,流量都經洋蔥網絡連出去,如要停止,輸入
./toriptables2.py -f ,就會把所有規則清洗,畫面會如是
[!] Anonymizer status [OFF]
記得編輯/etc/resolv.conf ,改回使用8.8.8.8,這樣shadowsocks
就不走洋蔥網絡
6) 設置客戶端就不多說了,在任何ss客戶端都正常使用,ios本來不越獄無法使用tor,
或者需要tor browser的app才能使用,現在只需要A.Big.T或者shadowrocket
也可使用洋蔥網路匿名上網
:)
2016年4月24日 星期日
gfw.press另一翻牆組合,配搭tinyproxy (咐上一鍵安裝腳本)
在上一篇文裡寫了在Debian 7.0 x86安裝gfw.proxy+3proxy翻牆組合
得到回響是認為設置過份複雜,不利推廣搭建此一全新利器,而事實上複雜
度不是在於gfw.press,而是3proxy功能繁多,設置文件就一定是麻煩點,
這已是最少設定了 :(
不過好在gfw.press只是一條加密隧道,本身不具備代理功能,如同stunnel
必須要配合其他代理程式才能翻牆,後端代理只要支援CONNECT方式即可配搭,
而tinyproxy正是很好的選擇,設置簡單且體積輕盈,耗用系統資源很少,
而且在Debian 7.0軟件源已有編譯的執行文件,無須像3proxy要自行編譯
安裝tinyproxy的流程在第一篇文已寫,這裡只簡單說說安裝流程,以下為
Debian 7.0 x86系統,128/128 vswap nat vps
1) apt-get install tinyproxy
2) 編輯 /etc/tinyproxy.conf , 找到
Port 8888
改為
Port 3128
因為gfw.press預設使用這端口,需要監聽這個端口,然後再找到
#Listen 192.168.0.1 在其下加入
Listen 127.0.0.1
儲存檔案離開,其他更多的提高效率設置請參考較早前的文章,這裡不再囉嗦
gfw.press的取得方式和設置方法請看上一篇文章,這裡也不再說,相同的
為了簡化安裝過程,已編寫了一個簡單腳本,這腳本在以下系統成功安裝
Debian 7.0 x86 minimal
Debian 7.6 x86_64
Ubuntu 14.04 x86 TLS minimal
Ubuntu 14.04 x86_64 minimal
而腳本未能成功安裝的是
Debian 8.0 x86_64
Ubuntu 15.04 x86_64
原因不明,如果是這兩個OS或者手動安裝,較為容易找出問題
使用方法,複製以上文字,存檔為Unix/Linux文件格式,windows下最好使用
Notepad++複製,上傳到vps /root目錄下即可,或者也可在我的網盤下載:
https://www.dropbox.com/s/k468ywju55fstyx/gfwpress.sh?dl=0
以root登陸vps,然後執行chmod +x gfwpress.sh, 這個腳本有2個選項
-n 是安裝在OpenVZ NAT IPv4 share vps,俗稱窮鬼級vps(我就是顧客)
-s 是安裝在OpenVZ 正常固定IPv4 vps
例如: ./gfwpress.sh -s 這樣
因為gfw.press是Java編寫的程序,非常吃記憶體,最好有512M或以上的
記憶體VPS,否則只能像我一樣,安裝來測試了 :(
在128M/128vSwap的32bit系統下,安裝好後使用一端口一用戶,起動30M
然後跑了數個網頁,再到youtube看一段6分鐘視頻,實體ram使用了123M,
vSwap 用了78M,基本上系統變慢了,最初是速度飛快的,總之ram多就好,
不然發揮不出威力的
:)
得到回響是認為設置過份複雜,不利推廣搭建此一全新利器,而事實上複雜
度不是在於gfw.press,而是3proxy功能繁多,設置文件就一定是麻煩點,
這已是最少設定了 :(
不過好在gfw.press只是一條加密隧道,本身不具備代理功能,如同stunnel
必須要配合其他代理程式才能翻牆,後端代理只要支援CONNECT方式即可配搭,
而tinyproxy正是很好的選擇,設置簡單且體積輕盈,耗用系統資源很少,
而且在Debian 7.0軟件源已有編譯的執行文件,無須像3proxy要自行編譯
安裝tinyproxy的流程在第一篇文已寫,這裡只簡單說說安裝流程,以下為
Debian 7.0 x86系統,128/128 vswap nat vps
1) apt-get install tinyproxy
2) 編輯 /etc/tinyproxy.conf , 找到
Port 8888
改為
Port 3128
因為gfw.press預設使用這端口,需要監聽這個端口,然後再找到
#Listen 192.168.0.1 在其下加入
Listen 127.0.0.1
儲存檔案離開,其他更多的提高效率設置請參考較早前的文章,這裡不再囉嗦
gfw.press的取得方式和設置方法請看上一篇文章,這裡也不再說,相同的
為了簡化安裝過程,已編寫了一個簡單腳本,這腳本在以下系統成功安裝
Debian 7.0 x86 minimal
Debian 7.6 x86_64
Ubuntu 14.04 x86 TLS minimal
Ubuntu 14.04 x86_64 minimal
而腳本未能成功安裝的是
Debian 8.0 x86_64
Ubuntu 15.04 x86_64
原因不明,如果是這兩個OS或者手動安裝,較為容易找出問題
--------begin gfwpress.sh--------------------------------------------------
#! /bin/bash
# $PROG gfwpress.sh
# Author twfcc@twitter
# Discription: One Key install gfw.press
# gfw.press official site: https://github.com/chinashiyu/gfw.press
# Public domain use as your own risk!
#
msg1="Usage: $0 {-n|-s}"
msg2="-n means install on openvz nat ipv4 share vps"
msg3="-s means install on openvz standard vps"
[ $UID -ne 0 ] && {
echo "Execute this script must be root." >&2 ;
exit 1 ;
}
case "$1" in
-n) flag=0 ;;
-s) flag=1 ;;
*) echo "$msg1" >&2 ;
echo "$msg2" >&2 ;
echo "$msg3" >&2 ;
exit 1
;;
esac
apt-get update && apt-get upgrade -y
apt-get install openssl curl openjdk-7-jre git tinyproxy -y
wait
myip=$(curl -s v4.ifconfig.co)
pw=$(openssl rand -base64 32 | tr -d '+/0oO=' | cut -c3-18)
i=0
j=1
upper=0
lower=0
digit=0
count=${#pw}
while true ; do
c=${pw:$i:1}
[[ $c =~ [A-Z] ]] && ((upper++))
[[ $c =~ [a-z] ]] && ((lower++))
[[ $c =~ [0-9] ]] && ((digit++))
if (($upper > 0)) && (($lower > 0)) && (($digit > 0))
then
break
fi
((i++))
((j++))
if ((j == count)) ; then
unset pw i j upper lower digit
i=0
j=1
upper=0
lower=0
digit=0
pw=$(openssl rand -base64 32 | tr -d '/+0oO' |cut -c3-18)
count=${#pw}
fi
done
git clone https://github.com/chinashiyu/gfw.press.git
i=0
j=1
upper=0
lower=0
digit=0
count=${#pw}
while true ; do
c=${pw:$i:1}
[[ $c =~ [A-Z] ]] && ((upper++))
[[ $c =~ [a-z] ]] && ((lower++))
[[ $c =~ [0-9] ]] && ((digit++))
if (($upper > 0)) && (($lower > 0)) && (($digit > 0))
then
break
fi
((i++))
((j++))
if ((j == count)) ; then
unset pw i j upper lower digit
i=0
j=1
upper=0
lower=0
digit=0
pw=$(openssl rand -base64 32 | tr -d '/+0oO' |cut -c3-18)
count=${#pw}
fi
done
if [ $flag -eq 0 ] ; then
internal_ip=$(ifconfig venet0:0 \
| awk -F: '$2 ~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/{print $2}' \
| cut -d" " -f1)
port=$(echo -e ${internal_ip##*.})20
else
pick=($(for i in {19901..19999} ;do echo $i ;done))
count=${#pick[@]}
port=${pick[$((RANDOM%count-1))]}
fi
winclient="http://gfw.press/GFW.Press.msi"
tinyconf="/etc/tinyproxy.conf"
mv -f "$tinyconf" "$tinyconf".bak
sed -e 's/^Port 8888$/Port 3128/' \
-e 's/#Listen 192.168.0.1/Listen 127.0.0.1/' $tinyconf.bak > $tinyconf
service tinyproxy restart
wait
[ -d gfw.press ] && cd gfw.press || {
echo "gfw.press is not exist." >&2 ;
exit 1 ;
}
echo "$port $pw" > user.txt
chmod +x server.sh
./server.sh
wait
if netstat -nlp | grep -q 'tinyproxy' ; then
echo "ALL done,enjoy."
echo "IP: $myip"
echo "Port: $port"
echo "password: $pw"
echo
echo "Download Windows client from $winclient"
else
echo "Failed to install gfw.press" >&2
exit 1
fi
exit 0
---------------end of gfwpress.sh--------------------------------
使用方法,複製以上文字,存檔為Unix/Linux文件格式,windows下最好使用
Notepad++複製,上傳到vps /root目錄下即可,或者也可在我的網盤下載:
https://www.dropbox.com/s/k468ywju55fstyx/gfwpress.sh?dl=0
以root登陸vps,然後執行chmod +x gfwpress.sh, 這個腳本有2個選項
-n 是安裝在OpenVZ NAT IPv4 share vps,俗稱窮鬼級vps(我就是顧客)
-s 是安裝在OpenVZ 正常固定IPv4 vps
例如: ./gfwpress.sh -s 這樣
因為gfw.press是Java編寫的程序,非常吃記憶體,最好有512M或以上的
記憶體VPS,否則只能像我一樣,安裝來測試了 :(
在128M/128vSwap的32bit系統下,安裝好後使用一端口一用戶,起動30M
然後跑了數個網頁,再到youtube看一段6分鐘視頻,實體ram使用了123M,
vSwap 用了78M,基本上系統變慢了,最初是速度飛快的,總之ram多就好,
不然發揮不出威力的
:)
訂閱:
文章 (Atom)






