今日、VPNとプロキシ技術への需要はますます高まっています。ユーザーは、安全なインターネットアクセス、検閲の回避、外部からの脅威からの保護のためにこれらの技術を利用しています。このようなサーバーに接続すると、すべての通信は暗号化されたトンネルを経由し、サーバーがネットワークへのゲートウェイとなります。
OpenVPNやWireGuardといった従来のプロトコルは、安定した環境では優れたパフォーマンスを発揮しますが、パケット損失率の高い劣悪な接続環境(モバイルネットワーク、公共Wi-Fi、厳しい検閲が行われている国など)では速度低下に悩まされることがよくあります。そこで登場するのが、Hysteria2やTUICといった最新のプロトコルです。これらはQUICをベースに構築されており、通常のHTTPS(HTTP/3)と同様に、高速性、低遅延、そして効果的なトラフィック難読化を実現します。
Hysteria2は、利用可能な帯域幅を積極的に活用する「Brutal」アルゴリズムを採用しています。TUIC(バージョン5)は、オーバーヘッドが最小限であること、優れたUDPサポート、およびRTTが0の接続確立を特徴としています。
この記事では、Ubuntu/Debian上でサーバーをセットアップし、Windowsから接続する手順を説明します。
必要なもの:Ubuntu 22.04/24.04またはDebian 12が動作するVPS、root権限、およびサーバーのIPアドレス。ドメインは不要です。
サーバーに接続しています
Windows (PuTTY): PuTTYを開き、ホスト名にYOUR_SERVER_IP、ポート番号に22を入力し、VPSプロバイダーのメールに記載されているパスワードを使用してrootユーザーとしてログインします。
Linux/macOS(ターミナル):
ssh root@YOUR_SERVER_IP
以下のコマンドはすべて、同じセッション内でサーバー上で実行されます。
サーバーの準備(Ubuntu / Debian)
IPフォワーディングを有効にする
これにより、サーバーはクライアントからのパケットをさらにインターネットへ転送できるようになります。
nano /etc/sysctl.conf
パスワードを入力または作成してください(英字と数字のみを使用し、スペースは使用しないでください)。
以下の行を見つけてコメントを解除するか(先頭の「#」を削除する)、または以下の行を追加してください。
net.ipv4.ip_forward=1
ファイルを保存(Ctrl+O、Enter)して終了(Ctrl+X)します。再起動せずに変更を適用します。
sysctl -p
NAT設定(マスカレード)
この設定により、クライアントはサーバーのIPアドレスを使用して、サーバー経由でインターネットにアクセスできるようになります。
外部ネットワークインターフェース(インターネットに接続されているインターフェース)の名前を確認してください。
ip link show
通常、これはeth0、ens3、またはenp1s0です。これをコピーまたは記憶しておき、iptablesにマスカレードルールを追加します。eth0を自分のインターフェース名に置き換えてください。
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptablesルールの保存
サーバーの再起動後にルールがリセットされないようにするには、ルールを保存する必要があります。
apt update
apt install iptables-persistent -y
netfilter-persistent save
インストール中に、現在の IPv4/IPv6 ルールを保存するかどうかを尋ねるプロンプトが表示される場合があります。その場合は、両方とも「はい」を選択してください。
ファイアウォール設定(UFW)
必要なポートはすべてすぐに開きますので、後でこの手順に戻る必要はありません。SSH 用の 22 (これをスキップするとサーバーから締め出されます)、Hysteria2 用の 443/udp、TUIC 用の 8443/udp です。
apt install ufw -y
ufw allow 22/tcp
ufw allow 443/udp
ufw allow 8443/udp
ufw --force enable
ufw status
ufw status の出力には、3 つのルールすべてがアクティブとして表示されるはずです。
ヒステリー2
Hysteria2サーバーのインストール
chmod +x hysteria-linux-amd64
mv hysteria-linux-amd64 /usr/local/bin/hysteria
hysteria version
バージョン出力にエラーがないことを確認してください。これにより、バイナリが正しく動作していることが確認できます。
自己署名SSL証明書の作成
お客様のコンピュータとサーバー間の通信を保護するために、弊社独自の暗号化キーが必要です。弊社はドメインを保有していないため、365日間有効な自己署名証明書を生成します。そのため、後ほどクライアント側で「証明書の検証をスキップ」を有効にする必要があります。
mkdir -p /etc/hysteria
chmod 755 /etc/hysteria
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/hysteria/private.key \
-out /etc/hysteria/cert.crt \
-subj "/CN=YOUR_SERVER_IP"
ls -la /etc/hysteria/
cert.crtとprivate.keyの両方がリストに表示される必要があります。
設定ファイルの作成
nano /etc/hysteria/config.yaml
以下の内容を貼り付け、YOUR_PASSWORDの部分をご自身のパスワード(英字と数字のみ、スペースなし)に置き換えてください。
listen: :443
tls:
cert: /etc/hysteria/cert.crt
key: /etc/hysteria/private.key
auth:
type: password
password: "YOUR_PASSWORD"
masquerade:
type: proxy
proxy:
url: https://cloudflare.com
rewriteHost: true
マスカレードブロックは、誰かがブラウザでサーバーのIPアドレスを開いた際に、プロキシの痕跡を露呈させるのではなく、サーバーが通常のウェブサイトのように見えるようにします。
保存(Ctrl+O、Enter)して終了(Ctrl+X)します。
自動起動の設定
nano /etc/systemd/system/hysteria.service
Hysteria2の自動起動のためのsystemdユニットファイル。
[Unit]
Description=Hysteria2 Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/hysteria server --config /etc/hysteria/config.yaml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now hysteria.service
systemctl status hysteria.service
ステータスは「アクティブ(実行中)」と表示されるはずです。コンソールがログビューで「フリーズ」している場合は、Qキーを押して終了してください。
TUIC v5
TUICのダウンロードとインストール
mkdir -p /usr/local/sbin/tuic
利用可能なリリースを確認してください:
curl -s https://api.github.com/repos/tuic-protocol/tuic/releases | grep -Po '"tag_name": "\K[^"]*' | head -10
サーバーバイナリをダウンロードしてください。1.0.0の部分を現在のバージョン番号に置き換えてください。
wget https://github.com/tuic-protocol/tuic/releases/download/1.0.0/tuic-server-1.0.0-x86_64-unknown-linux-gnu \
-O /usr/local/sbin/tuic/tuic-server
chmod +x /usr/local/sbin/tuic/tuic-server
/usr/local/sbin/tuic/tuic-server --version
TUIC用の自己署名証明書を作成する
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /usr/local/sbin/tuic/privkey.pem \
-out /usr/local/sbin/tuic/fullchain.pem \
-subj "/CN=YOUR_SERVER_IP"
ls -la /usr/local/sbin/tuic/
UUIDを生成する
apt install uuid-runtime -y
uuidgen
生成されたUUIDをコピーしてください。このUUIDは、後述のサーバー設定とクライアント設定の両方で必要になります。
設定ファイルの作成
TUICサーバーの完成したconfig.jsonファイル:
nano /usr/local/sbin/tuic/config.json
{
"server": "[::]:8443",
"users": {
"YOUR_UUID": "YOUR_TUIC_PASSWORD"
},
"certificate": "/usr/local/sbin/tuic/fullchain.pem",
"private_key": "/usr/local/sbin/tuic/privkey.pem",
"congestion_control": "bbr",
"alpn": ["h3"],
"log_level": "warn"
}
ここではポート8443を使用します。443番ポートは既にHysteria2で使用されているためです。YOUR_UUIDを手順4.3の値に、YOUR_TUIC_PASSWORDをご自身のパスワードに置き換えてください。
保存(Ctrl+O、Enter)して終了(Ctrl+X)します。
手動始動のテスト
/usr/local/sbin/tuic/tuic-server -c /usr/local/sbin/tuic/config.json
エラーが表示されなければ、設定は有効です。Ctrl+Cで停止し、自動起動の設定に進んでください。
自動起動の設定
nano /etc/systemd/system/tuic-server.service
[Unit]
Description=TUIC Server
After=network.target nss-lookup.target
[Service]
User=root
WorkingDirectory=/usr/local/sbin/tuic
ExecStart=/usr/local/sbin/tuic/tuic-server -c config.json
Restart=on-failure
RestartPreventExitStatus=1
RestartSec=5
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now tuic-server.service
systemctl status tuic-server.service
ステータスはアクティブ(実行中)と表示されるはずです。
現在、サーバー上では、最も優れた高速な最新プロトコルのうち2つが並行して動作しており、どちらも通常のQUIC/HTTPSトラフィックを装っています。標準ポート443/udpではHysteria2が、ポート8443/udpではTUIC v5が動作しています。
Windowsから接続しています
Hiddifyのインストール
Hiddify for Windowsを公式サイト(https://hiddify.com)からダウンロードしてインストールしてください。「次へ」または「インストール」をクリックしてインストーラーを進めてください。Windows SmartScreenが表示された場合は、「詳細情報」→「とにかく実行」を選択してください。
ヒステリア2のプロフィール
「+(新規プロファイル)」→「手動入力」→プロトコル「Hysteria2 」をクリックし、以下を入力してください。
|
フィールド |
値 |
|
プロファイル名 |
私のHysteria2サーバー |
|
住所 |
あなたのサーバーIPアドレス |
|
ポート |
443 |
|
パスワード |
ステップ3.3のパスワード |
|
SNI |
あなたのサーバーIPアドレス |
|
証明書の検証をスキップ |
On |
証明書は自己署名証明書であるため、信頼できる認証局が存在しないため、「証明書の検証をスキップ」を有効にする必要があります。
TUIC v5プロファイル
「+(新規プロファイル)」→「手動入力」→「プロトコルTUIC 」をクリックし、以下を入力してください。
|
フィールド |
値 |
|
プロファイル名 |
私のTUICサーバー |
|
住所 |
あなたのサーバーIPアドレス |
|
ポート |
8443 |
|
UUID |
ステップ4.3のUUID |
|
パスワード |
ステップ4.4のパスワード |
|
輻輳制御 |
bbr |
|
SNI |
あなたのサーバーIPアドレス |
|
証明書の検証をスキップ |
On |
接続と検証
プロフィールを選択し、大きな丸い「接続」ボタンをクリックしてください。ステータスが「接続済み」に変わります。
トラフィックが実際にサーバーを経由していることを確認するには、ブラウザでIPアドレス確認サービスを開いてください。表示されるアドレスがYOUR_SERVER_IPと一致するはずです。
結論
このガイドを完了すると、サーバー上で2つの高速な次世代プロトコル(ポート443/UDPのHysteria2とポート8443/UDPのTUIC v5)が並行して動作するようになります。どちらのプロトコルも、送信トラフィックを標準的な暗号化されたQUIC接続(HTTP/3)として偽装するため、極めて不安定なチャネルでも安定した接続が確保されます。
設定済みのプロファイルは、Windowsだけでなく、同様の設定でAndroidまたはiOS版のHiddifyモバイルアプリにもインポートして使用できます。
接続に問題が発生した場合は、まず systemctl status コマンド hysteria.service (または tuic-server.service) を使用してサービスの状態を確認し、ファイアウォールルールが有効になっていること (ufw status) を確認してから、IP アドレス、UUID、パスワードが正しく入力されていることを再度確認してください。なお、自己署名証明書は 365 日間有効ですので、ちょうど 1 年経過したら、同じ openssl req コマンドを使用して更新する必要があります。