技術 約4分で読めます

Hysteria2 サーバー構築とクライアント接続の概要

VPN比較記事で「最強候補」として挙げた Hysteria2 について、実際に構築・接続するための概要をまとめた。詳細な手順ではなく、全体像と関連リソースの紹介がメイン。

Hysteria2 とは

QUIC(HTTP/3)ベースのプロキシプロトコル。UDP を使用し、独自の輻輳制御(Brutal)で高速な通信を実現する。

特徴:

  • QUIC プロトコルに偽装(CDN やストリーミングサービスで広く使われている)
  • UDP ベースで TCP より高速
  • 独自の輻輳制御で回線を最大限活用
  • 設定がシンプル(YAML形式)

注意: Hysteria 1.x と 2 はプロトコルに互換性がない。クライアントは必ず Hysteria 2 対応のものを使う。

サーバー構築の概要

必要なもの

  • VPS(Linux)
  • ポート開放: TCP/80、TCP/443、UDP/443
  • SSL 証明書(Let’s Encrypt または自己署名)

インストール方法

公式スクリプト(推奨):

bash <(curl -fsSL https://get.hy2.sh/)

systemd サービスとして登録される。設定ファイルは手動で作成が必要。

Docker:

公式イメージ tobyxdd/hysteria を使用。docker-compose で管理すると楽。

設定ファイル

/etc/hysteria/config.yaml に配置:

listen: :443

tls:
  cert: /path/to/cert.pem
  key: /path/to/key.pem

auth:
  type: password
  password: your-secret-password

masquerade:
  type: proxy
  proxy:
    url: https://www.bing.com
    rewriteHost: true

masquerade は偽装先。接続時に Hysteria サーバーだとバレないよう、通常の HTTPS サイトのように振る舞う。

管理パネル

設定ファイルを直接編集するのが基本だが、GUI で管理したい場合は以下が使える:

  • Blitz - ユーザー管理、トラフィック監視、Telegram Bot 連携
  • H-UI - シンプルな Web UI

クライアントアプリ

既存のクライアントアプリを使うのが手軽。

Windows / macOS / Linux

アプリ特徴
v2rayNWindows/macOS/Linux 対応、多機能
Hiddifyマルチプラットフォーム、無料、オープンソース
NekoRayQt ベースの GUI クライアント

v2rayN は sing-box コアを選択すれば Hysteria2 に対応する。Xray コアでは動かない。

Android

アプリ特徴
Hiddify推奨。無料、広告なし
NekoBoxGitHub から APK を取得(Play ストア版は非公式)

iOS

アプリ特徴
Hiddify無料
Shadowrocket有料(約 $3)、多機能
Streisand無料

接続方法

クライアントアプリに以下のいずれかで設定を追加:

  1. URI スキーム: hy2://password@server:443?sni=example.com 形式の URL をコピペ
  2. サブスクリプション: サーバー側で URL を発行し、クライアントでインポート
  3. 手動設定: サーバーアドレス、ポート、パスワードを入力

カスタムアプリ開発

自前でアプリを作りたい場合のライブラリ・SDK。

Go 言語

apernet/hysteria - 公式実装。サーバーもクライアントもこれ。

go get github.com/apernet/hysteria/core/v2

sing-box(マルチプロトコル)

sing-box - Hysteria2 を含む多数のプロトコルに対応した Go ライブラリ。

  • VLESS、Trojan、Shadowsocks なども同時にサポート
  • Go 1.21 以上が必要
  • JSON / TOML 形式の設定

Hiddify や NekoBox の内部で使われている。複数プロトコルを扱うアプリを作るならこちら。

Python

hysteria2 - Python バインディング。Go 1.21 以上が必要。

スクリプトから Hysteria2 を制御したい場合に便利。

モバイルアプリ開発

iOS / Android 向けに VPN アプリを作る場合:

  1. sing-box を FFI(Foreign Function Interface)経由で呼び出す
  2. VPNclient Engine - Swift/Kotlin + Go/C++ のエンジン(Xray、Hysteria 対応)

TUN インターフェースの扱いが OS ごとに異なるので、既存のクライアントアプリをフォークするのが現実的。

関連記事

参考