Shadowrocketで接続済みと表示されても、確認できるのは端末上のVPNトンネルが起動したことだけです。リモートサーバーやDNS、アクセス先のWebサイトがすべて利用できるとは限りません。利用中のサービスとサブスクリプションがある方を対象に、基本ネットワーク、サーバー、Global Routing、DNS、ルールの順で原因を切り分けます。変更は一度に一項目だけにし、同じURLで再テストしてから、最後に普段の設定へ戻してください。
1. 接続済みなのにWebページが開けないのはなぜ?
まず、問題がどの段階で起きているかを確認します。端末でVPNトンネルを確立すること、リモートサーバーへ接続すること、アクセス先のドメインを名前解決すること、Webページの応答を受け取ることは、それぞれ別の段階です。Homeで接続スイッチがオンになっている、またはシステムにVPNアイコンが表示されているだけでは、Webサイトまでの経路全体が正常とはいえません。
最初に何をすればよいですか?まず、基準となるネットワークの状態を確認します。現在のネットワーク、選択中のサーバー、Global Routingのモード、使用中の設定を記録してください。その後、一時的にShadowrocketを切断し、今のネットワークから通常アクセスできるWebサイトを開きます。それでも失敗する場合は、ルールを変更する前に、Wi-Fiのログイン、モバイルデータ通信の権限、またはネットワーク自体を確認してください。
-
現在の状態を記録
Homeで選択中のサーバーとGlobal Routingの現在値を、Configで使用中の設定を記録します。トラブルシューティング後に元へ戻せるよう、設定のコピーを保存してください。
-
自動接続を一時停止
Settings → On Demandを開いて設定を記録し、On Demandを一時的にオフにします。次にHomeの接続スイッチをオフにし、直結テスト中にトンネルが自動で再接続されないようにします。
-
基本ネットワークをテスト
Safariで、普段そのままアクセスできるWebサイトを開きます。Wi-FiでWeb認証が必要な場合は先に認証を済ませ、同じURLをモバイル通信でも確認してください。
-
接続をやり直す
基本ネットワークに問題がなければ、Homeに戻って接続をオンにし、同じURLで再テストします。以降は設定を一つ変更するたびに、接続を確立し直して新しいリクエストを送信してください。
Wi-Fiとモバイル通信で結果が異なる場合、何がわかりますか?ネットワーク経路に関連する問題の可能性はありますが、特定のプロトコルの障害とはまだ断定できません。サーバーポートへの到達性、DNS、ネットワークの認証状態はネットワークごとに異なる場合があります。この差を記録し、次の確認に進みましょう。
2. サーバーテストに成功すれば、インターネットを使えますか?
いいえ。まずHomeで現在のサーバーの接続テストを実施し、テスト方法を確認します。ポートへの接続確認と、プロキシ経由でWebサイトへリクエストするテストでは、確認できる範囲が異なります。遅延時間が表示されても、すべてのドメイン、通信方式、接続先ポートが利用できるとは限りません。
テストに失敗した場合、まずどの項目を変更すればよいですか?現在のサーバーの編集画面を開き、利用中のサービス提供元から案内された情報と照らし合わせて、アドレス、ポート、Type、認証情報を一つずつ確認してください。経験則でポートを一律に443へ変更しないでください。443はHTTPSでよく使われるポートですが、リモートプロキシの待ち受けポートはサーバー側の設定と一致している必要があります。
| 確認項目 | 確認する内容 | 間違えやすい点 |
|---|---|---|
| アドレスとポート | 完全なホスト名またはIPアドレス、実際の待ち受けポート | Webサイトの443を入力しても、プロキシサービスのポートとは限りません |
| Shadowsocks | 暗号化方式とパスワードがサーバー側の設定と一致していること | アドレスに到達できても、認証情報や暗号化パラメーターが正しいとは限りません |
| VMess / VLESS | UUID、通信方式、および対応する通信パラメーター | UUIDが正しくても、通信設定が一致していない場合があります |
| Trojan と TLS | パスワード、サービス指定のTLS設定、サーバー名 | IPアドレスに接続できても、証明書の名前チェックで失敗する場合があります |
| Hysteria2 / WireGuard | サービスの案内に従って、認証情報、キー、関連パラメーターを確認 | TCPのみを確認するテストでは、UDP経路の状態は判断できません |
手動で変更するか、サブスクリプションを更新するか、どちらを選べばよいですか?サーバーが自分のサブスクリプション経由で追加されている場合は、まずサブスクリプションの更新が成功していることと、選択中の項目がサービスの有効範囲内であることを確認してください。サブスクリプションを更新しても接続情報が更新されるだけで、リモートサーバーの稼働が確認できるわけではありません。コピーを保存せずに設定を何度も上書きすることも避けてください。この記事では接続先の情報を提供していません。パラメーターの有効性は、ご利用中のサービス提供元にご確認ください。
エラーキーワード:Connection timed out
原因と対処:制限時間内に接続が完了していません。アドレス、ポート、ネットワーク経路などが原因として考えられます。まずサーバー情報を確認し、Wi-Fiとモバイル通信の両方でテストしてください。タイムアウトだけを根拠に、サービスが停止したと判断することはできません。
エラーキーワード:Connection refused
原因と対処:接続先または経路上の機器が接続を明示的に拒否しています。ポートで待ち受けていない、またはポリシーで拒否されている可能性があります。ポートを確認し、待ち受け状態について利用中のサービス提供元に問い合わせてください。
エラーキーワード:No such host
原因と対処:ホスト名を名前解決できていません。サーバーのアドレスとアクセス先のWebサイトのドメイン名を区別し、スペルと現在のDNS設定を確認してください。名前解決の失敗をパスワードの誤りと混同しないようにしましょう。
これらのエラーメッセージはどこで確認できますか?アプリの接続ログや診断情報、システムのネットワークエラーを確認し、実際に表示された原文と発生時刻を記録してください。リクエストによって表示される文言が異なる場合があります。該当するメッセージが表示されていない場合は、ここにある例を端末が出した診断結果とみなさないでください。
3. Global Routingの比較テスト方法
原因を切り分けやすいモードはどれですか?Home → Global Routingを開き、現在の値を記録したうえで、Direct、Proxy、Configを使い、同じURLに新しいリクエストを送ります。これは短時間の診断を目的としたテストで、特定のモードを継続して使うよう求めるものではありません。Directでの比較には、現在のネットワークから直接アクセスできる接続先を選んでください。
| モードまたは状態 | 意味と次の確認事項 |
|---|---|
| Direct | 直接接続との比較に使います。VPN全体をオフにするわけではなく、アプリ内のDNS設定の影響も排除できません。 |
| Proxy | 現在のプロキシ経路を確認します。実際に使用しているサーバーまたはポリシーを確認し、選択対象が変更されていないか確かめてください。 |
| Config | 現在の設定にあるルールに従って経路を振り分けます。Proxyは正常でConfigが失敗する場合は、適用されたルールとポリシーを優先して確認してください。 |
| Scene | シーンの設定に応じてルーティングします。問題の切り分けでは、まず現在のシーンを確認し、明確な比較ができるモードに一時的に切り替えてください。 |
| Directは正常、Proxyは失敗 | プロキシサーバー、認証情報、通信パラメーター、サーバーのドメイン名解決を重点的に確認してください。 |
| Proxyは正常、Configは失敗 | ルールによって接続先に不適切な経路が選ばれていないか、利用できないポリシーが指定されていないかを確認してください。 |
結論:経路を固定してからルールを変更
同じURLがProxyでは開けてConfigでは開けない場合、サーバー設定はそのままにして、適用されたルールを確認してください。これにより、正常と確認できたサーバー設定を誤って変更するのを防げます。
4. DNSの名前解決エラーを見分ける方法
Webページの読み込みが終わらない場合、必ずDNSが原因ですか?いいえ。DNSの障害と判断するには、レコードや明確な名前解決エラーによる裏付けが必要です。サーバーのアドレスがドメイン名の場合は、まずその名前を解決する必要があります。一方、アクセス先のWebサイトのドメイン名は、別の経路で解決されることがあります。前者で失敗すると、プロキシ接続自体を確立できない場合があります。
どこを確認すればよいですか?Configを開き、現在使用中の設定にあるDNS関連の項目を確認します。まず設定のコピーを保存してから、[General]内のdns-serverと、特定のドメインに適用される別のDNS設定がないかを確認してください。システムのWi-Fi設定でDNSを変更しても、設定ファイルで指定された名前解決経路には反映されない場合があります。
- アドレス形式を確認:スペルミス、区切り文字の抜け、到達できないDNSリゾルバーがないか確認してください。暗号化DNSのアドレスでは、ホスト名とHTTPS接続の到達性も関係します。
- 通信経路を確認:通常のDNSではUDPまたはTCPの53番ポートがよく使われ、DoHはHTTPSを使うため通常は443番ポートを利用します。ただし、ポートの用途だけでは、現在のネットワークからそのサービスへ接続できるかどうかはわかりません。
- 一項目だけ元に戻す:DNSを手動変更した後に問題が発生した場合は、複数のリゾルバーやモード、サーバーを同時に変更せず、まず変更前の設定コピーに戻してください。
- 新しいリクエストで再テスト:再接続してページを読み込み直し、新しく記録された情報を確認してください。ブラウザーやアプリにキャッシュが残る場合があります。一度の成功または失敗だけでは、すべてのドメインの状態は判断できません。
WebサイトのIPアドレスを直接入力すればDNSを切り分けられますか?それだけでは判断できません。HTTPSでは証明書の検証やバーチャルホストの選択にドメイン名が必要です。IPアドレスへ直接アクセスすると、証明書エラーが表示されたり、別のサイトが表示されたりする場合があります。まずドメイン名が有効な結果に名前解決されているかを確認し、その後の接続が成功するかを調べてください。
5. ルールの適用ミスで確認するキーワード
Configモードで一部のWebサイトだけ開けない場合、まず何を見ればよいですか?Configで選択中の設定を確認し、失敗したリクエストの接続ログを見て、対象のドメイン名またはIPアドレス、適用されたルール、最終ポリシー、使用サーバーを確認してください。Shadowrocketはルールを上から順に照合するため、条件に一致する先行ルールが結果に影響します。設定ファイルに対象ドメインの記述があるかを見るだけでは不十分です。
| キーワード | 照合範囲 | 確認ポイント |
|---|---|---|
DOMAIN | 完全一致するドメイン名 | メインドメインと各サブドメインを個別に確認してください。 |
DOMAIN-SUFFIX | ドメイン名とそのサブドメイン | サフィックスの範囲が広すぎないか、先行ルールに一致していないかを確認してください。 |
GEOIP | IP地理データベースの結果に基づいて照合 | Webサイトの言語やドメインのサフィックスで地域を判定するものではありません。 |
IP-CIDR | IPv4アドレス範囲 | マスク範囲が正しいか、名前解決されたアドレスが範囲内にあるかを確認してください。 |
FINAL | 先行ルールに一致しなかったリクエスト | 最終ポリシーが利用可能か、想定どおりかを確認してください。 |
ルールの構文はどう確認すればよいですか?以下は3種類のルールと順序の例です。そのままインポートできる設定ではありません。example.comと192.0.2.0/24はドキュメント用の例です。PROXYの実際のプロキシ出口も、自分の設定で確認してください。
[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
FINAL,PROXY
ここでno-resolveを指定する理由は何ですか?このIPルールに対して、ルール照合のためにドメインの名前解決を自動で行わないことを示します。DNS全体を無効にする指定ではありません。また、後続のルールで引き続き照合する場合、その前にFINALを置かないでください。後続ルールで意図した振り分けができなくなります。
- ページのテキストは表示されるのに画像が読み込めない場合は、ページ、画像、APIの各ドメインのログを確認してください。メインサイトのルールを追加するだけでは解決しない場合があります。
- ルールでポリシーグループを選択している場合は、グループ内で実際に選択されているサーバーも確認してください。グループ名が存在していても、メンバーが利用できるとは限りません。
- 手動変更後に一時的に復旧した場合は、変更前後の差分を保存し、サブスクリプションまたは設定の更新によってローカルの変更が上書きされていないか確認してください。
6. トラブルシューティング後に設定を戻し、有効な情報を残す方法
問題が解消したらすぐ終了してもよいですか?まず普段使うGlobal Routingのモードに戻し、Configで想定した設定が選択されていることを確認してください。普段On Demandを使用している場合は、Settings → On Demandで元の条件に戻します。Wi-Fi、モバイル通信、ネットワーク切り替え後のそれぞれで動作を確認してください。一時的な診断モードを最終設定として残さないようにしましょう。
原因を特定できない場合、何を伝えればよいですか?「接続済みなのに開けない」とだけ伝えるのではなく、再現可能な手順として情報を整理してください。サービスのパラメーターや稼働状況はサービス提供元に、アプリ内の設定はモード、設定、接続ログをもとに確認します。情報を外部に送る前に、サブスクリプションのトークン、パスワード、UUID、秘密鍵、その他の認証情報を隠してください。
- テスト環境:端末の種類、システム情報、Wi-Fiまたはモバイル通信の別、基本ネットワークが正常かどうか。
- ルーティングの比較:同じURLがDirect、Proxy、Configでそれぞれ開けたかどうか。
- サーバーの状態:プロトコルのType、接続テストの方法と結果。認証キーは送信しないでください。
- リクエストの記録:発生時刻、個人情報を伏せたエラーメッセージ、適用されたルール、最終ポリシー。
- 変更履歴:最後に正常に使用できた後、サーバーの変更、サブスクリプションの更新、DNSまたは設定の変更があったかどうか。
結論:再現可能な差分で修復を確認
同じネットワーク、同じURLで、ある設定を元に戻すと安定して失敗し、設定を修正すると再び成功する場合に限り、その項目が原因だと判断する根拠になります。一度ページを再読み込みして成功しただけでは、最終的な結論にできません。