Shadowrocketの通信速度が遅いときの対処法|ノード・回線・プロトコル・ローカルネットワークを順に確認

Shadowrocketの速度が遅いときは、ローカルネットワーク、プロトコル設定、回線品質、ノード負荷の順に確認します。Connectivity Testの結果の見方も解説します。

この記事の概要

Shadowrocketの接続後に速度が落ちた場合は、ローカルネットワークの混雑、接続設定の誤り、ネットワーク間の経路変動、接続先ノードの負荷を切り分けます。自分で用意した設定を使っている方を対象に、接続先とノードを固定し、一度に一項目だけ変更して比較する手順を紹介します。Connectivity Testで確認できることや、アプリ側の変更を止めて利用中のサービス提供元へ調査記録を送るタイミングも説明します。

まず「遅い」の内容を整理する:接続待ちと継続通信を分けて記録

ページが長時間真っ白になる、画像が一枚ずつ表示される、再生開始後に何度もバッファリングする、といった症状は、それぞれ名前解決、接続確立、継続的なデータ転送に関係する可能性があります。「接続済み」と表示されているだけでは、通信経路が正常とは判断できません。システムのトンネル確立に成功しても、接続先ノードや目的のWebサイトが利用可能とは限りません。普段アクセスできるWebページと、繰り返し読み込めるファイルを一つずつ決め、以降は同じ接続先で比較してください。

ローカルネットワーク 名前解決とルーティング プロトコル接続 リモートノード 接続先サービス

約30秒間隔で3回続けて確認し、ネットワークの種類、選択中のノード、Global Routing、発生した症状を記録します。以下の数値は記録方法の例であり、製品の実測値や性能基準ではありません。「最初のコンテンツ表示まで2秒、5秒、3秒」のように記録すると、「ときどき遅い」よりも状況を再現しやすくなります。繰り返しテストすると通信量が増えるため、モバイル通信ではファイルサイズに注意してください。

第1段階:ローカルネットワークとルーティング設定を確認

ローカルネットワークには、デバイスとルーター間のWi-Fi接続、ルーターのインターネット接続、現在利用中のネットワークが含まれます。ルーターから離れている、同じネットワークで大容量の通信が行われている、ゲストネットワークの認証が完了していない、といった状況では、リモートノードの速度が遅く見えることがあります。まずノードと設定を変えずに接続ネットワークを切り替え、問題がローカル側にあるかを確認します。

  1. 基準を記録する

    Homeで選択中のノードとGlobal Routingの設定を記録し、決めたWebページの読み込み状況も記録します。まずはサブスクリプションを更新したり、複数の設定を同時に変えたりしないでください。

  2. ルーティングを確認する

    Home → Global Routingを開きます。Configは現在の設定ルールに従って通信を処理します。Proxyは全体をプロキシ経由にする設定、Directは直接接続する設定です。Sceneはシーン設定に関わるため、固定の速度測定モードとして扱わないでください。

  3. Directで比較する

    直接接続が許可されている一般的な接続先では、一時的にDirectにして比較できます。リクエストの経路が変わるため、機密性の高い通信を先に一時停止し、比較後は元の設定に戻してください。Directでも遅い場合は、まずローカルネットワークを確認します。

  4. 接続ネットワークを切り替える

    可能であれば、同じデバイスとノードを使い、Wi-Fiとモバイル通信それぞれで接続し直して、同じ接続先をテストします。ネットワークの切り替えと同時にノードを変更しないでください。

  5. On Demandを確認する

    切断後に自動で再接続する場合は、Settings → On Demandを確認します。一時的に無効にする必要があるときは、先に元の設定を記録し、比較が終わったら戻してください。On Demandは必要に応じて接続する機能であり、通信速度を上げる設定ではありません。

特定のWi-Fi環境だけで遅く、同じ設定がモバイル通信では正常なら、Wi-Fiの電波状況、ルーターの負荷、そのネットワークの制限を優先して確認します。どちらの接続でも遅い場合も、すぐにノードの問題と決めつけず、プロトコルと実際のルーティングを確認してください。Directとプロキシでは通信経路が異なります。Directのほうが速くても、別の経路で接続できたことを示すだけで、混雑箇所を特定する根拠にはなりません。

第2段階:プロトコル設定を照合し、MTUやポートをむやみに変更しない

