手作業で組んだ WireGuard の失敗のほとんどは、どの鍵をどこに置いたかに帰着します。インターフェースの節には設定しているデバイスの秘密鍵が入り、ピアの節には相手側マシンの公開鍵が入ります。この二つの半分を取り違えたり、間違った方を貼り付けたりすると、決して完了しないハンドシェイクと、鍵の名前を決して出さないログが生まれます。AllowedIPs や DNS に触る前に、以下の四つの確認を順に行ってください。

二つの鍵、二つの向き

秘密鍵はただ一つのデバイスに属し、そのデバイスのインターフェース節に残ります。その公開側の半分は、他のすべてのピアがデバイスを認識するために必要なもので、ツールはこれを発明するのではなく導出します。サーバー上では、あなたのデバイスの公開鍵がピアの項目として現れ、あなたのデバイス上では、サーバーの公開鍵がその役割を担います。この言葉遣いで設定を声に出して読むと、ハンドシェイクに届く前にほとんどの取り違えを捕まえられます。

wg コマンドは、ローカルのインターフェースが実際に何を使っているかを、両方の公開鍵を含めて出力します。そのため、設定の誤りと接続性の問題を切り分ける最速の手段になります:

wg show
wg show interfaces

最初の出力は、各ピアをその公開鍵、最後に使ったエンドポイント、最後のハンドシェイクの経過時間とともに一覧にします。片側が「なし」、もう片側が最近というハンドシェイク経過時間は、片端だけが受け入れた鍵を示します。二つ目のコマンドは、さらに調べられるインターフェースの名前を出します。

何を共有し、何を決して共有しないか

公開鍵は受け渡すためのものですが、それでもデバイスの関係を識別するため、求めてきた管理者に送ることと公表することは別です。秘密鍵は生成したデバイスから決して出ません。書き出したプロファイルや QR コードには、その秘密鍵を含む設定全体が入っているので、どちらも持ち回るのは安全ではなく、画像の中に文面を隠しても何も変わりません。事前共有鍵は任意で同じく秘密であり、両端が同じ値を持たなければその段階でハンドシェイクが止まります。

もう一つの区別ははっきり言う価値があります:エンドポイントはアドレスとポートであり、決して鍵ではありません。エンドポイント欄に公開鍵を、鍵の欄にアドレスを貼り付けると、解析はできるが何もしないプロファイルができます。どちらの欄も単なる文字列なので、ツールはこれを捕まえません。WireGuard のクイックスタートは、生成と導出の流れを一行で示しています。

一つのデバイスに一つのピア項目

サービスが許すなら、デバイスごとに固有のピア識別情報を持たせるべきです。ノート PC の完全なプロファイルをスマートフォンに貼り付けると、サーバー上でどちらのデバイスがその識別情報を持つのかが曖昧になり、紛失した一台の端末の失効が難しくなります。秘密鍵が漏れたら、サーバー上の古いピア認可を削除し、代替を用意してください。ローカルのファイルを削除してもサーバーの項目は消えず、サーバーが公開側の半分を知るまで新しいクライアント鍵は誰の役にも立ちません。

デバイスと公開鍵の対応表をアドレス一覧のそばに置いてください。失効を丸半日ではなく二分の作業に変えるのは、その一覧です。

ハンドシェイクの後でも失敗するもの

鍵の組はピアを識別しますが、ネットワークの振る舞いを決めるわけではありません。AllowedIPs はアドレス範囲をピアに対応づけ、その周りの経路はクライアントや設定ツールが管理します。症状はたいてい、次にどの層を開くべきかを教えてくれます:

What you seeWhich key problem it usually meansWhere to look first
Handshake age stays at never on both endsPeer public key missing, or an endpoint pointing at nothingwg show, then the endpoint value
Handshake completes on one side onlyThe two ends hold different public keys for each otherwg show on both hosts
Handshake works, then no trafficAllowedIPs or routes rather than keyswg show and the route table
Worked until a key was regeneratedThe peer entry still holds the old public keyCompare both public keys, then update the peer

両方のピアが正しく認証された後でも DNS は失敗し得ますし、トンネル自体が健全でもアプリケーションは失敗し得ますから、通るハンドシェイクは診断の終わりではありません。鍵は、運用者の記録の作法や、あるサイトがあなたのアカウントを認識するかどうかについても何も語らず、それらの問いは別の場所に属します。欠けた鍵は変装した経路の問題ではないので、四つの確認が通ったらネットワーク層へ進んでください。

関連記事