目前 shadowsocks 服務已經受到了影響,不過部署在 25 端口目前還可用。
仍然可以通過 ubuntu 的 apt-get 獲取到 shadowsocks 服務端,windows、Mac OS X、Android 客戶端的 release 下載鏈接仍然保留。因此在寫作本文時,shadowsocks 還是可以使用的。
shadowsocks 是一款自定義協議的代理軟件,由於其流量特征不明顯,(直到不久前)一直可以穩定提供上網代理。
shadowsocks 客戶端會在本地開啟一個 socks5 代理,通過此代理的網絡訪問請求由客戶端發送至服務端,服務端發出請求,收到響應數據後再發回客戶端。
因此使用 shadowsocks 需要一台牆外的服務器來部署 shadowsocks 服務端。
主流的 VPS(虛擬主機)服務器提供商有三家:
下面的比上面的便宜。如果只是自用,bandwagon 足夠。
一般使用 paypal 綁定一個 visa 或 mastercard 信用卡來付款。注意要用國際 paypal 帳號,國內的是不能用外幣付款的。
在 bandwagon 購買 VPS 以後會獲得一個主機地址和用於 ssh 登錄的 root 密碼。
MacOSX或 Linux 下直接在終端中sshroot@your_vps_ip-pyour_ssh_port 即可。
在 windows 系統下需要專門的客戶端來 SSH 登錄 VPS。在xShell 官網下載 xShell。
家庭和學校用戶可以免費試用,下載時選擇 homeandschooluse 即可。需要用郵箱注冊一下,下載鏈接會發送到郵箱中。
xShell 中新建一個連接,會要求輸入目標 IP 地址和端口,以及 root 密碼,按提示操作即可。
打開 shell,使用 VPS 服務商提供的 root 用戶和密碼 SSH 登錄 VPS。然後執行如下命令:
apt-getinstallpython-pippipinstallshadowsocks
yum install python-setuptools && easy_install pippip install shadowsocks
shadowsocks 就安裝好了。
有時 Ubuntu 會遇到第一個命令安裝 python-pip 時找不到包的情況。pip 官方給出了一個安裝腳本,可以自動安裝 pip。先下載腳本,然後執行即可:
wgethttps://bootstrap.pypa.io/get-pip.py pythonget-pip.py
shadowsocks 啟動時的參數,如服務器端口,代理端口,登錄密碼等,可以通過啟動時的命令行參數來設定,也可以通過 json 格式的配置文件設定。推薦使用配置文件,方便查看和修改。
用 vi 新建一個配置文件:
vi/etc/shadowsocks.json
然後輸入如下內容:
{"server":"my_server_ip","server_port":25,"local_address":"127.0.0.1","local_port":1080,"password":"mypassword","timeout":300,"method":"aes-256-cfb","fast_open":false }
保存退出。
如果已經寫好了配置文件,啟動 shadowsocks 服務器的命令如下:
ssserver-c/etc/shadowsocks.json
後台啟動和停止 shadowsocks 服務器:
ssserver-c/etc/shadowsocks.json-dstart ssserver-c/etc/shadowsocks.json-dstop
shadowsocks 的日志保存在/var/log/shadowsocks.log
shadowsocks 支持 windows、MacOSX、Linux、Android、iOS 等多個平台。不過 iOS 由於系統對應用後台運行的限制,推薦使用客戶端內嵌的浏覽器科學上網,給其他應用代理時需要每過幾分鐘重新啟動一下 app。
shadowsocks 項目 Github 主頁在這裡。
裡面可以找到客戶端下載地址。
下載安裝客戶端以後,只需按服務器的配置填寫 IP 地址、服務器端口、本地端口(如果沒有本地端口選項,就是默認的 1080)、密碼、加密方式等參數,啟動就可以了。
客戶端支持全局代理和 PAC 代理兩種方式,後者會使用一個腳本來自動檢查一個網站是否在需要代理的網站列表中,自動選擇直接連接或代理連接。
PAC 列表可以在線更新,但是難免有收錄不全的情況。這時可以選擇關閉 shadowsocks 代理(實際上是取消對系統代理的配置,shadowsocks 客戶端仍然保持工作),然後使用支持自定義規則的代理管理插件來實現自動切換代理,比如 switchyOmega。
switchyOmega 是 chrome 浏覽器上一個很好用的代理管理插件。它的前身 switchySharp 更有名。
chrome 應用商店本身需要翻牆才能訪問,因此需要先在 shadowsocks 啟動代理模式下下載安裝,再關閉 shadowsocks 代理。
安裝完畢後,右擊 switchyOmega 圖標,選擇選項,進入 switchOmega 配置界面。
新建一個情景模式,比如叫 SS,代理協議選擇 socks5,代理地址為 127.0.0.1,端口 1080。
現在切換到 SS 情景模式就可以通過 shadowsocks 科學上網了。後面獲取自動切換規則列表
在設置界面選擇自動切換模式,在 “切換規則” 中勾選“規則列表規則”,對應的情景模式選擇剛剛新建的 SS。
然後在下面的規則列表地址中填寫
https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt
規則列表格式選擇 AutoProxy。
然後點擊立即更新情景模式, 更新完成後會有提示。
點擊左側的 “應用選項”。然後單擊 switchyOmega 圖標,選擇自動切換,就可以在訪問“不存在的網站” 時自動切換到 shadowsocks 代理了。
如果遇到某個國外網站無法直接連接或速度太慢時,可以單擊 switchyOmega 圖標,選擇 “添加條件”,情景模式選擇 SS,就可以了。
這時打開 switchyOmega 選項,在自動切換模式的切換規則中就可以看到剛剛添加的規則。可以在這裡管理自定義的規則。
如果換了一台電腦,重新設置一遍 switchyOmega 就太麻煩了。可以在設置好的 switchyOmega 中導出設置文件,在另一個 chrome 浏覽器中導入,就可以直接復制原來的設置了。
在 switchyOmega 選項的左側點擊 “導入 / 導出”,點擊“生成備份文件” 即可生成 switchyOmega 設置備份。點擊 “從備份文件恢復” 可以導入備份文件。