Homeから使用中のノードの編集画面を開き、サービス提供元から受け取った元の設定と項目ごとに照合します。Server、Port、認証情報、通信方式、TLS関連の設定は一式で一致している必要があります。Portはサーバー側の待ち受け設定です。元の設定が443でも、すべてのノードを443に変更すべきという意味ではありません。一般的なポート番号であっても、サーバーがそのポートで同じプロトコルを提供しているとは限りません。

プロトコルまたは設定確認するポイントよくある誤解
ShadowsocksServer、Port、パスワード、暗号化方式が同じサーバー設定に対応していることを確認します。暗号化方式だけを変更しても、サーバー設定との不一致は解消されません。
VMess / VLESS認証情報、通信方式に加え、設定で指定されたHost、Path、TLSの各項目を確認します。ポートに接続できても、トランスポート層の接続や認証が成功したとは限りません。
Trojanパスワード、サーバー名、証明書検証に必要な情報を確認します。証明書エラーを、検証を無効にして速度を改善する方法で対処しないでください。
Hysteria2認証情報とポートを確認し、現在のネットワークで必要なUDP通信が許可されているかも確認します。TCPベースの接続が使えても、UDP経路が正常とは限りません。
WireGuard鍵、Endpoint、トンネルアドレス、AllowedIPs、元の設定のMTUを確認します。トンネルのハンドシェイクが成功しても、すべての宛先アドレスが正しくルーティングされているとは限りません。

小さなWebページは開けるのに、大きな応答や長時間の接続が止まりやすい場合は、Path MTUの問題も候補になります。ただし、パケットロス、サーバー側の速度制限、接続先の問題でも同じ症状が起こります。まず元の設定のMTUに戻して控えを保存してください。適用可能な推奨値を確認できた場合に限り、一度に一項目だけ変更します。MTUの単位はバイトであり、通信速度ではありません。値を大きくしても小さくしても、それだけで速度が上がるとは限りません。

Connectivity Test:到達性と通信速度は別の指標

Home → Connectivity Testでテストを実行し、ネットワークの種類、選択中のノード、Global Routing、現在の設定での結果を記録します。テストで使われる方式や接続先は、アプリ内の現在の設定を確認してください。表示されるミリ秒数は、そのテスト条件での応答時間です。ファイル転送速度ではなく、動画の画質に直接換算できる数値でもありません。

Configでは、設定内のルール順とポリシーに従ってリクエストが処理されます。現在有効なConfigファイルを確認し、DOMAIN-SUFFIX、GEOIP、IP-CIDR、FINALに注意してください。ドメインルールとアドレスルールでは判定条件が異なり、FINALはそれ以前のルールに一致しなかった場合のフォールバックです。Homeで選択中のノードだけを変えても、すでにDIRECTや別のポリシーに一致したリクエストの経路は変わらないことがあります。一時的にProxyで比較した後は、元のルーティング設定に戻してリクエストを再送し、既存の接続が使い回されないようにしてください。

第3・第4段階:回線の変動とノード負荷を切り分ける

回線品質は、デバイスから接続ネットワークを経てリモート側へ至る経路の状態を指します。ノード負荷は、リモートサービスが接続やデータ転送を処理する能力に関係します。通常、クライアント上で遅延値を一つ見るだけでは、両者を完全に切り分けられません。症状から原因を断定するのではなく、条件を比較して範囲を絞り込み、再現可能な記録を利用中のサービス提供元に共有します。

固定する条件観察された結果考えられること
同じノード、同じ接続先で、接続ネットワークだけを変更特定の接続ネットワークでのみ継続的に遅くなる。そのネットワークとノードまでの経路を優先して確認します。リモート側全体の障害と断定することはできません。
同じネットワーク、同じ接続先で、既存の設定にあるノードを変更一つのノードだけが明らかに遅い。そのノード、またはノードまでの経路を詳しく調べる必要があります。
同じ設定とネットワークで、時間帯を変えて繰り返す決まった混雑時間帯に遅くなり、それ以外の時間帯には改善する。輻輳や容量制限の可能性を記録します。時間帯だけで混雑箇所を特定することはできません。
同じノードとネットワークで、接続先を変更特定の接続先だけが遅い。接続先サービス、接続先側の制限、ノードから接続先までの経路を確認します。

