Skip to content

Shadowsocks

GOST对shadowsocks的支持基于shadowsocks/shadowsocks-goshadowsocks/go-shadowsocks2库。

标准shadowsocks代理

gost -L ss://chacha20-ietf-poly1305:pass@:8338
services:
- name: service-0
  addr: :8338
  handler:
    type: ss
    auth:
      username: chacha20-ietf-poly1305
      password: pass
  listener:
    type: tcp

延迟发送

默认情况下shadowsocks协议会等待请求数据,当收到请求数据后会把协议头部信息与请求数据一起发给服务端。当客户端nodelay选项设为true后,协议头部信息会立即发给服务端,不再等待用户的请求数据。当通过代理连接的服务端会主动发送数据给客户端时(例如VNC服务,MySQL数据库)需要开启此选项,以免造成连接异常。

UDP

GOST中shadowsocks的TCP和UDP服务是相互独立的两个服务。

gost -L ssu://chacha20-ietf-poly1305:pass@:8338
等同于
gost -L ssu+udp://chacha20-ietf-poly1305:pass@:8338

services:
- name: service-0
  addr: :8338
  handler:
    type: ssu
    auth:
      username: chacha20-ietf-poly1305
      password: pass
  listener:
    type: udp

端口转发

Shadowsocks UDP relay可以配合UDP端口转发来使用:

gost -L udp://:10053/1.1.1.1:53 -F ssu://chacha20-ietf-poly1305:123456@:8338
services:
- name: service-0
  addr: :10053
  handler:
    type: udp
    chain: chain-0
  listener:
    type: udp
  forwarder:
    nodes:
    - name: target-0
      addr: 1.1.1.1:53
chains:
- name: chain-0
  hops:
  - name: hop-0
    nodes:
    - name: node-0
      addr: :8338
      connector:
        type: ssu
        auth:
          username: chacha20-ietf-poly1305
          password: "123456"
      dialer:
        type: udp

数据通道

Shadowsocks代理可以与各种数据通道组合使用。

SS Over TLS

gost -L ss+tls://:8443
services:
- name: service-0
  addr: :8443
  handler:
    type: ss
  listener:
    type: tls

双重加密

这里为了避免双重加密,Shadowsocks未使用任何加密方法,采用明文传输。

SS Over Websocket

gost -L ss+ws://:8080
gost -L ss+wss://:8080
services:
- name: service-0
  addr: :8080
  handler:
    type: ss
  listener:
    type: ws
    # type: wss

SS Over KCP

gost -L ss+kcp://:8080
services:
- name: service-0
  addr: :8080
  handler:
    type: ss
  listener:
    type: kcp