自分で利用しているサービスとサブスクリプションがあり、Shadowrocketで接続できるものの、Webページの表示やファイル転送が遅い場合を対象にしています。まず遅延、転送速度、名前解決の待ち時間を区別し、テスト条件をそろえます。そのうえでローカルネットワーク、接続先、経路、プロトコルの順に確認します。1回のテストで変更するのは1項目だけにし、設定を次々と変えるのではなく、再現可能な状況を記録して原因を絞り込みます。
1. 「遅い」の中身を確認する:遅延・転送速度・ページ表示
Shadowrocketの接続スイッチがオンでも、システムのトンネルが開始したことを示すだけで、すべての接続先に正常にアクセスできるとは限りません。Homeでの遅延テストも、継続的な通信速度を測るものではありません。一度のテストが成功しても、その後のパケットロスや混雑、接続先側の速度制限、Webサイトの応答遅延までは判断できません。
まず、どの段階で問題が起きているかを見極めます。リンクをタップしてから表示まで時間がかかる場合、DNSの名前解決、接続確立、TLSハンドシェイクの待ち時間が考えられます。文字はすぐ表示されるのに画像の読み込みが続く場合は、リソースへのリクエストや継続転送が制限されている可能性があります。動画が再生開始後に何度も止まる場合は、数分間の転送速度の変化を確認します。ミリ秒単位の数値ひとつだけで回線品質を判断しないでください。
| 確認できる症状 | 優先して確認する項目 | 比較方法 |
|---|---|---|
| 初回だけ表示が遅い | DNS、接続確立、TLS | 同じページを続けて3回開き、初回と2回目以降の表示を分けて記録する |
| 最初は速いが、その後ずっと遅くなる | 転送速度、混雑、サーバー側の速度制限 | 同じファイルを60秒間続けて転送し、中間時点の速度を記録する |
| 特定のWebサイトだけ遅い | 接続先のサービス、ルーティング結果、接続先からの出口 | 接続先は変えず、普段使っている別の2つの接続先でも確認する |
| すべてのアプリが同時に遅い | ローカルの接続環境、現在の接続先、共通経路 | まずWi-FiとCellularを比較し、次に利用中の接続先を比較する |
単位に注意してください。Mbpsは1秒あたりのメガビット数、MB/sは1秒あたりのメガバイト数です。理論上、80 Mbpsは約10 MB/sに相当しますが、実際にはプロトコルのオーバーヘッドもあります。アプリに表示される8 MB/sと、契約内容にある80 Mbpsをそのまま比べて、10倍の差があると考えないでください。
2. 繰り返し比較できるテスト条件を整える
テストを始める前に、現在の設定を保存し、Homeで選択中の接続先、Global Routingの状態、テスト時のネットワークを記録します。以下の手順では、すでに利用している設定を使います。新しい接続サービスを入手する必要はありません。異なる時間帯のネットワーク負荷を設定の差と取り違えないよう、テストはできるだけ短時間で行います。
-
現在の状態を記録する
Homeで現在の接続先とGlobal Routingを記録し、Configで使用中の設定を確認します。Settings → On Demandで自動接続の条件が設定されているかも確認し、現在の状態だけを記録してください。速度テストのために変更する必要はありません。
-
テスト対象を固定する
普段アクセスできるWebページを1つと、テストが許可されている固定ファイルを1つ選びます。各テストでは同じ対象を使い、クラウド同期、写真のアップロード、その他の大容量通信は一時停止して、帯域を消費しないようにします。
-
ルーティングを確認する
Home → Global Routingで現在の選択を確認します。Configは設定内のルールに従ってリクエストを処理し、Proxyはプロキシ経由、Directは直接接続の状態です。Sceneを使用している場合は、シーン名だけで判断せず、実際に適用されている設定も確認してください。
-
測定を繰り返す
条件ごとに3回、各回約60秒間測定し、中央値を記録します。接続先、プロトコル、ネットワークを同時に切り替えないでください。変更の影響が分かるよう、テストの前に接続先への接続を確立し直し、ブラウザの既存接続やキャッシュによって差が隠れないようにします。
-
元の設定に戻す
一時的な比較が終わったら、Global Routingと設定を元に戻します。On Demandを変更した場合も元の条件に戻し、診断用の設定がその後の利用に影響しないよう、普段使うアプリで確認してください。
3. ローカルネットワークを確認する:Wi-FiとCellularを比較
同じ接続先でWi-Fiでは遅く、Cellularに切り替えると改善する場合、接続ネットワークに関係する変化が考えられますが、ルーターの故障とすぐに断定はできません。2つの接続方式では通信事業者の経路が異なるため、接続ネットワークから接続先までの区間に差がある可能性もあります。まず問題の範囲を絞り、ルーターを確認するか、自分が利用するサービスの事業者に問い合わせるかを判断してください。
- アクセスポイントの近くで再測定:同じiPhoneまたはiPadを使い、ルーターの近くで測定し直します。Wi-Fiの電波アイコンの本数だけでは、電波干渉や再送の状況までは分かりません。壁を隔てると明らかに遅くなる場合は、まずWi-Fiの電波が届きにくい場所での利用を疑ってください。
- 実際の接続先を確認:システムのSettings → Wi-Fiで、接続中のネットワークを確認します。Cellularに切り替えるときは、Wi-Fiが切断されていることも確認してください。Cellularに対応していないiPadでは、正常に使える別のWi-Fiを比較対象にし、接続方式を記録します。
- 共有回線の使用を減らす:ほかのデバイスによる大容量ファイルのアップロードを一時停止します。上り回線が使い切られると、Webのリクエストや転送確認も順番待ちになり、ダウンロードと操作の両方が遅くなることがあります。
- 接続時の制限を確認:Web認証が必要なWi-Fiでは、先に認証を完了させてください。通常のWebサイトもDirectで遅い場合は、プロキシ設定を調べる前に、まず接続ネットワークの問題を解決します。
ネットワークを切り替えたら、以前からダウンロード中のタスクを眺めるのではなく、新しいリクエストを開始してください。既存の接続は、IPアドレスの変更で切断されたり、再試行を待ったりする場合があります。切り替え後にだけ問題が起きる場合は、Shadowrocketを手動で切断してから再接続し、状態を確認できます。On Demandは主に自動接続のタイミングを決めるもので、帯域を増やすスイッチではありません。
4. 接続先と経路を確認する:サーバーと時間帯の違いを切り分ける
ここでいう「接続先」は、Homeに登録されているサーバー接続設定を指します。「経路」はデバイスからそのサーバーへ、さらに接続先のサービスへ至るネットワーク上の道筋です。接続先を変えると出口の場所や経路も変わることが多いため、「別の接続先にすると速い」という結果だけでは、以前のサーバーの性能が低いとは判断できません。
利用中の接続先から2つ選んで比較し、できるだけプロトコル、接続対象、ローカルネットワークを同じ条件にします。1つの接続先だけが継続して遅い場合は、そのサービスの稼働状況、使用量制限、設定変更の有無を確認します。複数の接続先が夜間だけ遅く、日中は改善する場合は、すべての設定をすぐに作り直すのではなく、発生する時間帯を記録してください。共有経路の混雑、入口の負荷、接続先サービスの負荷でも同じ症状が起きることがあります。
| 固定する条件 | 変更する項目 | 測定例 | 判断できること |
|---|---|---|---|
| 同じWi-Fi、同じファイル | 接続先Aから接続先Bに変更 | 0.8 MB/sから5.2 MB/sに変化 | まず2つの接続先とその経路を比較し、ローカルDNSは変更しない |
| 接続先A、同じファイル | Wi-FiからCellularに変更 | 0.8 MB/sから4.6 MB/sに変化 | 接続ネットワークと接続先までの経路を優先して確認する |
| 同じ接続先、同じWi-Fi | 14:00と21:00 | 5.0 MB/sから0.7 MB/sに変化 | 時間帯との関連が考えられる。判断には複数日にわたる再測定が必要 |
自分が利用するサービスの管理画面でも、通信量の上限到達、契約期限、速度制限の有無を確認します。ShadowrocketのData表示とサービス事業者の課金基準は異なる場合があるため、端末上の累計値ひとつだけで管理画面の制限を否定することはできません。利用中のサブスクリプションを更新する必要がある場合は、先に設定を保存し、元の登録先から更新して、選択中の接続先の設定が実際に変わったか確認してください。
5. プロトコルを確認する:まず設定値を照合し、次に通信方式を比較
Homeで現在のサーバーの編集画面を開き、利用中のサービス事業者から提供された設定値とType、アドレス、ポートを照合します。ポート番号だけでプロトコルや速度は決まりません。サーバー側で443が指定されている場合は443を入力し、別のポートがよく使われているからといって独断で変更しないでください。端末側のポートを変更しても、サーバー側で該当するサービスが自動的に利用可能になるわけではありません。
- Shadowsocks:暗号化方式、パスワード、サーバー側で指定された追加設定を確認します。設定値に誤りがある場合、通常は速度が落ちるというより、接続やデータ転送に失敗します。
- VMess / VLESS:UUID、転送方式、TLS設定を確認します。WebSocketを使う場合は、HostとPathもそれぞれ照合してください。UUIDが同じでも、ほかの設定を省略できるとは限りません。
- Trojan:パスワード、TLS、Server Nameを確認します。証明書のドメイン名、サーバーアドレス、転送の入口は異なる値の場合があるため、利用中の設定値に従って入力してください。
- Hysteria2:QUICをベースとした通信方式で、ネットワーク経路が該当するUDP通信に対応している必要があります。サービス事業者から帯域の設定値が指定されている場合は、その案内に従い、推定値を任意に大きくしないでください。
- WireGuard:鍵、Endpoint、サーバー側から提供されたその他の設定値を確認します。MTUを最初に調整する必要はありません。特定サイズのデータで通信が止まるなどの手がかりがある場合に限り、サービス事業者の案内に従って1項目ずつ確認してください。
プロトコルを比較するには、サーバー側がそれぞれの接続方式に対応している必要があります。テストのためにTypeだけをVLESSからTrojanに変更しないでください。両方の接続方式が利用できても、サーバーが異なる場合があり、測定結果の差がプロトコルによるものとは限りません。まず設定値とネットワーク条件を一通り照合してから、プロトコルのオーバーヘッドを検討します。
エラー:i/o timeout
原因と対処:ネットワークの読み書き処理がタイムアウトした状態です。この表示だけでは問題の箇所を特定できません。同じ記録の接続先や前後の状況を確認し、アドレスとポートを照合したうえで、別のローカルネットワークから同じ接続先を試します。
エラー:connection refused
原因と対処:接続先のポートから接続を拒否されています。サービスが待ち受けていないか、中間のネットワーク機器が明示的に拒否している可能性があります。利用中の設定でポートを確認し、自分が利用するサービス事業者に入口の状態を問い合わせてください。速度テストを繰り返しても解決しません。
エラー:certificate verify failed
原因と対処:TLS証明書の検証に失敗しています。原因を判断するには、エラー全体を確認する必要があります。端末の日付と時刻、Server Name、サーバー証明書の状態を確認してください。速度改善のために証明書検証を無効にしないでください。
エラーメッセージの表示元は接続コンポーネントによって異なるため、実際の記録を確認してください。エラーが続く場合は、まず接続失敗として扱います。何度も再試行して待ち時間が長くなった状態を、利用可能な通信速度が低いと誤解しないでください。
6. ルールとDNSを確認する:リクエストの実際の経路を調べる
同じ接続先がProxyでは正常で、Configに戻すと遅くなる場合は、使用中のConfigのルールとDNSの動作を優先して確認します。ルールはリクエストの処理方法を決め、DNSはドメイン名の解決方法を決めるもので、同じ設定ではありません。設定、DNSサーバー、接続先を一度にすべて変更すると、どの変更が影響したのか分からなくなります。
- ルールの適用順を確認:
DOMAIN-SUFFIXはドメインのサフィックスで、IP-CIDRはIPアドレスの範囲で、GEOIPはIPアドレスの地域データベースで照合します。FINALは、それより前のルールに一致しなかったリクエストを処理します。先に一致したルールによって、テスト中の接続先を経由しないことがあります。 - 実際のリクエストを確認:Webページの本文、画像、動画は、それぞれ異なるドメインから配信される場合があります。メインのドメインがプロキシ経由でも、ページ内のすべてのリソースが同じ経路を使うとは限りません。
- 名前解決と転送を区別:初回リクエストの待ち時間が長く、その後の転送は正常な場合は、名前解決とハンドシェイクの段階を確認します。接続確立後も速度が低い場合、DNSの変更だけでは説明できません。
- 元の設定を保存:ルールを変更する前に、元の内容を保存し、対象に関係する項目だけを1つずつ変更します。テストのためにFINALを移動したり、ルール全体を削除したりしないでください。
HTTPSのドメイン名をIPアドレスに置き換えて、一般的な速度テストを行うことはおすすめできません。証明書の検証、TLSのServer Name、仮想ホスト、CDNの経路が変わり、テスト対象が同じではなくなる可能性があります。通常のドメイン名でリクエストし、接続記録から名前解決が完了したか、最終的にどのルールが適用されたかを確認してください。
7. よくある質問と診断のまとめ
遅延が数十ミリ秒なのに、ダウンロードが遅いのはなぜですか?
遅延は短時間の応答を示す指標ですが、ダウンロードには継続的な転送が必要です。接続先とファイルを固定し、60秒間の測定を3回繰り返してください。遅延が安定しているのに転送速度が低い場合は、速度制限、負荷、出口経路を引き続き確認し、遅延の数値だけで判断しないでください。
Proxyに切り替えると速くなります。このまま使い続けてもよいですか?
まずはルールを調べる手がかりとして考えてください。Home → Global Routingでの比較結果を記録し、Configに戻って対象リクエストに一致するルールを確認します。診断後は、普段の使い方に合った状態に戻してください。
ネットワークを切り替えた後に止まりますが、再接続すると直ります。
まず新しいリクエストで確認し、既存の接続が再試行を待っている可能性を除外します。次にSettings → On Demandで自動接続の条件を確認し、手動接続と自動接続の違いを記録してください。再接続を繰り返すことを、常に速度が上がる方法と考えないでください。
利用中の接続先がすべて遅い場合、次にどの情報を伝えればよいですか?
テストした時刻、接続方式、接続先の種類、3回分の測定値、実施した1項目ずつの比較結果を伝えてください。エラー記録を添付する場合は、パスワード、UUID、鍵、サブスクリプションURL内のtokenを隠し、自分が利用するサービス事業者に稼働状況を確認します。
診断が終わったら、「同じ接続先、同じ対象で、Wi-Fiでは3回とも低速、Cellularでは改善」のように、再現できる条件をまとめます。「Shadowrocketが遅い」とだけ記録するのは避けてください。特定の対象だけに問題がある場合は、その対象と出口の関係を確認します。すべての対象に問題がある場合は、共通する接続ネットワークや接続先までの経路を調べます。比較結果がそろう前に原因を決めつけないでください。