2026年8月14日 · プロトコル · 約9分

ShadowrocketのHysteria2解説|QUICベースの通信が速い理由と適したネットワーク

QUIC・UDP通信と輻輳制御の仕組みから、高パケットロスや高遅延の回線におけるHysteria2の特徴を解説。ShadowrocketでHysteria2の接続先を設定する際に必要な項目も紹介します。

この記事の要点

Hysteria2の効果は、UDPの到達性、回線のパケットロスの特性、帯域幅の設定によって変わります。Typeを変更するだけで必ず速くなるわけではありません。接続情報をすでにお持ちのShadowrocketユーザー向けに、QUICの信頼性のある通信と輻輳制御、設定項目の確認、構成の読み込み、現在のネットワークに適しているかを判断する方法を解説します。

1. QUICはUDPを使うが、信頼性のある通信を捨てているわけではない

Hysteria2はQUICを使ってプロキシ通信を行います。UDPはデータグラムを転送しますが、それ自体では順序どおりの配信、再送、接続状態の管理を行いません。一方、QUICはUDP上で暗号化接続、パケットロスからの回復、フロー制御、多重化を実現します。確実な配信が必要なデータには確認応答と再送が行われるため、「失われたデータを無視するから速い」と捉えるのは誤りです。

QUICはTLS 1.3で安全な接続を確立し、独立した複数の信頼性のあるストリームを利用できます。あるストリームが失われたデータを待っていても、同じトランスポート層のバイト列の欠落によって、ほかのストリームまで一律に停止する必要はありません。ただし、接続全体ではネットワーク容量と輻輳状態を共有し、同一ストリーム内のデータは引き続き順序どおりに配信されます。多重化で軽減できるのは特定の種類のヘッドオブラインブロッキングであり、あらゆる待ち時間がなくなるわけではありません。

ポート443は一般的な設定例にすぎず、Hysteria2で必須のポートではありません。すでに利用しているサービスで別のポートが指定されている場合は、その値をそのまま使ってください。通常のHTTPSサイトが開けても、UDP 443に到達できるとは限りません。

2. パケットロスや高遅延の回線で速くなる可能性がある理由

スループットに影響するのは、プロトコルヘッダーの大きさだけではありません。送信側が輻輳をどう判断するかも重要です。パケットロスを主な判断材料とする制御方式では、無線干渉によるランダムなロスまで輻輳が原因だとみなし、速度を落とすことがあります。Hysteria2のBrutal輻輳制御は、目標帯域幅とデータの到達状況をもとに送信を調整し、ランダムなパケットロスによるスループットの低下を抑える考え方です。実際に使われる制御方式は、実装や設定、双方のネゴシエーションにも左右されます。

この仕組みは、無制限にデータを送信するという意味ではありません。目標帯域幅が実際の回線容量を上回ると、キューの増加やパケットロス、ほかの通信との競合を招き、Webの操作が遅くなることもあります。高遅延のネットワークでは回線を使い切るために十分な量のデータを転送中に保つ必要がありますが、プロトコルで物理的な距離を縮めたり、サーバーの出口の混雑を防いだりすることはできません。

ネットワーク環境想定される挙動優先して確認する項目
UDPに到達でき、ランダムなパケットロスがあるパケットロスに弱い通信方式より、スループットが安定する可能性がある継続的な通信速度と操作時の遅延がともに改善するか
往復遅延が大きい帯域幅をより有効に使える可能性がある一方、初回アクセスは往復時間の影響を受ける最初の1バイトを受信するまでの時間と、大容量ファイルの速度を分けて記録
UDPが制限または破棄されるハンドシェイクがタイムアウトする、または通信開始後に速度が大きく制限されるWi-Fiとモバイル通信を切り替えて比較
低遅延・低パケットロス効果が目立たず、ほかのボトルネックの影響が大きくなる可能性があるサーバーの負荷、接続先サイト、ローカルの帯域幅

帯域幅と遅延の関係を計算例で見てみましょう。利用可能な帯域幅が50 Mbps、往復時間が100 msの場合、帯域幅遅延積は約0.625 MBです。この帯域幅を継続して使うには、同程度のデータを転送中に保つ必要があることを示しています。設定後の速度を保証する数値ではありません。また、単位の違いにも注意してください。50 Mbpsの理論上のバイト転送速度は約6.25 MB/sで、実際には通信のオーバーヘッド分が差し引かれます。

結論:まずUDPに到達できるか確認

同じHysteria2設定を使い、2種類のネットワークでテストしてください。一方のネットワークだけで繰り返しタイムアウトする場合は、帯域幅の値を何度も上げるのではなく、そのネットワークのUDP経路を先に確認します。

3. Hysteria2の追加に必要な設定項目

