Shadowrocketの接続をオンにすると、システムで該当するネットワーク経路が有効になります。ただし、選択したサーバーやDNS、接続先のWebサイトが正常に応答するとは限りません。利用中のサービスとサブスクリプションがある方向けに、まず通常のネットワーク状態を確認し、次にサーバー、Global Routing、DNS、ルールの順で問題を切り分けます。一度に変更する設定は1つにし、問題を再現できる条件を保ってください。
まず通常のネットワークを確認してから、4つの手順で切り分ける
最初から設定を削除したり、サブスクリプションを何度も更新したりしないでください。現在のネットワーク、Homeで選択中のサーバー、Global Routingの状態、Configで使用中の設定ファイルを記録します。以降のテストでは同じURLを使い、その都度リクエストを新しく送信してください。ブラウザーのキャッシュに残ったページを、接続が復旧したと誤認しないためです。
Shadowrocketの接続をオフにし、現在のネットワークで通常アクセスできるWebページを開いてみます。それでも開かない場合は、Wi-Fiのログイン認証、モバイルデータ通信の許可、またはネットワーク自体の問題を先に解決してください。オフの状態では正常で、オンにすると問題が起きる場合に限り、アプリ内の通信経路を確認します。もともと直接アクセスできないWebサイトを使った比較は適切ではありません。
-
現在の状態を記録する
Homeで選択中のサーバーとGlobal Routing、Configで現在の設定名を記録します。メモは端末内に保存し、サブスクリプションURL、パスワード、設定ファイル全体は公開しないでください。
-
自動接続を一時停止する
Settings → On Demandを開き、自動接続の条件を記録して一時的に無効にします。その後Homeに戻り、接続をオフにしてください。設定しないままだと、システムが接続を再確立し、オフの状態での比較ができなくなることがあります。
-
通常のネットワークをテストする
Safariで、直接アクセスできる同じWebページを再読み込みします。Wi-Fiとモバイルデータ通信をそれぞれ試してください。ネットワークを切り替えるときは、古いリクエストを停止してから新しいリクエストを送信します。
-
接続を再びオンにする
Homeに戻って接続をオンにし、同じURLで再テストします。その後はサーバー、モード、DNS、ルールの順に確認し、テストごとに結果を記録してください。
手順1:サーバーと実際の通信を確認する
Homeにサーバーが登録されていても、現在利用できるとは限りません。まず想定したサーバーが選択されているか確認し、利用中のサービスから提供されたサーバーアドレス、ポート、認証情報、プロトコルのパラメーターを照合します。サーバーのドメイン名の入力ミス、ポートの誤り、認証情報の失効などがあると、接続がオンのままでもリクエストを完了できないことがあります。
Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは、設定項目を互いに流用できません。元のサービス設定に沿って確認してください。たとえばTLSを使う設定では、サーバー名や関連する検証設定も確認が必要です。トラブル対処のために証明書の検証を安易に無効にしないでください。端末の日付が大きくずれている場合は、正しい日時に戻してから接続し直します。
- ポートは元のサービス設定に合わせます:WebのHTTPSでは接続先ポートに
443がよく使われますが、プロキシサーバーの接続ポートは異なる場合があります。すべてを443に変更しないでください。 - 遅延の測定結果だけでは判断できません:遅延値が表示されても、そのテストの確認要求に応答があったことを示すにすぎません。接続先のWebサイト、DNS、実際の通信がすべて正常とは限りません。
- すでに登録済みのサーバーだけを比較します:ほかの条件を変えずに、登録済みのサーバーへ切り替えてください。切り替えに伴って症状が変わる場合は、元のサーバー設定とサービスの状態を優先して確認します。
- 更新後は選択状態を確認します:サブスクリプションの更新で項目の内容が変わることがあります。更新後にHomeへ戻り、想定したサーバーが残っていて選択されていることを確かめてから、再テストしてください。
サブスクリプションの更新失敗と、サーバーが通信を転送できない問題は別です。保存済みのサーバーは引き続き使えても、サブスクリプションURLに一時的にアクセスできない場合があります。逆に、更新が成功しても、取得したすべてのサーバーが利用できるとは限りません。利用中のサービスから設定変更の案内があった場合に限って更新し、接続確認の代わりに何度も更新しないでください。
手順2:Global Routingでモードの問題を切り分ける
Home → Global Routingで現在のモードを確認します。原因を絞るため、Direct、Proxy、Configを一時的に切り替えて比較できます。切り替え後はWebページを再読み込みしてください。既存の長時間接続では以前の経路が使われ続けることがあるため、すでに開いているチャットや動画だけで判断しないでください。テスト後は元の設定に戻し、一時的に使ったProxyを恒久的な解決策と誤認しないようにします。
| モード | 確認する内容 | 結果の見方 |
|---|---|---|
| Direct | 直接接続の経路を確認 | 直接アクセスできるWebページも開かない場合は、まず通常のネットワークとDNSを確認します。アプリを完全に終了した状態での基準とは異なります。 |
| Proxy | 選択中のプロキシ経路を確認 | 同じWebページがDirectでは開き、Proxyでは開かない場合は、選択中のサーバーと接続パラメーターを重点的に確認します。DNSの確認も続けてください。 |
| Config | 現在の設定ファイルでルールによる振り分けを確認 | Proxyでは開くのにConfigでは開かない場合は、ルールの適用状況、ポリシーの接続先、設定ファイル内のDNSの違いを優先して確認します。 |
| Scene | 保存済みのシーン条件に従って動作 | 現在のネットワークで適用されているシーンと、その設定内容を先に確認します。切り分け中はモードを明示的に固定し、自動切り替えの影響を減らしてください。 |
結論:どの経路で問題が起きるかを確認する
同じネットワーク、同じWebページ、同じサーバーでProxyなら開きConfigでは開かない場合は、まずConfigで適用されたルールを確認してください。すぐにサーバー設定を入力し直す必要はありません。どのモードでも失敗する場合は、サーバーへの接続とDNSを再確認します。接続スイッチの状態だけで判断しないでください。
手順3:DNSの問題と接続の問題を区別する
DNSはドメイン名をアドレスに変換します。サーバー自体をドメイン名で指定している場合、プロキシ接続を確立する前にサーバーアドレスの名前解決が必要になることがあります。そのため、「Webページが開かない」原因が接続先のWebサイトにあるとは限りません。サーバーのドメイン名と接続先のドメイン名をそれぞれ確認し、想定どおりに名前解決できるか、その後の接続が成功するかを切り分けてください。
Configで現在の設定ファイルのDNS設定を確認し、Settings内のDNS関連設定も照合します。有効になっていない設定だけを変更していた、ということがないようにしてください。元の値を記録し、名前解決に関係する設定は一度に1つだけ変更します。従来型DNSではポート53がよく使われ、DoHはHTTPSを利用します。ネットワークから名前解決サービスへアクセスできるかどうかは、サービスが返す内容と同じく重要です。
- ドメイン名の名前解決失敗は、サーバーの停止を意味しません:名前解決の段階でエラーが起きている場合、接続はまだサーバーに到達していません。まずドメイン名の入力と名前解決の経路を確認してください。
- IPアドレスのWebページだけで判断しない:HTTPSでは通常、証明書の検証や接続先サイトの選択にドメイン名が必要です。URLをIPアドレスに変えてエラーになっても、それだけでDNSの問題とは判断できません。
- アドレスファミリーの違いに注意:同じドメイン名からIPv4アドレスとIPv6アドレスの両方が返されることがあります。特定のネットワークだけで問題が起きる場合は、実際に試したアドレスと接続結果を記録してください。IPv6関連の設定をすべて削除するのは避けましょう。
- 変更後は新しいリクエストを送信:接続を確立し直して、新たなリクエストを送ってください。ブラウザーやシステムのキャッシュが確認結果に影響するため、1回の表示だけで名前解決がすべて更新されたとは判断できません。
手順4:Configのルール順序と最終的な適用先を確認する
Configだけで問題が起きる場合は、まずConfigで有効になっているファイルが、先ほど確認したファイルと同じか確かめてから、ルールの順序を確認します。通常、ルールは上から順に照合され、先に一致した項目で通信先が決まります。ルールが設定ファイルに存在していても、リクエストが必ずそのルールまで到達するとは限りません。前方にある広範なルールが先に適用されることがあります。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY
ここでは構文を説明しています。完全な設定ではなく、使用中のファイルにそのまま上書きしないでください。example.comと192.0.2.0/24はドキュメント用の例です。実際のルールは、確認対象と使用するポリシーに合わせて設定してください。
DOMAIN-SUFFIX:指定したドメインとそのサブドメインに一致します。Webサイトがほかのリソース用ドメインにも依存している場合、トップページのドメインだけを設定しても、画像やログインのリクエストは復旧しないことがあります。IP-CIDR:アドレスのネットワーク範囲で一致します。例のno-resolveは、このルールの照合のために名前解決を積極的に行わないことを示します。DNS全体を無効にするスイッチではありません。GEOIP:アドレスの地理情報データに基づいて一致します。Webページの言語やサイト名を基準に判定するものではありません。FINAL:それ以前のルールに一致しなかった通信を処理します。指定された接続先が想定どおりか確認してください。
ルールの接続先が利用可能なポリシーを指定しているかも確認します。DIRECTは直接接続、PROXYはプロキシ経由です。設定で独自のポリシーグループ名を使っている場合は、ルール左側のドメイン名だけでなく、グループ名と現在の選択内容も確認してください。リクエスト先のドメイン名、適用されたルール、最終的な経路を記録してから、必要最小限の変更を行います。
エラーの原文から、どの段階で失敗したかを確認する
以下はネットワークエラーログに表示されることがある原文の一部で、すべての画面に固定表示されるメッセージではありません。エラーの前後にある情報も確認し、DNS、サーバーの接続先、Webサイトのどこで発生したかを見極めてください。同じタイムアウトの表示でも、発生した段階によって対処方法は異なります。
エラー:connection refused
原因:接続先から拒否の応答を受けています。接続先ポートでサービスが待ち受けていない場合や、明示的に拒否された場合によく発生します。
対処:まず記録にあるアドレスがどちら側のものか確認します。サーバーの接続先であれば、Homeで該当項目のポートを確認し、利用中のサービスに稼働状況を問い合わせてください。
エラー:i/o timeout
原因:ネットワークの読み込みまたは書き込みの処理が制限時間を超えています。このメッセージだけでは、パケット損失、サーバーからの応答なし、上流側の接続問題を区別できません。
対処:サーバーとWebページを固定し、Wi-Fiとモバイルデータ通信をそれぞれテストします。エラーの直前に記録された接続先アドレスも確認し、どの段階でタイムアウトしたかを判断してください。
エラー:no such host
原因:名前解決で利用可能な結果が得られていません。ドメイン名の入力ミス、ドメインの不存在、名前解決経路の問題などが考えられます。
対処:まず名前解決の対象となっている完全なドメイン名を確認し、現在の設定ファイルのDNS設定を調べてください。先にサーバーのポートや認証パスワードを変更する必要はありません。
再テストとよくある質問
接続が復旧したら、一時的に変更した設定を元の順序で戻し、普段使っているConfigで確認します。もともと開かなかったWebページと、直接アクセスできるWebページを少なくとも1つずつ確認し、新しいページリクエストをそれぞれ試してください。On Demandを有効にしている場合は、最後にSettings → On Demandで元の条件に戻し、ネットワーク切り替え後に問題が再発しないことを確認します。
接続がずっとオンなのに、なぜネットにつながらないのですか?
スイッチがオンでも、接続先から通信が転送されたことは確認できません。まず接続をオフにして通常のネットワーク状態を確認し、Homeで選択中のサーバーを確かめます。次にProxyとConfigを比較し、最後にDNSとルールを確認してください。複数の設定を同時に変更しないようにします。
Wi-Fiだけ使えず、モバイルデータ通信なら使えます。再インストールすべきですか?
すぐに再インストールしないでください。同じサーバーとGlobal Routingのモードを維持したまま、Wi-FiでWeb認証が必要か確認し、サーバーのドメイン名の名前解決と接続結果を比較します。ネットワークに連動して問題が起きる場合は、そのネットワークの名前解決やアクセス制限を優先して調べてください。
Proxyでは開くのに、Configに戻すと開かないのはなぜですか?
Configで使用中のファイルを確認し、接続先ドメインにDIRECTや別のポリシーが先に適用されていないか、FINALの接続先がどこかを調べます。設定ファイル内のDNSの違いも確認してください。Proxyで開くからといって、すべてのルールに問題があるとは限りません。
サブスクリプションの更新に成功したのに、Webページが開かないのはなぜですか?
更新成功が示すのは、サブスクリプションの取得と処理が完了したことだけです。Homeに戻って実際に選択されているサーバーを確認し、更新後のパラメーターを照合してから、通信を転送できるかテストします。特定のWebサイトだけで問題が起きる場合は、そのサイトが利用するドメインと適用されるルールを確認してください。
当サイトはShadowrocketの公式サイトで、公式マニュアルと設定方法を掲載しています。操作手順の詳細はチュートリアル、設定項目の意味は設定リファレンスをご覧ください。ノード、サブスクリプション、回線サービスの提供・販売・推奨は行っていません。サービスの稼働状況や認証については、利用中のサービス提供元にお問い合わせください。