Shadowsocks 節點由哪些欄位組成
用戶端使用 cipher 與 password 建立 Shadowsocks 加密方法,再連線 server:port 指定的伺服器端。位址、連接埠、加密方法和密碼必須屬於同一份伺服器端設定。
基礎 Shadowsocks 可以分別承載 TCP 與 UDP。外掛程式位於 Shadowsocks 連線外層,用來改變傳輸方式或流量外觀,並不會替代基礎加密欄位。
name必填- 節點名稱,用於策略群組和規則引用。
type必填- 固定填寫
ss。 server必填- Shadowsocks 伺服器端網域或 IP。
port必填- 伺服器端監聽連接埠。
cipher必填- 加密方法,必須與伺服器端逐字一致。
password必填- 用於目前加密方法的 Shadowsocks 密碼。
選擇伺服器端實際使用的 Cipher
目前核心支援多組 Shadowsocks 加密方法。不要根據名稱新舊自行替換 cipher,用戶端與伺服器端不一致時無法完成加密握手。
| 類別 | 官方欄位示例 | 說明 |
|---|---|---|
| AES | aes-128-gcm、aes-256-gcm、CTR、CFB、CCM、GCM-SIV | 包含 AEAD 與部分相容用流加密方法 |
| ChaCha | chacha20-ietf-poly1305、xchacha20-ietf-poly1305 | 同時支援官方清單中的 ChaCha20 與 ChaCha8 變體 |
| 2022 Blake3 | 2022-blake3-aes-128-gcm、2022-blake3-chacha20-poly1305 | 密碼或金鑰格式必須遵循對應伺服器端實作 |
| LEA | lea-128-gcm、lea-192-gcm、lea-256-gcm | 僅在伺服器端使用同一實作時選擇 |
| 其他相容項 | aegis-128l、aegis-256、rc4-md5、none 等 | 只按既有伺服器端設定使用,不要為追求相容隨意降級 |
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 應設定在支援它的外掛程式選項內。
| plugin | 主要模式 | 設定邊界 |
|---|---|---|
obfs | http 或 tls | 常用 mode 與 host,必須和 simple-obfs 伺服器端一致 |
v2ray-plugin | websocket | 可在外掛程式內開啟 TLS,目前不支援 QUIC 模式 |
gost-plugin | websocket | 可設定 Host、Path、請求標頭、Mux 與外掛程式內 TLS |
shadow-tls | Shadow TLS | 設定 host、password、版本與可選 ALPN,版本支援 1、2、3 |
restls | Restls | 設定 host、password、version-hint 與可選流量指令碼 |
kcptun | KCP | 參數必須和 kcptun 伺服器端一致,目前實作會啟用 UOT |
jls | JLS | 設定 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 密碼。
proxies:
- name: ss-node
type: ss
server: server.example.com
port: 443
cipher: chacha20-ietf-poly1305
password: your-password
udp: true