Shadowrocketのノードの選び方|遅延テスト・地域・プロトコルの確認方法

利用中のサブスクリプションからサーバーを選ぶ際は、遅延テストの結果、地域、プロトコルを確認しましょう。遅延値はハンドシェイクの往復時間を示すもので、Webページや動画の実際の読み込み速度とは異なります。

この記事の概要

この記事では、iPhoneまたはiPadのShadowrocketに自分のサブスクリプションを追加済みの方を対象に、テスト条件をそろえて接続可能なサーバーを絞り込み、地域・プロトコル・実際のアクセス結果を確認する方法を説明します。読み終えると、低遅延、目的のサイトへの到達性、継続的な通信という3つの指標を区別し、決まった手順でタイムアウトの原因を調べられます。

テスト対象を確認し、遅延値だけで判断しない

Home(ホーム)の一覧に表示されるサーバーは、ノードとも呼ばれます。横に表示されるミリ秒の値は、特定の条件で行ったテスト結果であり、回線全体の総合評価ではありません。値が小さい場合にわかるのは、そのテストで計測した通信の所要時間が短かったことだけです。利用可能な帯域幅、長時間のパケット損失率、アクセス先サイトの応答速度は測定されていません。

まず、Connectivity Test(接続テスト)の方式を確認します。サーバーのポートへの接続だけを測る場合、主にデバイスから接続先までのハンドシェイク時間が反映されます。プロキシ経由でテスト先にリクエストを送る方式では、プロキシのネゴシエーション、DNS解決、サーバーの出口、接続先の応答時間も含まれることがあります。ICMP(インターネット制御メッセージプロトコル)による測定は、プロキシのハンドシェイクとは別のものです。方式の異なる結果を同じ基準で並べてはいけません。

ms
ミリ秒:遅延を表す時間の単位。通信速度ではありません
443
HTTPSの標準ポート。サーバーが必ずこのポートを使うという意味ではありません
4種類
Global Routing:Proxy / Direct / Config / Scene

たとえば、HTTPS(ハイパーテキスト転送プロトコルセキュア)のテスト先には通常443番ポートを使いますが、プロキシサーバーにはサービス提供元が設定した別のポートを使う場合があります。テストに失敗したら、接続先のアドレスとサーバーのポートを分けて確認してください。どちらも443に変更するのは誤りです。この記事ではリアルタイムの測定結果を掲載せず、遅延の固定値を基準に回線の利用可否を判定することもありません。

条件をそろえてテストし、デフォルトサーバーを選ぶ

テストを始める前に、大容量の通信を行うほかのタスクを停止します。同じWi-Fiまたはモバイル通信、同じテスト方式、同じ接続先を使ってください。一度に変更する条件を1つに絞ると、差がサーバーとローカルネットワークのどちらに起因するか判断しやすくなります。利用中のサブスクリプションに変更があった場合は、更新を済ませてから一覧のサーバーを比較してください。

  1. 既存の設定を確認する

    Home(ホーム)を開き、自分のサブスクリプショングループとサーバーが表示されていることを確認します。既存のサブスクリプションを追加し直す場合は、右上の「+」をタップし、Type(タイプ)でSubscribe(サブスクリプション)を選び、自分のサブスクリプションURLを入力して保存します。サブスクリプションURLを公開の記録や投稿に載せないでください。

  2. テスト条件をそろえる

    Home(ホーム)からConnectivity Test(接続テスト)の方式設定を開き、現在の選択内容を記録します。テスト先を設定できる場合は、そのアドレスも記録してください。一連の絞り込みでは同じ設定を使い、方式の異なる結果をまとめて順位付けしないでください。

  3. テストを繰り返す

    サーバー一覧から遅延テストを実行し、候補ごとに最低3回繰り返します。毎回結果が表示されるか、タイムアウトが繰り返されるかを記録してください。最小値だけを残すのは避けましょう。たまに低い値が出ても、ほかの回でタイムアウトするサーバーを安定しているとは判断できません。

  4. デフォルトのサーバーを選ぶ

    Home(ホーム)に戻り、候補サーバーの左側にある選択用の丸印をタップして、選択状態が移ったことを確認します。接続スイッチをオンにし、初回接続時はシステムの案内に従ってVPN構成の追加を許可してください。サーバーの編集画面を開いただけでは、デフォルトサーバーの選択は完了していません。

  5. 接続先へのアクセスを確認する

    Home → Global Routing(グローバルルーティング)で現在のモードを確認し、実際に使うWebサイトを開いて何度か再読み込みします。その後、短時間の連続再生またはダウンロードも試します。テストが終わったら元のルーティングモードに戻し、診断用の設定を普段の設定として使わないようにしてください。

