shadowsocks-ws 是基于 WebSocket 的 Shadowsocks,可以部署在 Heroku 等托管平台。
socks5 tcp websocket tcp
client <------> ss-local <---> ss-ws-local <-- gfw --> ss-ws-remote <---> target
encrypt decrypt
shadowsocks-ws 客户端只负责转发经过加密的流量,须配合 Shadowsocks for Windows 等现有 Shadowsocks 客户端使用。shadowsocks-ws 客户端和服务器端之间使用 WebSocket 协议进行通信。shadowsocks-ws 服务器对外表现为一个 Web 服务器,可以用浏览器访问。
- Node.js 16.13.2+
- Windows Terminal
克隆代码到本地,安装依赖:
$ git clone https://github.com/totravel/shadowsocks-ws.git
$ cd shadowsocks-ws
$ npm i
将配置文件 config.json.example
重命名为 config.json
并修改 remote_address
、password
和 method
三个字段。
{
"verbose": false,
"dns": "https://cloudflare-dns.com/dns-query",
"remote_address": "https://*.example.com/",
"remote_port": 80,
"local_address": "127.0.0.1",
"local_port": 8787,
"timeout": 5000,
"password": "secret",
"method": "aes-256-gcm"
}
dns
字段一般无须修改。下列取值供参考:
- DNSPod
https://doh.pub/dns-query
- AliDNS
https://dns.alidns.com/resolve
- 360DNS
https://doh.360.cn/query
启动 shadowsocks-ws 客户端:
$ node --no-warnings local.mjs
ss://...
resolving ...
trying ...
server running on host ...
listening on port 8787
- 复制 shadowsocks-ws 客户端输出的
ss://...
- 在托盘区找到 Shadowsocks for Windows 的图标 > 右击
- 服务器 > 从剪贴板导入 URL
- 系统代理 > PAC 模式
将配置文件 clash.yaml.example
重命名为 clash.yaml
并修改 cipher
和 password
两个字段。
proxies:
- name: "ss1"
type: ss
server: 127.0.0.1
port: 8787
cipher: aes-256-gcm
password: "secret"
proxy-groups:
- name: Proxy
type: select
proxies:
- ss1
rules:
- GEOIP,CN,DIRECT
- MATCH,Proxy
- 配置 > 导入上述配置文件
- 主页 > 打开「系统代理」开关
- 代理 > 直连
将手机和电脑连接至同一网络,打开 SagerNet for Android:
- 右上角 > 添加服务器配置 > 扫描二维码
- 修改服务器配置 > 将「服务器」字段由
127.0.0.1
修改为电脑的 IP 地址 - 右下角 > 连接