code-r5 / shadowsocks-ws

基于 WebSocket 的 Shadowsocks,可以部署在 Heroku 和 Railway。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Shadowsocks over WebSocket

Build Status License GitHub last commit

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 服务器,可以用浏览器访问。

环境要求

部署

Heroku

Deploy

Railway

Deploy on Railway

本地配置

克隆代码到本地,安装依赖:

$ git clone https://github.com/totravel/shadowsocks-ws.git
$ cd shadowsocks-ws
$ npm i

将配置文件 config.json.example 重命名为 config.json 并修改 remote_addresspasswordmethod 三个字段。

{
  "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 for Windows

打开 Shadowsocks for Windows

  1. 系统托盘 > 上下文菜单
    1. 服务器 > 扫描屏幕上的二维码
    2. 系统代理 > PAC 模式

Clash for Windows

将配置文件 clash.yaml.example 重命名为 clash.yaml 并修改 cipherpassword 两个字段。

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

打开 Clash for Windows

  1. 配置 > 导入上述配置文件
  2. 主页 > 打开「系统代理」开关
  3. 代理 > 规则

获取和使用规则集

执行脚本 ruleset.sh 下载 规则集

$ ./ruleset.sh
dowloading reject.yaml...
dowloading icloud.yaml...
dowloading apple.yaml...
dowloading google.yaml...
dowloading proxy.yaml...
dowloading direct.yaml...
dowloading private.yaml...
dowloading gfw.yaml...
dowloading greatfire.yaml...
dowloading tld-not-cn.yaml...
dowloading telegramcidr.yaml...
dowloading cncidr.yaml...
dowloading lancidr.yaml...
dowloading applications.yaml...

使用规则集的配置文件的模板为 blacklist.yaml.examplewhitelist.yaml.example

SagerNet for Android

将手机和电脑连接至同一网络,打开 SagerNet for Android

  1. 右上角 > 添加服务器配置 > 扫描二维码
  2. 修改服务器配置 > 将「服务器」字段由 127.0.0.1 修改为电脑的 IP 地址
  3. 右下角 > 连接

鸣谢

许可协议

The MIT License (MIT)

About

基于 WebSocket 的 Shadowsocks,可以部署在 Heroku 和 Railway。

License:MIT License


Languages

Language:JavaScript 93.7%Language:Shell 3.2%Language:HTML 3.1%