Shadowsocks

最も定番の軽量プロキシプロトコルで、暗号化がシンプルで性能も良く、プラグインを組み合わせることでさまざまなトラフィック偽装も可能です。プロバイダーや自前構築のノードで最もよく使われるプロトコルの一つです。

設定例

config.yaml YAML
proxies:
  - name: "ss1"
    type: ss
    server: server
    port: 443
    cipher: aes-128-gcm
    password: "password"
    udp: true
    udp-over-tcp: false
    plugin: obfs
    plugin-opts:
      mode: tls

基本フィールド

password必須

接続パスワード。SS2022 系列の暗号方式ではここが EIH key になります。

cipher必須

暗号方式。よく使われるのは aes-128-gcm/aes-256-gcm/chacha20-ietf-poly1305/xchacha20-ietf-poly1305、およびより新しい SS2022 系列の 2022-blake3-aes-128-gcm/2022-blake3-aes-256-gcm/2022-blake3-chacha20-poly1305 です。旧式の aes-*-ctr/aes-*-cfb 系列も対応していますが、安全性・性能ともに AEAD 系列に劣るため、新規ノードでの利用は推奨されません。

udp-over-tcp / udp-over-tcp-versionオプション

UDP トラフィックを TCP トラフィックに偽装して転送します。TCP のみ通す一部のネットワーク環境で制限を回避するために使用できます。

plugin プラグイン

plugin フィールドは obfs/v2ray-plugin/gost-plugin/shadow-tls/restls/kcptun に対応しており、各プラグインにはそれぞれの plugin-opts があります。

obfs(simple-obfs)
YAML obfs
plugin: obfs
plugin-opts:
  mode: tls # または http
  host: bing.com

トラフィックを TLS または HTTP のハンドシェイクのように偽装する、最もシンプルな難読化方式です。ディープパケットインスペクションへの耐性は限定的です。

shadow-tls
YAML shadow-tls
plugin: shadow-tls
client-fingerprint: chrome
plugin-opts:
  host: "cloud.tencent.com"
  password: "shadow_tls_password"
  version: 3 # 1/2/3 に対応

SS トラフィックを本物の TLS ハンドシェイクで包みます(host は実在するウェブサイトを指定)。単純な obfs よりリアルな偽装効果が得られ、現時点で検閲耐性が比較的強い方式の一つです。

restls
YAML restls
plugin: restls
client-fingerprint: chrome # chrome/ios/firefox/safari のいずれか
plugin-opts:
  host: "www.microsoft.com" # TLS 1.3 サーバーである必要があります
  password: [YOUR_RESTLS_PASSWORD]
  version-hint: "tls13"
  restls-script: "300?100<1,400~100,350~100,600~100,300~200,300~100"

shadow-tls よりさらに進んだ方式で、restls-script によりハンドシェイク後のトラフィック挙動を細かく制御し、「TLS in TLS」のような特徴を隠します。

v2ray-plugin
YAML v2ray-plugin
plugin: v2ray-plugin
plugin-opts:
  mode: websocket
  # tls: true
  # host: bing.com
  # path: /path

SS トラフィックを WebSocket にラップし、CDN を経由できるため互換性が高いです。現時点では QUIC モードには未対応です。

その他にも kcptun プラグインがあり、トラフィックを KCP プロトコルに変換して不安定な回線での伝送効率を向上させます。フィールドが多く(key/crypt/mode/mtu など)、使用場面は限られるため、ここでは詳しく説明しません。