背景介紹:
相對於VPN而言,搭建一個Shadowsocks服務,然後通過瀏覽器代理的方式來使用,要方便很多。
它的原理跟SSH Tunnel類似,就是通過Shadowsocks的服務端與其專用的Shadowsocks用戶端建立起一個加密的隧道,然後Shadowsocks用戶端會在本地監聽一個連接埠,預設為1080;所有經過這個本地連接埠的資料都會通過這個加密隧道。
相關配置:
OS: CentOS 6.4 x86_64 Minimal
1. 安裝Shadowsocks Server
# pip install shadowsocks
2. 配置/etc/shadowsocks.json
# vim /etc/shadowsocks.json
{
"server": "0.0.0.0",
"server_port": 443,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "shadowsockspass",
"timeout": 600,
"method": "aes-256-cfb",
"fast_open": false,
"workers": 1
}
註解:在以上設定檔中,
定義了監聽的伺服器位址為任意地址:"server": "0.0.0.0",
定義了監聽的伺服器連接埠為443:"server_port": 443,
定義了用戶端本地的監聽地址為127.0.0.1:"local_address": "127.0.0.1",
定義了用戶端本地的監聽連接埠為1080:"local_port": 1080,
定義了密碼為shadowsockspass:"password": "shadowsockspass",
定義了連線逾時的時間為600秒:"timeout": 600,
定義了加密的方式為aes-256-cfb:"method": "aes-256-cfb",
預設關閉了fast_open屬性:"fast_open": false,
定義了進程數為1:"workers": 1
3. 配置/etc/sysctl.conf,新增如下配置:
# vim /etc/sysctl.conf
# For shadowsocks
fs.file-max = 65535
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5120
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla
4. 啟動Shadowsocks服務
# ssserver -c /etc/shadowsocks.json -d start
# netstat -lntp | grep 443
1
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 11037/python
5. 下載Shadowsocks用戶端
Windows:https://github.com/shadowsocks/shadowsocks-csharp/releases/download/2.5.6/Shadowsocks-win-2.5.6.zip
Mac OS X:https://github.com/shadowsocks/shadowsocks-iOS/releases/download/2.6.3/ShadowsocksX-2.6.3.dmg
6. 配置用戶端
建立伺服器串連,輸入:
伺服器位址,如:heylinux.com
連接埠:443
加密方式:aes-256-cfb
密碼:shadowsockspass
啟動用戶端並一直保持在啟動狀態,預設選擇Auto Proxy Mode,並執行一次Update PAC from GFWList,如下圖所示:
7. 配置瀏覽器外掛程式
安裝外掛程式Proxy SwitchySharp:https://chrome.google.com/webstore/detail/dpplabbmogkhghncfbfdeeokoefdjegm
啟用剛剛配置好的Proxy:shadowsocks