代理協定 · Clash文件

Shadowsocks (SS)

Clash 生態系的 Shadowsocks 出站設定參考,以目前 Mihomo 欄位為準,涵蓋加密方式、UDP over TCP 與外掛傳輸。

  • cipher
  • UDP over TCP
  • plugin-opts
  • smux
  • TLS
代理協定

Shadowsocks 節點由哪些欄位組成

用戶端使用 cipherpassword 建立 Shadowsocks 加密方法,再連線 server:port 指定的伺服器端。位址、連接埠、加密方法和密碼必須屬於同一份伺服器端設定。

基礎 Shadowsocks 可以分別承載 TCP 與 UDP。外掛程式位於 Shadowsocks 連線外層,用來改變傳輸方式或流量外觀,並不會替代基礎加密欄位。

name必填
節點名稱,用於策略群組和規則引用。
type必填
固定填寫 ss
server必填
Shadowsocks 伺服器端網域或 IP。
port必填
伺服器端監聽連接埠。
cipher必填
加密方法,必須與伺服器端逐字一致。
password必填
用於目前加密方法的 Shadowsocks 密碼。

選擇伺服器端實際使用的 Cipher

目前核心支援多組 Shadowsocks 加密方法。不要根據名稱新舊自行替換 cipher,用戶端與伺服器端不一致時無法完成加密握手。

Shadowsocks 加密方法分組
類別官方欄位示例說明
AESaes-128-gcmaes-256-gcm、CTR、CFB、CCM、GCM-SIV包含 AEAD 與部分相容用流加密方法
ChaChachacha20-ietf-poly1305xchacha20-ietf-poly1305同時支援官方清單中的 ChaCha20 與 ChaCha8 變體
2022 Blake32022-blake3-aes-128-gcm2022-blake3-chacha20-poly1305密碼或金鑰格式必須遵循對應伺服器端實作
LEAlea-128-gcmlea-192-gcmlea-256-gcm僅在伺服器端使用同一實作時選擇
其他相容項aegis-128laegis-256rc4-md5none只按既有伺服器端設定使用,不要為追求相容隨意降級

UDP 與 UDP over TCP

udp 控制節點是否允許處理 UDP。預設情況下 UDP 使用 Shadowsocks 原生 UDP;啟用 UOT 後,UDP 資料會封裝到 TCP 連線中,伺服器端必須支援相同機制和版本。

udp按需
允許節點處理 UDP,預設關閉。
udp-over-tcp按需
啟用 UDP over TCP,預設 false
udp-over-tcp-version版本
UOT 版本僅支援 1 或 2,未填寫時使用版本 1。
smux進階
通用 TCP 多工設定,不等同於 UOT,也不能替代伺服器端協議支援。

外掛程式與 Plugin Options

一個節點只能按伺服器端選擇對應外掛程式,plugin-opts 的結構由外掛程式決定。Shadowsocks 頂層沒有通用的 tls 開關,TLS 應設定在支援它的外掛程式選項內。

Shadowsocks 外掛程式邊界
plugin主要模式設定邊界
obfshttptls常用 modehost,必須和 simple-obfs 伺服器端一致
v2ray-pluginwebsocket可在外掛程式內開啟 TLS,目前不支援 QUIC 模式
gost-pluginwebsocket可設定 Host、Path、請求標頭、Mux 與外掛程式內 TLS
shadow-tlsShadow TLS設定 host、password、版本與可選 ALPN,版本支援 1、2、3
restlsRestls設定 host、password、version-hint 與可選流量指令碼
kcptunKCP參數必須和 kcptun 伺服器端一致,目前實作會啟用 UOT
jlsJLS設定 host、username、password 與可選 ALPN
plugin按需
外掛程式名稱,只能填寫目前核心支援且伺服器端實際啟用的類型。
plugin-opts按需
外掛程式專屬選項,不能在不同外掛程式之間直接重用。
client-fingerprint按需
供 Shadow TLS、Restls 或 JLS 等相應外掛程式模擬 TLS 用戶端外觀。

基礎節點示例與檢查

下面是不帶外掛程式的基礎節點。若訂閱給出了外掛程式,應在保持六個基礎欄位不變的前提下追加 plugin 和對應的 plugin-opts

  • 初始化階段報告 cipher 錯誤時,先核對加密方法拼寫和目前核心支援清單。
  • TCP 可用而 UDP 不可用時,確認伺服器端 UDP、用戶端 udp 與防火牆三處設定。
  • 外掛程式連線失敗時,逐項核對外掛程式名稱、mode、host、path、TLS 和密碼,不要只檢查 SS 密碼。
YAML
proxies:
  - name: ss-node
    type: ss
    server: server.example.com
    port: 443
    cipher: chacha20-ietf-poly1305
    password: your-password
    udp: true