本人的 Shadowsocks 服務非常穩定(就是速度慢一些,只能看 Youtube 1080P)。爲了使代理流量徹底混入服務器 TLS 流量中,我配置了 v2ray-plugin。
大致步驟
- 取得對應某一域名的 SSL 證書
- 從 circle-ci 下載 v2ray-plugin 二進制文件到服務器
- 配置 nginx 反向代理
- 修改 shadowsocks 配置文件
- 啓動 shadowsocks 服務
- (可選)客戶端配置
注意:若服務器上沒有運行 web 服務或者用的不是 nginx,請不要參考本教程。並且前者情況要簡單很多。
反向代理也不必放在域名的根目錄,可以放在子目錄,但需更多處修改。
取得 SSL 證書
這個用一下 acme.sh
或者 certbot
就行,不再贅述。
下載 v2ray-plugin
在 https://circleci.com/gh/shadowsocks/v2ray-plugin 選擇一個 build,打開頁面在 URL 後綴 #artifacts
,ENTER 即彈出二進制文件下載鏈接。
# tar -zxf v2ray-plugin-XXX.tar.gz
# mv v2ray-plugin_XXX /sbin/v2ray-plugin
配置 nginx 反向代理
不要 IPv6 可以去掉第二行 listen
。
要改的地方就是服務器域名、兩處 SSL 配置以及 shadowsocks 端口。
server
{
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name yourdoma.in;
ssl_certificate /root/.acme.sh/yourdoma.in/fullchain.cer;
ssl_certificate_key /root/.acme.sh/yourdoma.in/yourdoma.in.key;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
location / {
proxy_redirect off;
proxy_http_version 1.1;
proxy_pass http://localhost:44443; # port in your shadowsocks config
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
修改 shadowsocks 配置文件
在 /etc/shadowsocks.json
中需要修改的是:
"server": "127.0.0.1",
...
"plugin": "v2ray-plugin",
"plugin_opts": "server;loglevel=none"
之後用 ss-server -f /tmp/shadowsocks.pid -c /etc/shadowsocks.json
啓動服務端。
客戶端配置
shadowsocks-libev
在 JSON 中編輯:
"plugin": "v2ray-plugin",
"plugin_opts": "tls;host=yourdoma.in;loglevel=none;"
shadowsocks-windows
仿照上面下載 v2ray-plugin 並更改可執行文件名爲 v2ray-plugin.exe
,放在主程序同目錄下。同上編輯插件選項。
android
從 Google Play 下載 v2ray-plugin。用圖形界面配置插件選項。
iOS
在 App 中配置,操作各異,莫能詳述。
(完)