地域は出口の用途で確認し、名称から速度を推測しない

サーバー名に含まれる地域名はサービス提供元による説明であり、接続元の入口、出口、実際の通信経路を証明するものではありません。デバイスが最初に接続する入口と、最終的にWebサイトへアクセスする出口は、異なる地域にある場合があります。地理的に近くてもネットワーク上で遠回りすることがあり、遅延が低いとは限りません。

接続先のWebサイトに地域条件がある場合は、まずサービス提供元の案内で出口の地域を確認し、次にWebサイト上で実際に利用できるかを確認します。アカウントの地域、位置情報の権限、キャッシュ、Webサイト独自の方針も結果に影響することがあります。サーバー名に地域名が含まれていても、その地域向けのコンテンツに必ずアクセスできるわけではありません。

アクセス目的に応じて分けて絞り込む

通常のWeb閲覧
  • テストを繰り返してタイムアウトするサーバーを先に除外します。
  • 接続先を固定し、初回と再読み込み時の表示を確認します。
  • 連続してアクセスできることを確認してから、遅延を比較します。
地域条件のあるアクセス
  • 利用中のサービスについて、出口地域の案内を確認します。
  • 接続先への通信が、選択したサーバーを実際に経由しているか確認します。
  • 接続先に表示される地域情報やエラーメッセージを記録します。

地域は用途に応じた絞り込みに、遅延は同じ条件での応答比較に使います。どちらも実際のアクセス確認の代わりにはなりません。

パラメーターとネットワーク条件からプロトコルを確認する

Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardはそれぞれ異なるプロトコルであり、速度のランキングではありません。同じプロトコルでも、サーバーの負荷、入口までの回線、出口のルーティング、通信設定によって結果は異なります。サービス提供元が指定したプロトコルと関連項目を維持したうえで、現在のネットワークがその通信方式に対応しているかテストしてください。

速度を上げるために、Type(タイプ)を別のプロトコルへ変更しないでください。サーバー側がそのプロトコルに対応している必要があり、認証情報も一致していなければなりません。ドメイン、ポート、パスワード、UUID(汎用一意識別子)、TLS(トランスポート層セキュリティ)、通信経路は元の設定に従い、サーバー名から推測して変更しないでください。

認証情報と通信方式を分けて確認する

Shadowsocks
サーバー、ポート、暗号化方式、パスワードを確認します。方式が一致しないと接続に失敗します。
VMess / VLESS
UUIDを確認し、設定に含まれる通信方式、TLS、ホスト名などの項目も照合します。
Trojan
パスワードとTLS関連の設定を確認し、証明書に対応するサーバー名にも注意します。

プロトコル名が同じでも、設定項目を相互に流用できるとは限りません。サブスクリプション更新後の設定は、まずサービス提供元の案内と照合してください。

UDPの利用条件を個別に確認する

Hysteria2
QUIC(クイックUDPインターネット接続)をベースとし、経路上で該当するUDP通信が許可されている必要があります。
WireGuard
UDP通信を使用するため、鍵、接続先アドレス、関連するネットワークパラメーターを一致させる必要があります。
TCPの疎通確認
TCPポートのテスト結果だけで、UDPプロトコルが実際に利用できるかを判断することはできません。

ネットワークの制限やサーバー側の設定がタイムアウトの原因になる場合があります。ネットワークを切り替えて再テストする際は、サーバー設定を同じにしてください。

UDP(ユーザーデータグラムプロトコル)を使う接続では、あるネットワークで通常のWebページを開けても、必要なUDP通信が許可されているとは限りません。逆に、特定ポートのテストに応答がなくても、プロキシ接続全体が失敗しているとは限りません。プロトコルを使った実際の接続、接続先へのアクセス、エラーメッセージを合わせて判断してください。

