はじめに
mqvpn は MASQUE CONNECT-IP (RFC 9484) を使用し、Multipath QUIC 上で標準準拠の IP トンネリングを実現するマルチパス QUIC VPN です。
インストール
サーバー
Ubuntu/Debian の VPS で以下を実行すると、バイナリのインストールから証明書・認証キー・設定ファイルの生成までを一括で行います。
curl -fsSL https://github.com/mp0rta/mqvpn/releases/latest/download/install.sh | sudo bash--start を付けると、サーバーの起動と OS 起動時の自動起動登録も同時に行います。
curl -fsSL https://github.com/mp0rta/mqvpn/releases/latest/download/install.sh \
| sudo bash -s -- --startポートやサブネットのカスタマイズもオプションで指定できます。
curl -fsSL https://github.com/mp0rta/mqvpn/releases/latest/download/install.sh \
| sudo bash -s -- --start --port 10020 --subnet 10.8.0.0/24アンインストールするには --uninstall を付けて再実行します(--purge で設定ファイルも削除)。
WARNING
install.sh は自己署名証明書を生成します。クライアント接続時には --insecure が必要です。本番環境では Let's Encrypt などの信頼された証明書に置き換え、--insecure を省略してください。
クライアント(deb パッケージ)
Releases から .deb をダウンロードしてインストールします。
# VERSION と ARCH は環境に合わせて置き換えてください(例: 0.6.0, amd64)
curl -LO https://github.com/mp0rta/mqvpn/releases/latest/download/mqvpn_VERSION_ARCH.deb
sudo dpkg -i mqvpn_*.debWindows クライアント
Windows amd64 / arm64 向けにビルド済みバイナリを配布しています。Releases から mqvpn_<VERSION>_windows_<ARCH>.zip をダウンロードし、展開して同梱の README.txt に従ってください(管理者 PowerShell 必須)。
ソースからビルド
ソースからビルドする場合はビルドを参照してください。
クイックスタート
インストールが済んだら、クライアントからサーバーに接続します。サーバーの install.sh 出力に表示された認証キーとアドレスを使います。
シングルパス:
sudo mqvpn --mode client --server YOUR_SERVER:443 \
--auth-key YOUR_AUTH_KEY --insecureマルチパス(複数インターフェース):
sudo mqvpn --mode client --server YOUR_SERVER:443 \
--auth-key YOUR_AUTH_KEY --path eth0 --path wlan0 --insecureDNS オーバーライド付き(DNS リーク防止):
sudo mqvpn --mode client --server YOUR_SERVER:443 \
--auth-key YOUR_AUTH_KEY --dns 1.1.1.1 --dns 8.8.8.8 --insecureTIP
--path を指定しない場合、クライアントはデフォルトインターフェースを使います(シングルパス)。マルチパスには2つ以上の --path が必要です。詳しくはマルチパスを参照してください。
WARNING
サーバーは UDP ポート(デフォルト: 443)を開放する必要があります。クライアントのすべてのトラフィックはトンネル経由でルーティングされます。
認証キーの生成
mqvpn --genkeyinstall.sh や start_server.sh を使う場合は自動生成されます。
CLI リファレンス
mqvpn --config PATH
mqvpn --mode client|server [options]
--server HOST:PORT サーバーアドレス(クライアント、IPv6 は `[2001:db8::1]:443` 形式)
--path IFACE マルチパスインターフェース(複数指定可)
--auth-key KEY PSK 認証
--user NAME:KEY ユーザー個別の PSK(複数指定可、サーバー)
--dns ADDR DNS サーバー(複数指定可)
--insecure 信頼されていない証明書を受け入れる(テスト用)
--tun-name NAME TUN デバイス名(デフォルト: mqvpn0)
--listen BIND:PORT リッスンアドレス(サーバー、デフォルト: 0.0.0.0:443)
--subnet CIDR クライアント IPv4 プール(サーバー)
--subnet6 CIDR クライアント IPv6 プール(サーバー)
--cert PATH TLS 証明書(サーバー)
--key PATH TLS 秘密鍵(サーバー)
--scheduler minrtt|wlb マルチパススケジューラ(デフォルト: wlb)
--max-clients N 最大同時接続クライアント数(サーバー、デフォルト: 64)
--control-port PORT Control API の TCP ポート(サーバー)
--control-addr ADDR Control API のバインドアドレス(デフォルト: 127.0.0.1)
--status サーバーの稼働状況を Control API 経由で表示して終了
--log-level LVL ログレベル(debug|info|warn|error)
--no-reconnect 自動再接続を無効化(クライアント)
--kill-switch VPN 外への通信を遮断(クライアント)
--genkey PSK を生成して終了
--help すべてのオプションを表示--config を指定した場合、--mode は設定ファイル内容から自動判定されます。CLI 引数は設定ファイルの値を上書きします。