この記事では、利用するサービスと接続情報をすでにお持ちであることを前提としています。まずはサービス提供元の完全な設定を使い、手動で追加する場合は項目を一つずつ確認してください。名前が似ているからといって、Hysteria2と旧プロトコルの設定を混用することはできません。特に、旧設定のパスワードや混淆パラメーターを新しい項目にそのまま加えないでください。

項目入力内容の確認方法よくある間違い
TypeHysteria2を選択別のプロトコルを選択してしまう
サーバーアドレス利用中のサービスで指定されているドメイン名またはIPアドレス共有リンク全体をアドレス欄に入力する
ポートサーバーで実際に待ち受けているUDPポート。例:443Webサイトのポートから推測する、または例の値をそのまま使う
認証情報サービス提供元の認証情報を完全な形でコピーする記号を省く、空白を加える、または内容を独自に分割する
SNIサーバーの証明書設定と一致する名前IPアドレスで接続する際、証明書に必要なドメイン名を省略する
混淆パラメーターサーバー側で有効な場合のみ、指定された種類とパスワードを入力する認証パスワードと混淆パスワードを同じ項目として扱う
上り・下りの帯域幅項目が画面に表示される場合は、単位を確認して妥当な値を入力するMbpsとMB/sを混同する、または実際の容量を大きく超える値を入力する

表では確認が必要な設定項目の意味を説明しています。実際の項目名や表示内容は、現在のShadowrocketの画面で確認してください。接続先アドレスとSNIは異なる場合があります。前者は接続先を指定し、後者はTLSの名前ネゴシエーションと証明書の検証に使われます。証明書エラーが出た場合は、名前、デバイスの日時、サーバー証明書の状態を確認し、検証を無効にしないでください。

  1. 情報の確認

    利用中のサービスからHysteria2の設定情報、または互換性のあるサブスクリプションが提供されていることを確認し、変更前に元の情報を保存しておきます。認証情報が写った画面を公開しないでください。

  2. 追加方法を選択

    手動で追加する場合は、Home → 右上の「+」→ Type → Hysteria2を選択します。既存のサブスクリプションを読み込む場合は、Home → 右上の「+」→ Type → Subscribeを選択します。

  3. 入力して保存

    手動で追加する場合は、アドレス、ポート、認証情報、TLS情報を一つずつ確認します。Subscribeにはご自身のサブスクリプションリンクを入力して保存し、Homeに戻って更新したあと、作成された項目のTypeを確認してください。

  4. 許可して接続をテスト

    Homeで接続先の項目を選び、接続を有効にします。初回接続時は、システムの案内に従ってVPN構成の追加を許可してください。その後、Webサイトへのアクセスと継続的なデータ転送をそれぞれテストします。遅延の数値だけで判断しないでください。

4. Global Routingで接続先の経路を確認

プロトコルの設定が正しくても、テスト通信がHysteria2を通るとは限りません。Homeで接続先の項目を選んだうえで、Global Routingも確認してください。通常のルール分岐と一時的な診断では目的が異なります。まず接続自体が使えることを確認し、その後ルールの適用を検証すれば、ルールの経路選択の問題をプロトコルの性能問題と取り違えずに済みます。

Config

おすすめ

現在の設定にあるルールに従って通信方法を決めます。DIRECTに一致した通信は直接接続し、プロキシのポリシーに一致した通信は選択された経路に転送されます。どのルールにも一致しない通信は、FINALなどのフォールバック設定で処理されます。デフォルトで直接接続されるとは限りません。

適した用途:日常利用、ルール分岐の確認

Proxy

プロキシ処理の対象となる通信をプロキシ経路に送ります。接続先ごとのルール分岐の影響を一時的に除外する場合に適しています。テストでは、別のポリシーではなく、目的のHysteria2項目が実際に選択されていることも確認してください。

適した用途:ルールの影響を一時的に切り分け、接続できるか確認

Direct

直接接続の経路を使うため、Hysteria2が正常かどうかの確認には使えません。DirectではWebサイトが開けてもプロキシ経路では失敗する場合、2つの経路で結果が異なることしか分かりません。認証情報、UDP、サーバーの状態を引き続き確認してください。

適した用途:直接接続した場合の比較結果を記録

以下は設定で使われるルール構文の例であり、性能を高めるために必ず追加するものではありません。DOMAIN-SUFFIXはドメイン名とそのサブドメインに一致します。ルールは記載順に確認され、FINALは末尾に置いて、それ以前のルールに一致しなかった通信を処理します。ルールの記述はConfig内の該当するルール欄に入力してください。サーバーアドレス欄やサブスクリプションアドレス欄には貼り付けないでください。

DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT

テスト中の接続状態を固定する必要がある場合は、Settings → On Demandを確認し、既存の自動接続条件を記録して一時的に無効にします。テスト後は元に戻してください。同じ比較テスト中に、接続先、ルール、自動接続条件を同時に変更しないでください。

