文件 設定 Shadowsocks

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 等),使用場景較少,這裡不展開。