代理協定 · Clash文件

ShadowsocksR (SSR)

Clash 生態系的 ShadowsocksR 出站設定參考,以目前 Mihomo 欄位為準,涵蓋串流加密、Protocol、Obfs 與舊節點的相容界線。

  • cipher
  • protocol
  • protocol-param
  • obfs
  • udp
代理協定

SSR 與 Shadowsocks 的設定差異

ShadowsocksR 是舊 SSR 伺服器端使用的相容出站類型。用戶端會依序應用 SSR 混淆、流加密和 SSR Protocol,因此設定不只包含 SS 的 cipher 與 password。

現有 SSR 節點應以伺服器端或可信訂閱提供的完整欄位為準。不能把現代 Shadowsocks 節點僅修改 type 後當作 SSR 使用。

最小必填欄位

一個 SSR 節點除通用位址欄位外,還必須同時給出密碼、流加密方法、混淆方式和 SSR Protocol。

name必填
節點名稱,在目前設定中必須唯一。
type必填
固定填寫 ssr
server必填
SSR 伺服器端網域或 IP。
port必填
SSR 伺服器端監聽連接埠。
cipher必填
SSR 使用的流加密方法,必須與伺服器端一致。
password必填
SSR 節點密碼。
obfs必填
SSR 混淆名稱,決定連線外觀處理。
protocol必填
SSR Protocol 名稱,決定認證和資料封裝。

Cipher、Obfs 與 Protocol 必須成組匹配

目前 SSR 實作接受受支援的流加密方法,也相容 nonenone 會在內部按 dummy 處理;現代 SS AEAD cipher 不能直接用於 SSR。

SSR 核心欄位職責
欄位作用設定要求
cipher加密 SSR 資料流使用 SSR 伺服器端給出的流加密方法,不能用 AEAD 名稱替換
password派生加密金鑰與目前 SSR 節點密碼完全一致
obfs處理連線外觀名稱必須由伺服器端支援
protocol處理認證與報文封裝名稱必須由伺服器端支援

參數、UDP 與通用連線選項

參數欄位只在對應伺服器端設定需要時填寫。訂閱已提供參數時應完整保留,不要憑其他 SSR 節點推斷。

obfs-param按需
傳給 SSR 混淆模組的參數,常見內容由伺服器端設定決定。
protocol-param按需
傳給 SSR Protocol 的參數,必須保持伺服器端要求的格式。
udp按需
允許該節點處理 UDP,伺服器端、Protocol 與網路也需支援。
ip-version按需
控制網域形式伺服器位址使用 IPv4、IPv6 或雙棧。
dialer-proxy按需
透過另一個節點或策略群組連線 SSR 伺服器端。
  • SSR 節點沒有 Shadowsocks 的 pluginplugin-opts 欄位。
  • SSR 節點也沒有協議級頂層 TLS 欄位,不要補寫 tls: true
  • UDP 開關不能修復錯誤的 cipher、obfs 或 protocol 組合。

SSR 節點示例與檢查

示例展示官方設定中的基礎欄位。若伺服器端還給出 obfs-paramprotocol-param,應在相同層級追加。

  • 出現 cipher 初始化錯誤時,確認使用的是 SSR 支援的流加密方法。
  • 能夠連線但無法傳輸資料時,優先核對 protocolprotocol-param
  • 握手外觀不匹配時,核對 obfsobfs-param 以及伺服器端位址和連接埠。
YAML
proxies:
  - name: ssr-node
    type: ssr
    server: server.example.com
    port: 443
    cipher: chacha20-ietf
    password: your-password
    protocol: auth_sha1_v4
    obfs: tls1.2_ticket_auth