Shadowrocketで「接続済み」と表示されても、すべてのリクエストが宛先に届いているとは限りません。利用中のサービスとサブスクリプションがあり、接続はできるもののWebページや動画の読み込みが遅い場合を対象に、まずテスト条件をそろえます。そのうえで端末側のネットワーク、プロトコル設定、ネットワーク間の経路、サーバー負荷を順に切り分け、PingとLogで後から確認できる情報を記録します。
1. テスト条件をそろえ、遅延と通信速度を分けて確認する
「遅い」状態には、操作後の応答がなかなか返らない、読み込み開始後も進みが遅い、接続速度が安定しない、という少なくとも3つのパターンがあります。最初のケースではDNSの名前解決やハンドシェイク、次のケースでは利用可能な帯域や混雑、最後のケースではネットワークの切り替えやパケットロス、サーバー負荷が関係している可能性があります。ステータスバーのVPN表示だけでは、これらを区別できません。
テスト前にHome(ホーム)で選択中のサーバーと、Global Routing(グローバルルーティング)の現在の設定を記録します。サブスクリプションの更新、プロトコルの切り替え、DNSの変更を同時に行うと、速度が改善しても原因を特定できません。以下のテスト回数は切り分けの目安であり、アプリの初期設定ではありません。
- アクセスできることが確認済みのWebページと、再生位置を固定した動画を1つずつ選び、最初の応答と読み込み中の速度をそれぞれ確認します。調査中は同じ対象を使い続けてください。
- 写真の同期、システムアップデートなど、大容量通信を伴う処理を一時停止し、端末の位置と接続ネットワークを変えずにテストします。
- 各条件で3回ずつ確認し、ネットワークの種類、サーバーのメモ、テスト時刻、発生した症状を記録します。最速だった結果だけを残さないでください。
- 一度に変更する条件は1つだけにします。比較が終わったら元のルーティングと設定に戻してから、次のテストを行います。
2. 端末側のネットワーク:Wi-Fiとモバイル通信を比較する
最初に、iPhoneまたはiPadからローカルネットワークの出口までを確認します。Wi-Fiの電波が強くても、ルーターの回線が混雑していないとは限りません。同じサーバーでもモバイル通信では正常で、特定のWi-Fiでは遅い場合、そのネットワーク、またはネットワークからサーバーまでの経路に差がある可能性があります。すぐにサーバー側の障害と判断しないでください。
- まず現在のWi-Fiで、普段から直接アクセスできるページを開き、ネットワーク自体に大きな遅延がないか確認します。Shadowrocketを一時的に切断してテストする場合は、直接アクセスに適したコンテンツだけを開いてください。
- Settings → On Demand(オンデマンド接続)を開き、現在の条件を記録します。初期値はアプリに表示されている内容を確認してください。手動切断との比較に影響する場合は、このテスト中だけ一時的に無効にし、終了後に元の設定へ戻します。
- 同じサーバーと設定を維持したままWi-Fiをオフにし、利用可能なモバイル通信で再テストします。データ通信量に注意してください。
- Wi-Fiだけで問題が起きる場合は、ルーターに近づいて再テストし、同じネットワークで大容量通信が行われていないか確認します。最初からすべてのプロトコル設定を変更しないでください。
ポート番号は経路を調べる手がかりであり、速度を上げるための設定ではありません。サービス提供元が指定したプロキシのポートを任意に443へ変更したり、すべてのDNSリクエストがポート53を使うと考えたりすると、新たな接続問題につながることがあります。
3. プロトコル設定:元の設定を照合し、名称だけで速度を判断しない
2つ目に、クライアントに登録された情報がサーバーの要件と一致しているか確認します。ShadowrocketのShadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardは、それぞれプロトコルや設定項目が異なります。名称を変えるだけで切り替えられる速度設定ではありません。サブスクリプションを利用している場合は、まずサービス提供元から案内された有効な設定と照合してください。
| プロトコルまたは項目 | 確認する内容 | この情報だけでは判断できないこと |
|---|---|---|
| Shadowsocks | サーバーアドレス、ポート、パスワード、暗号化方式が一致しているか。 | ポートに接続できても、認証やその後の転送が成功するとは限りません。 |
| VMess / VLESS | 認証情報、転送方式、設定で実際に有効になっているTLS関連項目と転送項目。 | アドレスとポートだけを残し、ほかの必須項目を省略できるとは限りません。 |
| Trojan | パスワード、TLSの要件、サーバー名がサーバー側の設定に合っているか。 | 証明書の検証を無効にすることを、通常の速度改善策にしないでください。 |
| Hysteria2 | 認証情報、TLSの要件、現在の経路でUDPが利用できるか。 | QUICを利用していても、あらゆるネットワークで速くなるわけではありません。 |
| WireGuard | 鍵、エンドポイント、アドレス、ルーティング範囲が既存の設定と一致しているか。 | ハンドシェイクが確認できても、DNSや宛先へのルーティングが正しいとは限りません。 |
これらの項目に、すべてのサーバーに共通する推奨値はありません。初期値はアプリの表示を確認し、接続パラメータは利用中のサーバー設定に従ってください。サブスクリプションの更新後に問題が起きた場合は、更新前後のアドレス、ポート、転送項目の変更を記録し、利用中のサービス提供元に確認します。元の設定を削除して何度もインポートすると比較条件を失うため、避けてください。
ポイント:まず設定の一致を確認し、その後でプロトコルの動作を比較する
ある設定でハンドシェイクの段階から繰り返し失敗する場合は、認証、TLS、転送の設定を先に確認します。2つの設定で同じリクエストが安定して完了することを確認してから、速度を比較してください。
4. 回線品質:Pingと実際のリクエストを分けて確認する
3つ目に、端末側のネットワークからサーバーまで、およびサーバーから宛先までの経路を確認します。アプリ内のPing(遅延テスト)は、測定方法を踏まえて判断してください。ICMP応答、TCP接続、プロキシ経由でWebページを開く操作では、測定している内容が異なります。サーバーがICMPに応答しなくても、プロキシサービスが使えないとは限りません。
遅延が小さいことは、特定の測定で往復時間が短かったことを示すだけで、継続的な通信に十分な帯域があるとは限りません。Pingが正常でも動画が途切れる場合は、実際のデータ転送と時間帯による違いも確認してください。1回のタイムアウトから回線全体のパケットロス率を推定しないでください。
- Pingは速いのに、Webページの初回応答が遅い:LogでDNSの待ち時間、接続の再試行、TLSエラーがないか確認し、リクエストに実際に適用されたルーティングも照合します。
- 初回応答は速いのに、読み込みが遅い:同じ対象で再テストし、端末側の帯域使用状況、回線の混雑、サーバー側の速度制限の可能性を確認します。
- 特定のネットワークでだけ同じサーバーが遅い:まずWi-Fiとモバイル通信の比較結果を記録し、接続経路の違いを切り分けます。
- 特定のWebサイトだけ遅い:正常に表示される別のサイトと比較します。対象サイト、コンテンツ配信経路、サーバーの出口が影響している可能性があります。
「距離が近いから速い」とは限りません。地理的な距離、通信事業者間の接続、回線の混雑、対象サイトが選ぶコンテンツ配信拠点はそれぞれ異なる要因です。同じ条件でのリクエスト結果を比べて判断してください。
5. サーバー負荷:リクエストが選択中のサーバーを通っているか確認する
4つ目に、利用中のサーバー側の応答を比較します。Home → Global Routingを開き、まず現在の設定を記録してください。Config(ルールに基づく振り分け)、Proxy(プロキシ)、Direct(直接接続)、Scene(シーン)はそれぞれ意味が異なります。初期値はアプリの表示を確認してください。通常の設定は既存の構成に従い、比較のため一時的にProxyを使う場合はテスト後に元へ戻します。
Configでは、サーバーを選択しただけで、すべてのリクエストがそのサーバーを通るとは限りません。DOMAIN-SUFFIXはドメインの末尾、IP-CIDRはIPアドレスの範囲、GEOIPはIPアドレスの地理情報に基づいて照合され、FINALは最後のルールとして適用されます。実際の結果はルールの順序やポリシーにも左右されます。Sceneは既存のシーン設定と照合してください。固定のプロキシポリシーとして扱うことはできません。
- 同じ宛先に新しいリクエストを1回送信し、Logで適用されたポリシー、アウトバウンド、関連する接続記録を確認します。項目名はアプリの表示に従ってください。
- リクエストがDirectを通っていた場合は、まずルーティングの原因を確認します。その速度を選択中のプロキシサーバーの性能として判断しないでください。
- 利用可能なサーバーが複数ある場合は、宛先、接続ネットワーク、ルーティング設定を変えずに、サーバーだけ切り替えて比較します。
- 時間帯を変えて同じテストを繰り返します。ピーク時だけ遅くなる場合は混雑や負荷が関係している可能性がありますが、クライアント側の結果だけでサーバーのCPU使用率、同時接続数、速度制限を確認することはできません。
6. Logのエラー:キーワードから速度を推測せず、発生した段階ごとに確認する
アプリ内のLog(ログ。表示場所や記録内容はアプリのバージョンにより異なる場合があります)を開き、遅い、または失敗するリクエストを1回再現します。その後、発生時刻の前後にある記録だけを確認してください。以下はネットワークログでよく見られる英語のエラーテキストです。先頭の表示、大小文字、前後の文脈は異なることがあり、どの障害でも必ず表示される固定メッセージではありません。
エラー:i/o timeout
原因:ネットワーク処理が制限時間内に完了しなかったことを示します。この行だけでは、DNS、接続確立、その後の読み書きのどの段階で発生したか区別できません。
対処:前後のログから宛先と処理段階を確認します。同じサーバーのまま接続ネットワークを切り替えて再テストし、サーバー側の確認が必要か判断してください。
エラー:connection refused
原因:接続が明示的に拒否されています。宛先のポートでサービスが待ち受けていない、またはネットワーク機器が接続を拒否している可能性があります。
対処:サーバーアドレスとポートが現在の設定と一致しているか確認し、該当ポートのサービス状態を利用中のサービス提供元に問い合わせてください。
エラー:certificate has expired or is not yet valid
原因:証明書の有効期間の検証に失敗しています。証明書の状態、または端末の時刻が正しくない可能性があります。
対処:まず端末の日付と時刻を確認します。時刻が正しい場合はサーバー証明書を確認し、検証を無効にして問題を隠さないでください。
- ログのエラーがサブスクリプションの更新先を示している場合、それは更新処理の異常を示すだけで、インポート済みサーバーの通信速度に問題があるとは限りません。
- ログを外部に共有する前に、サブスクリプションの認証情報、パスワード、鍵、不要なアクセス記録を隠してください。時刻、エラーが起きた段階、比較条件は残します。
- 証拠を確認する代わりに、何度も長時間再接続しないでください。繰り返し試すと接続状態が変わる一方、最初にどの段階で待たされたのか分からなくなることがあります。
7. よくある質問と設定の復元
Pingは数十ミリ秒なのに、動画がずっとバッファリングするのはなぜですか?
Pingは通信量を測定するテストではありません。動画の再生位置を固定し、同じサーバーを使ってWi-Fiとモバイル通信で読み込みを比較します。そのうえでLogを確認し、対象のリクエストが実際に選択したアウトバウンドを通っているか確認してください。
Proxyにすると正常なのに、Configに戻すと遅くなります。どう確認すればよいですか?
まずConfigのまま同じ宛先へのリクエストを再現し、適用されたルールとポリシーを確認します。次にConfig(設定)で関連ルールの順序を確認してください。DOMAIN-SUFFIX、IP-CIDR、GEOIP、FINALがそのリクエストをどう処理するかを重点的に調べます。設定全体を恒常的にグローバルプロキシへ変更しないでください。
プロトコルを変更すれば必ず速くなりますか?
いいえ。利用中のサーバーが該当プロトコルに対応し、必要なパラメータがそろい、必要な通信方式が経路上で利用できる場合にのみ比較できます。まず接続とリクエストが安定することを確認し、同じ宛先、同じネットワークで比較してください。
確認後、どの設定を元に戻せばよいですか?
テスト前に記録したGlobal Routing、Settings → On Demandの条件、一時的に変更した設定を元に戻し、元の宛先に再度アクセスして確認します。有効だった個別の修正は残しつつ、テスト用の一時的な設定を普段の初期設定にしないでください。
一連の確認を終えたら、「どのネットワークで、どのサーバーを使い、どのルーティング設定で、どの宛先の、どの段階に待ち時間が発生したか」を説明できる状態を目指します。条件がそろっていないままDNS、ポート、プロトコルを変更すると、原因の切り分けが難しくなります。比較記録を整えてから、特定できた箇所に対処してください。