構造化された入力から wg-quick の設定ファイルを生成します。処理はすべてこのページ内で完結し、アップロード、保存、URL への埋め込み、インターフェースへの適用は行いません。
意図的な制限が 3 つあります。1 つ目は鍵を生成しないことです。WireGuard の秘密鍵は長期間有効な機密情報のため、このツールでは入力として受け取り形式のみを検証します (32 バイトの base64、つまり 43 文字 + '=')。秘密鍵を空欄にすると <private key> というプレースホルダーを出力します。適用先ホスト上で wg genkey を使って仕上げる運用のほうが安全です。2 つ目は PreUp / PostUp / PreDown / PostDown を扱わないことです。これらは任意のシェルコマンドを実行するキーです。3 つ目は既存の設定ファイルを読み込まないことです。
間違えやすい項目の意味を整理します。wg-quick はファイル名からインターフェース名を決めるため、名前は英数字と _ = + . - からなる 1〜15 文字である必要があります (wg-quick 自身の規則)。'.' と '..' は Linux が作成できないため拒否します。空欄または空白だけの場合は wg0 を使います。それ以外の名前は入力どおりに扱い、前後の空白や改行は取り除きません (' wg0' はエラーです)。無効な名前を別名に置き換えることもしません。この検査を通ることは wg-quick が名前を受け付けることだけを意味し、システム上で wg-quick と連携するすべてのプログラムがその名前を扱えることまでは保証しません。既知の例は、AllowedIPs にデフォルトルート (0.0.0.0/0 または ::/0) がある場合の Linux 版 wg-quick です。名前に + または = があると nft が入ったホストで wg-quick up が失敗し、名前が + で終わると nft がない場合に使われる iptables の送信元偽装対策ルールが弱まります。該当する場合は注意点に表示します。wg0 のような名前ならどちらも避けられます。
Address はインターフェース自身のアドレスであり、ホストビットは保持します (10.9.0.2/24 はそのまま出力します)。一方でピアの AllowedIPs はネットワークの集合であり、wg 自身の正規化と同じくネットワークアドレスへマスクします。AllowedIPs は受信フィルタとしても働くため、ピアはその範囲内のアドレスからしか送信できません。Endpoint は host:port 形式で、IPv6 リテラルは角括弧で囲みます。PersistentKeepalive は自分側が NAT の内側にあり、マッピングを維持したい場合に必要です。一般的な値は 25 秒で、0 は無効化を意味します。MTU は 1280〜1500 を受け付けます。IPv4 で 1500 バイトの経路では 1420 がよく使われます。
適用前に、使用中の WireGuard のバージョンで結果を確認してください。