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