Global Routingを確認し、通信経路の取り違えを防ぐ

デフォルトサーバーを選択しても、接続先への通信が必ずそのサーバーを経由するとは限りません。Home → Global Routing(グローバルルーティング)でルーティングの方式を確認します。特にConfig(設定)モードでは、ルールによって特定のWebサイトを直接接続にしたり、指定したポリシーに振り分けたりできます。「サーバーを変えてもWebページが変わらない」場合は、まず実際に適用されているルートを確認してください。

以下はルーティングを理解するための例で、既存の設定全体を置き換える必要はありません。DOMAIN-SUFFIX(ドメインサフィックス一致)で例のドメインをPROXY(プロキシポリシー)に振り分け、FINAL(最終ルール)でほかのルールに一致しない通信をDIRECT(直接接続ポリシー)にします。例のドメインは説明用です。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

現在の設定にGEOIP(IPの地理的位置判定)やIP-CIDR(IPアドレス範囲の一致)が含まれる場合は、それらの順序とポリシーも確認してください。テスト対象のWebサイトが先にあるルールに一致すると、後続のルールはその通信の判定に影響しません。原因を調べるときは、モード、現在有効なConfig(設定ファイル)、接続先に適用されるルールの順に確認してください。

応答、変動、継続通信を分けて記録する

Webページの表示が遅くても、サーバーとのハンドシェイクが遅いとは限りません。アクセスではDNS(ドメインネームシステム)による名前解決、TLSハンドシェイク、リダイレクト、複数のリソース読み込みが発生する場合があります。動画再生では、継続的なスループットやバッファリングの状態も重要です。少量のデータでテストに成功しても、大容量通信で混雑しないとは限りません。

よくある状況:まず確認すること

遅延は低いのに、Webページが開かないのはなぜ?

まずHome → Global Routing(グローバルルーティング)でモードを確認し、Webページへの通信が現在のサーバーを経由しているか調べます。ハンドシェイクテストが正常でも接続先へアクセスできない場合は、DNS、接続先の応答、認証パラメーター、出口の状態を確認してください。遅延値が低いだけで、これらの問題を除外しないでください。

すべてのサーバーがタイムアウトする場合、ポートを一つずつ変更すべき?

まず元の設定を維持し、デバイスの基本ネットワークで通常のWebページにアクセスできることを確認します。次にConnectivity Test(接続テスト)の方式とテスト先を確認してください。同じ候補サーバーを使い、Wi-Fiとモバイル通信を切り替えて再テストします。特定のネットワークだけで失敗する場合は、そのネットワークの制限を優先して調べ、サービス提供元が指定したポートを一括変更しないでください。

サブスクリプションの更新後、選んだサーバーが見つからない場合は?

Home(ホーム)に戻り、サブスクリプショングループを確認して、サーバー名が変更または削除されていないか調べます。更新後は、左側の選択用の丸印と実際に接続している項目を確認し直してください。更新に失敗した場合は、サブスクリプションURLが有効か確認します。エラーメッセージは利用中のサービス提供元に確認し、記録を共有する際はURL内のアクセストークンを隠してください。

接続をオフにしても自動でオンになる場合、テストを続けるには?

Settings → On Demand(設定 → オンデマンド)を開き、現在の自動接続条件を確認します。手動で比較テストを行う場合は、該当する条件を一時的に無効にしてからHomeに戻り、接続スイッチを操作します。終了後は元の設定に戻してください。自動再接続は接続を開始する動作であり、サーバー切り替えの失敗と混同しないでください。

認証情報を含まないテスト記録を残します。現在のネットワーク、選択したサーバー名、プロトコル、テスト方式、タイムアウトの有無、接続先にアクセスできたかを記録してください。サービス提供元に問い合わせる際は、単に「遅延が大きい」と伝えるより、これらの条件を示すほうが原因を特定しやすくなります。サブスクリプションURL、パスワード、UUID、鍵を公開しないでください。

App Storeの正規版を確認