プロキシプロトコル · Clash ドキュメント

ShadowsocksR (SSR)

現在の Mihomo フィールドに基づく Clash 系 ShadowsocksR アウトバウンド設定です。ストリーム暗号、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 の主要フィールドの役割
フィールド役割設定要件
cipherSSR のデータストリームを暗号化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-param または protocol-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