5. テスト条件をそろえ、速度と安定性を見分ける

Homeに表示される遅延は、対応するテスト方法での応答状況を示すにすぎません。遅延が小さくても、認証後の継続的なデータ転送、DNS名前解決、接続先サイトへのアクセスがすべて正常とは限りません。比較テストでは、同じデバイス、同じ対象リソース、近い時間帯を使い、毎回変更する条件は一つだけにしてください。

  1. 基準となる状態を記録:現在のネットワークがWi-Fiかモバイル通信か、選択中の項目、Global Routing、On Demandの有効・無効を記録します。
  2. アクセスを確認:アクセスできることが分かっているページを開き、名前解決エラー、ハンドシェイクのタイムアウト、証明書エラーが発生するか記録します。異なるエラーを一括して「速度が遅い」と扱わないでください。
  3. 継続的な通信を観察:ご自身の一定のテスト用リソースを約60秒間連続して利用し、安定した速度、中断の有無、通信中にページの操作が明らかに遅くなるかを記録します。
  4. 接続ネットワークを切り替える:接続先と設定は変えず、Wi-Fiとモバイル通信を切り替えて、それぞれ3回テストします。モバイルデータの使用量に注意してください。
  5. 再現性を確認:たまに結果が改善するだけでは、プロトコルの優位性を判断できません。同じネットワークで繰り返しタイムアウトし、別のネットワークでは安定して接続できる場合は、まず接続ネットワークの制限を確認してください。

これらの数値はテストの手順を示すもので、性能を保証するものではありません。「パケットロスが何%を超えれば必ず速くなる」といった共通の基準はありません。パケットロスが発生する場所や連続性、往復遅延、利用可能な帯域幅、サーバー負荷によって結果は変わります。継続的な通信が速くなっても、操作時の応答が明らかに悪化するなら、全体として改善したとはいえません。

結論:再現できる改善だけを残す

同じ条件で繰り返しテストして通信が安定し、日常的な操作も明らかに悪化しない場合に限り、現在の設定を維持してください。そうでなければ元の値に戻し、帯域幅の設定かネットワーク経路を一つずつ確認します。

6. 接続と読み込みでよくある問題

ポートを443に設定してもタイムアウトが続くのはなぜ?

まずHomeで項目を編集し、443を初期値として使うのではなく、サービス提供元が指定したポートを確認してください。その後、設定は変えずに接続ネットワークを切り替えます。HTTPSのWebサイトに接続できても、対応するTCP経路が使えることを示すだけで、UDPの到達性を確認したことにはなりません。

遅延は正常なのにWebサイトが開かない場合、どう確認する?

まずHome → Global Routingと、現在選択されている項目を確認します。必要であれば、Proxyを一時的に使い、ルールの影響を切り分けてください。ドメイン名でのアクセスだけ失敗する場合はDNS名前解決を確認します。TLSエラーが発生した場合は、SNI、デバイスの日時、証明書を確認してください。遅延の数値だけを見て、プロトコルを何度も変更しないでください。

サブスクリプションを読み込んでもHysteria2の項目が表示されないのはなぜ?

Homeでサブスクリプションを更新し、返された内容にHysteria2が含まれているか、現在のアプリが該当する項目に対応しているかを確認してください。サブスクリプションによっては、別のプロトコルしか返されない場合があります。表示名を変更してもプロトコルは変換されません。設定形式については、利用中のサービス提供元に確認してください。

帯域幅の値を大きくするほどダウンロードは速くなる?

いいえ。まず元の値を記録し、画面に表示された単位を確認してから、実際に利用できる帯域幅に合わせて調整します。一度に変更する項目は一つだけにして、テストを繰り返してください。値を上げたあとに遅延やパケットロスが増えたり、ほかのページの表示が明らかに遅くなったりした場合は、さらに増やすのではなく元に戻します。

認証パスワードが正しいのにエラーになるのはなぜ?

Homeで項目を編集し、コピーした内容に空白や改行が含まれていないか確認します。認証情報と混淆パスワードも分けて照合してください。サーバー側で混淆が有効な場合は、双方の種類とパスワードが一致している必要があります。サブスクリプションの更新で項目が上書きされることがあるため、更新後に実際の設定を再確認してください。

最後に、アプリの購入と接続サービスの利用は分けて考えてください。Shadowrocketはクローズドソースの商用アプリで、買い切り方式です。アプリの購入と回線プランは別のものです。この記事では、お手元にある接続情報の使い方のみを説明しており、接続サービスの提供、販売、推奨は行っていません。アプリはAppleプラットフォーム向けに提供されています。主な利用デバイスはiPhoneとiPadです。入手先はApp Storeのみです。システム要件と購入の適用条件は、App Storeのページに記載された内容をご確認ください。

App Storeで正規アプリを確認