Hysteria2はQUICベースのプロキシプロトコルです。UDPが利用できる環境や、RTTが長い経路、ランダムなパケットロスが発生する回線で試す価値がありますが、ほかの通信方式より速いとは限りません。本記事ではShadowrocketを使うiPhone/iPadユーザーを対象に、利用者自身が用意したサービスと設定を前提として、通信の仕組み、設定値の確認、ルールによる振り分けのチェック、比較テストの方法を解説します。ほかのプラットフォームでも仕組みは参考になりますが、画面表示は各クライアントの実際の仕様をご確認ください。
1. Hysteria2、QUIC、UDPの関係
ShadowrocketのHysteria2は接続プロトコルの選択肢であり、速度を上げるスイッチでも接続プランでもありません。接続にはサーバー側が対応プロトコルを実装し、正しいアドレス、ポート、認証情報、証明書設定を提供している必要があります。既存の別プロトコルの接続は、Typeを変更するだけではHysteria2に切り替えられません。
通信階層で見ると、Hysteria2はQUICを使用し、QUICはUDPで通信します。UDP自体は順序どおりの配送やパケット再送を担いません。その上でQUICが暗号化、確認応答、損失検出、信頼性のあるストリーム、輻輳制御を実現します。そのため、「下位層がUDP」でも、Webコンテンツの欠落時に再送されないわけではなく、アプリのすべてのリクエストが信頼性のない通信になるわけでもありません。
Hysteria2はTCPとUDPのプロキシリクエストを転送できますが、両者のアプリケーション上の性質は異なります。Web通信などの信頼性が求められるバイトストリームはQUIC streamで転送されます。UDP転送には通常QUIC DATAGRAMが使われ、信頼性のあるストリームと同じ再送保証はありません。つまり、信頼性は接続名にUDPが含まれるかではなく、転送される通信の種類に応じて判断してください。
2. 速くなる可能性がある理由:独立したストリームと輻輳制御
速度は、ハンドシェイクにかかる時間、最初のデータを受信するまでの時間、継続的なスループットに分けて確認しましょう。QUICは通信と暗号化のハンドシェイクを統合し、接続確立時の往復を一部減らせます。ただし、ドメイン名の名前解決、証明書の検証、サーバー処理、接続先サイトの応答には時間がかかります。接続確立が速くても、大容量ファイルのダウンロードが速いとは限りません。
- ストリーム間のブロッキングを軽減:1つのTCP接続を共有する多重化では、ある箇所のパケットロスにより後続データの配信が止まることがあります。QUICでは各streamが独立して進行するため、あるストリームの再送を待つ間も、ほかのストリームは同じ順序制御のために待たずに済みます。
- 同じストリーム内では待機が必要:1つのダウンロード内で欠けたデータは、引き続き再送して補う必要があります。QUICが信頼性のある転送における順序制御をなくしたり、失われたデータを復元したりするわけではありません。
- 送信方式がスループットに影響:Hysteria2の帯域幅設定は、使用される輻輳制御の挙動に影響する場合があります。Brutalは目標帯域幅に基づいて送信し、パケットロスを補います。ランダムなパケットロスがある回線では高いスループットを維持できる可能性がありますが、通信量の増加やキューの混雑を招くこともあります。
- 回線容量が上限:家庭用回線の上り帯域、無線信号、サーバーの外向き帯域、接続先サイトの速度制限などがボトルネックになることがあります。通信プロトコルで物理的な制約やポリシー上の制限を超えることはできません。
帯域幅の値は、単純に「大きいほど速い」とは限りません。たとえば、実際に安定して得られる下り速度が約50 Mbpsなのに、送信目標を500 Mbpsに設定すると、キューの増加や余分なパケットロス、遅延の上昇につながる可能性があります。数値は設定値の関係を示す例であり、本サイトでの測定結果ではありません。項目名、単位、自動ネゴシエーションの挙動は、使用中のクライアントとサーバーの説明で確認してください。
まとめ:スループットと遅延をあわせて確認
帯域幅の設定を上げてもダウンロード速度がほとんど変わらず、Webページの応答や音声の遅延、ほかの端末の通信が明らかに悪化した場合は、設定を元に戻し、回線で安定して利用できる帯域幅を再測定してください。
3. 適したネットワーク環境と、先に確認すべき症状
遅延が大きいとフィードバックの周期が長くなり、ランダムなパケットロスがあると輻輳制御によって送信速度が低下する場合があります。そのため、長距離でランダムなパケットロスがある一方、UDPが問題なく通るネットワークではHysteria2を試す価値があります。ただし、パケットロスの原因が重要です。無線干渉によるランダムなロスと、回線出口の混雑によるロスを同じように判断してはいけません。
| ネットワーク条件 | 考えられる症状 | 最初に確認すること |
|---|---|---|
| 長距離、ランダムなパケットロス | 継続的な通信は安定する可能性がありますが、短いリクエストはRTTの影響を受けます | 同じネットワーク、同じ時間帯で最初のデータ受信時間と継続的なスループットを比較する |
| 低遅延、パケットロスが少ない | 差が小さい場合があります。ボトルネックがサーバーの外向き帯域にある可能性もあります | 安定した設定を維持し、プロトコル名だけで速度を判断しない |
| UDPがブロックされている | ハンドシェイクがタイムアウトする。TCPのWeb通信は使えてもHysteria2は接続できない | サーバー側でUDPが許可されているか確認し、別のネットワークでも再テストする |
| UDPが速度制限されている | 接続できても継続通信が遅い、または時間が経つと速度が低下する | 通信事業者のネットワークポリシー、サーバー側の制限、無線の混雑を切り分ける |
| Path MTUの異常 | 小さなリクエストは成功するが、大容量通信が止まる、または頻繁にタイムアウトする | ネットワーク管理者にUDPの大きなパケットとPath MTUを確認し、複数の設定値をむやみに変更しない |
QUICの初期データグラムには、少なくとも1200バイトという要件があります。経路上で必要なサイズのUDPデータグラムを通せない場合、ハンドシェイクに影響することがあります。「Pingが通る」だけでは問題を否定できません。Pingで使うプロトコルやパケットサイズ、経路上のポリシーは、実際のQUIC接続とは異なります。
UDP 443とTCP 443は、別々に許可する必要があります。HTTPSでサーバーのWebページを開けても、関連するTCPサービスに到達できる可能性を示すだけで、UDP 443が開放されている証明にはなりません。サーバーが実際にUDP 8443を使用している場合は、クライアントにも8443を入力してください。ポートを443に変更するだけで接続できるようにはなりません。
4. Shadowrocketで既存の設定を確認してテストする
ここではiPhone/iPadのHome画面を例に説明します。まず現在使える設定を保存し、利用者自身が用意したHysteria2のパラメータを追加してください。既存のサブスクリプションで設定を管理している場合は、インポート結果を先に確認し、更新後に一時的な手動変更が有効なままだと誤認しないようにします。本記事では接続サービスやサブスクリプションの提供、販売、推奨は行いません。
-
設定値を確認
サーバーアドレス、UDPポート、認証パスワード、サーバー指定のSNI、必要に応じて混淆パラメータを用意します。ポートは実際の構成に合わせてください。証明書のドメイン名と接続先アドレスが異なる場合でも、証明書の検証条件を満たす必要があります。
-
接続を追加
Home → 右上の「+」→ Typeを開き、Hysteria2を選択して、手元にある設定値を入力して保存します。すでにサブスクリプションを利用している場合は、Home →「+」→ Type → Subscribeから自分のサブスクリプションを読み込み、作成された項目のプロトコルとポートを確認してください。
-
証明書を確認
サーバー指定の値に従ってSNIと証明書のドメイン名を確認し、端末の日付と時刻も正しいことを確認します。証明書の検証エラーが出た場合は、まずドメイン名、有効期限、証明書チェーンを確認してください。検証を無効にすることを通常の解決策にしないでください。
-
ルールの影響を切り分ける
Homeでテストする接続を選び、一時的にGlobal RoutingをProxyに設定してから、画面上部の接続スイッチをオンにします。テストが許可された固定の接続先にリクエストを送ってください。テスト後はGlobal Routingを元の設定に戻します。
-
テスト条件を固定
接続中のWi-Fiまたはモバイル回線、テストした時間帯、発生した症状を記録します。Settings → On Demandが有効な場合は、自動接続が手動の切断や切り替えに影響しないことを先に確認してください。テスト後は元の設定に戻します。
HomeのConnectivity Testでは、接続先への到達性や遅延を簡易的に確認できますが、継続的なダウンロード、Webページの最初のデータ受信、リアルタイム通信のテストには代わりません。遅延の数値が小さくても、そのテスト経路の応答状況を示すだけです。すべてのWebサイトが同じ接続を経由していることや、スループットが高いことの証明にはなりません。
5. Global Routingとルールがテストに与える影響
Hysteria2は選択したプロキシ接続の通信方式を決め、Global Routingはリクエストがどの経路を使うかを決めます。テスト対象のリクエストがルールによってDIRECTに振り分けられている場合、HomeでHysteria2の項目を選んでいても、そのリクエストの速度でHysteria2を評価することはできません。まずリクエストがどの経路を使ったかを確認してから、プロトコルの挙動を比較してください。
Config
推奨現在の設定にあるルールに従ってリクエストの経路を決めます。設定内容を確認してから普段の接続に使い、ルールのマッチ結果でテスト対象がPROXYを通っていることを確かめてください。
適した用途:普段のルール振り分け、特定のルールへのマッチ確認
Proxy
クライアントが処理するリクエストをプロキシ経由にし、一時的にルール振り分けの影響を減らします。接続できない場合は、プロトコルの設定値とネットワークの到達性も確認してください。
適した用途:短時間ルールの影響を切り分け、選択した接続を確認
Direct
選択したプロキシ接続を経由せず、直接接続します。接続先への直接接続が許可されている場合は基準値の測定に使えますが、直接接続の結果はプロキシサーバーから接続先までの経路品質を示すものではありません。
適した用途:ローカルネットワークから接続先への直接接続を基準として確認
たとえばConfigで現在の設定を開き、次のRuleを使うと、example.comとそのサブドメインはPROXYに、指定したプライベートアドレス範囲はDIRECTに振り分けられ、それ以外のリクエストはFINALで処理されます。これはルール構文の例であり、利用可能なサーバーは含まれません。PROXYの実際の出口は、現在選択している接続もあわせて確認してください。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,DIRECT
ルールは記述順に照合され、FINALは末尾に置きます。この例ではサフィックス照合の説明にexample.comを使っています。速度テストの接続先には使わないでください。自分の業務ドメインを確認する場合は、既存ルールを理解したうえで該当条件を変更し、正しい設定を保存して有効にします。設定が有効になっていない場合やGlobal RoutingがDirectのままの場合、ルールを編集しても期待どおりには動作しません。
6. 再現性のある比較テストを行う方法
信頼できる比較をするには、変更する条件をできるだけ1つに絞ります。サーバーが異なると、設置地域、出口、負荷、回線が大きく異なる場合があります。異なるサーバーでのダウンロード結果を、そのままプロトコルの違いによるものとすることはできません。同じサーバー、近い時間帯、同じ接続先、同じ端末での結果を優先して比較してください。条件をそろえられない場合は、「今回の2つの接続での結果」として結論を限定します。
- 測定対象を固定:利用権限のある同じダウンロード対象を使い、Webページの最初のデータ受信時間、継続的なスループット、失敗回数をそれぞれ確認します。出所不明の速度測定用リンクは使わないでください。
- 複数回測定して記録:各条件で約30秒の通信を3回行い、最高値だけを残さず、毎回の結果を記録します。これはテスト手順の提案であり、性能を保証するものではありません。
- 同時通信への影響を確認:ダウンロード中に軽量なWebページやリアルタイム通信も確認し、スループットの向上とともにキューの混雑や操作時の遅延が明らかに増えていないかを見ます。
- 失敗時の情報を記録:ハンドシェイクのタイムアウト、認証失敗、証明書エラー、接続後の切断を区別します。エラーの種類を記録し、共有する前にパスワード、サブスクリプションURL、認証情報を削除してください。
- 別のネットワークでも確認:Wi-Fiでは失敗し、モバイル回線では成功する場合は、まず前者のUDPポリシーを確認します。どちらのネットワークでも失敗する場合は、サーバーの待ち受け設定、ファイアウォール、認証パラメータを引き続き確認してください。
まとめ:まず接続を確立し、その後に速度を比較
ハンドシェイクがタイムアウトする場合はUDPの到達性を、証明書エラーの場合はSNIと証明書を先に確認します。接続できたら、継続的なスループットと遅延を測定してください。繰り返しのテストで実際の通信が安定して改善した場合に限り、現在のHysteria2設定を使い続ける意味があります。
Hysteria2を利用する条件は、サーバー設定が正しいこと、UDP経路が使えること、送信方式が回線容量に合っていることです。パケットロスや遅延の影響を受ける通信を改善できる場合はありますが、誤ったパスワード、期限切れの証明書、遮断されたネットワーク経路を解決するものではありません。詳しい設定構文はルールリファレンスをご覧ください。初回接続やVPN構成の権限は、クイックスタートに沿って確認できます。