比較には、自分がすでに持っている、利用を許可された設定だけを使ってください。調査のために新たなサービスを探す必要はありません。記録を送る際は、テスト日時とタイムゾーン、接続の種類、ノードのメモ、プロトコル、接続先の種類、3回分の結果を記載します。外部に共有する前に、パスワード、PrivateKey、サブスクリプションURL全体、認証情報を含むリンクを削除してください。スクリーンショット上の情報も隠します。アプリの買い切り購入と回線サービスは別であり、アプリの購入にリモート回線の容量は含まれません。

ログにエラーがある場合:原文から失敗した段階を特定する

以下はネットワークログに現れることがある一般的なエラー表記です。すべての障害で表示されるわけではなく、画面に必ず表示される固定メッセージでもありません。まず実際のエラー全文を保存し、同じ時刻付近のリクエスト記録を確認してください。エラー文は失敗した段階を特定する手がかりであり、ネットワークや設定を比較せずに原因を断定するものではありません。

エラー:connection refused

原因:接続先、または経路上の機器によって接続が明示的に拒否されています。アドレス、待ち受けポート、サービスの稼働状況を確認してください。

対処:現在のノードのServerとPortが元の設定と一致しているか確認し、該当ポートで正常にサービスが提供されているか、利用中のサービス提供元に問い合わせてください。

エラー:i/o timeout

原因:ネットワークの読み込みまたは書き込みが制限時間内に完了していません。パケットロス、経路への到達不能、リモート側の応答遅延などが原因になります。

対処:ノードを変えずに接続ネットワークを切り替えて再テストし、タイムアウト前後の接続先と時刻を記録します。待ち時間を延ばすことは、通信速度の改善にはなりません。

エラー:certificate has expired or is not yet valid

原因:証明書の有効期間、またはデバイスの日付と時刻が検証条件を満たしていません。安全な接続の検証段階で失敗しています。

対処:まずシステムの日付と時刻を確認し、利用中のサービス提供元に証明書の有効期間を調べてもらいます。証明書検証は有効のままにし、検証の省略で問題を回避しないでください。

よくある質問:設定変更を続けるとき、いったん止めるとき

遅延が数十ミリ秒なのに、動画がバッファリングするのはなぜですか?

遅延は短いリクエストへの応答時間であり、継続して利用できる帯域幅を示すものではありません。Homeで選択中のノードとGlobal Routingを変えず、同じファイルで安定した転送速度を確認してから、接続先を変えて比較します。動画サービスだけが遅い場合は、プロトコルを変更する前に接続先側の状態と実際のルーティングを確認してください。

ノードを変更しても、結果がほとんど変わらないのはなぜですか?

まずHome → Global RoutingでConfigが選択されているか確認し、次にConfigで現在のルールと適用ポリシーを調べます。リクエストがDIRECT、固定ポリシー、または既存の長時間接続を使っている可能性があります。テスト通信が新しいノードを経由していると確認してから、リクエストを再送してください。

Wi-Fiを切り替えた後に遅くなりました。設定をすべて作り直す必要がありますか?

まず作り直す必要はありません。新しいネットワークがインターネットに接続できることを確認し、通信中の転送を停止してから接続を切断・再確立し、同じ接続先を再テストします。システムが再び自動接続する場合はSettings → On Demandの元の条件を確認し、ネットワーク切り替え後だけ問題が起きるか記録してください。

すべての項目が一致しているのに遅い場合、ほかにどの値を変更すればよいですか?

値を手当たり次第に変更するのはやめてください。基準となる設定に戻し、3回分の結果とネットワークを切り替えた比較結果を保存して、機密情報を除いた記録を利用中のサービス提供元に送ります。リモート側の容量、ネットワーク間の経路、接続先サービスの状態は、クライアントの設定項目を変更するだけでは特定も解決もできません。

確認が終わったら、Global Routing、On Demand、一時的に変更した設定を元に戻してください。正常にアクセスできたときの記録を保存しておくと、次に問題が起きた際にすぐ比較できます。Shadowrocketは主にiPhoneとiPad向けです。MacなどAppleプラットフォームでの互換性とシステム要件は、App Storeの掲載内容をご確認ください。デバイスごとにWi-Fi環境やテスト条件が異なるため、結果は分けて記録してください。

App Storeで正規アプリを確認入手と購入について