Trojanの接続情報が手元にある場合は、まずAddress、Port、Passwordを確認し、SNIやその他のTLS設定は提供された情報に従って入力します。手入力から確認、トラブル対処まで順を追って説明します。フィールド名はアプリ内の現在の表示に従ってください。
Trojan接続で最初に確認する項目
TrojanはTLSを使って接続します。Shadowrocketにサーバーを登録する際、AddressとPortは接続先を指定し、Passwordはサーバー側で設定された認証情報と照合されます。SNIはTLSハンドシェイクで使われるサーバー名です。それぞれ役割が異なるため、AddressとPortで接続できても、Passwordや証明書名が正しいとは限りません。
まず、手元にある接続情報から必要な値を確認します。プロトコル名だけを見てポートを推測したり、サブスクリプションURLをサーバーのAddressに入力したりしないでください。サブスクリプションURLは設定を取得するためのもので、サーバーのAddressは実際の接続先を示します。インポート用リンクだけが記載され、個別の値が分からない場合は、元の情報に従ってインポートしてからアプリ内の登録内容を確認してください。
Add Serverで項目を入力する
サーバー情報が明確な場合は、手入力で登録できます。ShadowrocketのHomeで右上の「+」をタップしてAdd Serverを開き、TypeでTrojanを選んで、手元の情報を入力します。アプリの画面によって項目の順序が異なる場合があります。折りたたまれた項目があれば、TLS関連の設定を開いて確認してください。記載のない値を推測で補わないようにしましょう。
接続情報を確認
TrojanサーバーのAddress、Port、Passwordと、情報に記載されたSNIやTLSの追加設定を用意します。サーバー情報とサブスクリプションURLは区別してください。
Typeを選択
Home →「+」→ Add Serverを開き、TypeにTrojanを設定します。TLSの記載があっても、Typeを別のプロトコルに変更しないでください。
接続先を入力
サーバーのホスト名またはIPをAddressに、情報に記載された数値をPortに入力します。たとえば、資料に443と明記されている場合のみ443を設定します。プロトコル名からポートを推測することはできません。
認証情報を確認
サーバーから提供された値をPasswordにそのまま入力し、大文字・小文字やコピー時に混入した余分な空白がないか確認します。SNIが記載されている場合は、対応するTLS項目に入力してください。
保存してテスト
登録内容を保存してHomeに戻り、追加したサーバーを選択して接続テストを行います。失敗した場合は、Address、Port、Password、SNIの順に元の情報と一字ずつ照合してください。
example.comはフィールドの形式を示す例であり、接続可能なサーバーではありません。実際には手元の情報に記載された値を使ってください。特に、ホスト名だけを求めるAddressやSNIの項目に、https://やパス、クエリパラメーターを含むWebページのURLを貼り付けないでください。
Address、Port、Passwordでよくある入力ミス
Addressはネットワーク接続先を示し、資料で指定されたドメイン名またはIPを入力します。SNIとは別の項目です。ドメイン名は資料に記載された階層を省略せず入力してください。たとえば、edge.example.comとexample.comは異なる名前です。AddressにIP、SNIにドメイン名を指定する情報の場合は、それぞれの値を対応する項目に入力し、どちらかを両方に使わないでください。
Portには数値のポートを入力します。443はTLSでよく使われますが、サーバーによって別のポートが設定されている場合もあります。サブスクリプションサービスのWebページや管理画面のポート、例にある443をそのまま使っても、実際のサーバー設定の代わりにはなりません。確認時はAddressとあわせて見てください。同じドメインでもポートが異なれば、接続先のサービスも異なる場合があります。
| 項目 | 入力する値 | よくある間違い |
|---|---|---|
| Address | サーバー情報に記載されたホスト名またはIP | サブスクリプションURLやパス付きのWebページURLを入力する |
| Port | そのAddressに対応するポート番号 | Trojanと書かれているだけで443に変更する |
| Password | 対象サーバーの登録に使う完全な認証情報 | コピー時に文字が抜ける、または前後に空白が入る |
| SNI | 資料で指定されたTLSサーバー名 | Passwordと混同する、または常にAddressをそのまま入力する |
Passwordにはサーバー側で設定された値をそのまま入力してください。大文字・小文字、記号、文字数を変えないようにします。接続できない場合は、値の先頭や末尾に改行・空白が混ざっていないか確認し、アカウントのログインパスワードをTrojanのPasswordと取り違えていないか見直してください。公開するスクリーンショットや問い合わせ文にPassword全体を載せないでください。
確認の順序:まず接続先を確認
AddressまたはPortが現在のサーバー情報と一致していない場合、SNIやPasswordを変更しても接続先の誤りは解消しません。まず、AddressとPortが同じ接続情報に基づいていることを確認し、その後TLSと認証の項目を確認してください。
SNIとTLS設定の対応関係
SNIはTLSハンドシェイクで使われるサーバー名の通知です。通常はドメイン名で、接続先サーバーが使用する名前や証明書を識別するために使われます。Webサイトを開くときに入力する完全なURLではありません。資料にSNIが明記されている場合は、その値を入力してください。記載がなければ、サービスの名称やサブスクリプションのドメインから推測せず、接続に必要な設定を情報の提供元に確認してください。
証明書の検証では、接続先から提示された証明書が想定される名前などの条件に合っているかを確認します。証明書名の不一致や検証エラーが発生した場合は、まずSNI、端末の時刻、資料に指定されたTLS設定を確認し、サーバー側の証明書の状態も確認してください。証明書の検証を無効にすると、本来の接続先確認が行われなくなります。通常のトラブル対処として無効化しないでください。
- Addressがドメイン名の場合:資料に別途SNIが指定されているか確認します。指定があればその値を入力し、常にAddressと同じだと決めつけないでください。
- AddressがIPの場合:資料にSNIのドメイン名も記載されている場合は、IPをAddressに、ドメイン名をSNIに入力します。接続先を変えて両方の名前をそろえないでください。
- 資料にその他のTLS設定がある場合:対応する項目があり、資料に値が明記されている場合に限り入力します。ALPNなどの値をPasswordに入力しないでください。
- 資料で特別な通信設定が指定されている場合:その接続設定の説明を項目ごとに確認してください。Typeで正しいプロトコルを選んでも、他の項目まで自動的に適切な値になるとは限りません。
トラブル対処では一度に変更する項目を一つに絞り、保存して再テストし、変更前後の状態を記録してください。Address、SNI、TLS設定を同時に変更すると、接続できるようになっても、どの項目が原因だったのか分からなくなります。
保存後に接続できない場合の確認方法
接続テストと実際の通信経路の設定は別です。まずHomeで保存したTrojanの項目を選び、サーバーへの接続テストが成功するか確認します。次に、接続スイッチとGlobal Routingを確認してください。Global RoutingがDirectの場合、通信は直接接続として扱われます。サーバーを保存しただけでは、Webリクエストがそのサーバーを経由しているとは限りません。ConfigやSceneを使う場合は、現在の設定やシーンに基づいて実際の経路を確認してください。
Portに443を入力しても接続できない場合
元の接続情報に戻り、Portを確認してください。443はよくあるポートの例にすぎません。Addressにプロトコルの接頭辞、スラッシュ、空白が余計に含まれていないかも確認します。
TLSまたは証明書のエラーが表示される場合
SNIが資料に指定されたドメイン名と一字ずつ一致するか、端末の時刻が正しいか、資料に記載されたTLS設定に誤りがないか確認します。それでも失敗する場合は、サーバー側の証明書の状態を確認してください。
テストは成功するのにWeb通信がこの接続を通らない場合
Homeで該当サーバーが選択されていることを確認し、Global RoutingがDirectになっていないか確認します。ConfigやSceneを使っている場合は、対応するルールとシーンの設定も確認してください。
サブスクリプションに同じ名前の項目がある場合、手入力は必要?
まず、サブスクリプションからインポートした項目に必要な情報がそろっているか確認します。手入力すると別の項目が追加されます。サブスクリプションを更新した後は、テストしているのがインポートした項目か、手入力した項目かを確認してください。
サブスクリプションを利用していて、更新後に接続できなくなった場合は、選択中のサーバー項目が変わっていないか確認し、更新前後で表示される値を比較してください。https://example.com/sub?token=xxxxのようなサブスクリプションURLは形式の例であり、TrojanのAddressには入力しません。インポートした設定と手入力した項目を分けて確認すれば、インポートの問題をTLSの問題と取り違えずに済みます。
確認後に記録しておく内容
Passwordを含めず、項目を確認した記録を残してください。TypeがTrojanであること、AddressとPortの組み合わせ、SNIが資料に明記されていたか、テスト時のGlobal Routingの状態を書き留めます。情報の提供元へ問い合わせる際は、「接続先に到達できない」「TLSの名前が一致しない」「テストは成功するがルーティングがDirect」など、具体的な状況を伝えると、「使えない」とだけ伝えるより原因を特定しやすくなります。
最後に、保存した項目を開き、Address、Port、Password、SNIが手元の情報と一致しているか一つずつ確認してください。サーバー側でポート、認証情報、証明書名が変更された場合は、更新後の情報に従って入力し直します。古い項目がHomeに表示されていても、現在のサーバー設定と値が一致しているとは限りません。
Shadowrocketの確認方法と基本操作を続けて読む
まず正規入手の確認ページでApp Storeの製品情報を確認し、チュートリアルに沿ってアプリ内のサーバー追加方法と接続設定を確認してください。
正規入手の確認ページへ チュートリアルを見る