Debian 12でWireGuardポイントツーサイトVPNを設定する方法
リモートクライアント1台用に、Debian 12 WireGuard VPNサーバーをセットアップします。キー、IPv4フォワーディング、nftables NAT、ファイアウォールアクセス、接続チェックを設定します。
具体例:マヤはカフェで仕事をする際、Debian 12 VPSを個人用VPNエンドポイントとして使用します。彼女のノートパソコンは、暗号化されたWireGuardトンネル経由でVPSに接続し、そのサーバーを経由してIPv4インターネットトラフィックを送信する必要があります。この例は実際のテスト結果ではありません。以下に示すパブリックIPアドレス、鍵、およびターミナル出力は、プレースホルダーまたは代表的なモックアップです。
この設定はポイントツーサイトVPNです。つまり、1つのクライアントが1つのサーバーに接続します。Debianに付属のWireGuardツール、単一のピア、IPv4フォワーディング、およびIPv4 NATを使用します。VPSにはパブリックまたはポートフォワーディングされたIPv4アドレスがあり、sudoで管理でき、UDPポート51820でアクセスできることを前提としています。このチュートリアルでは、ルーティングされたIPv6やVPSの背後にあるプライベートネットワークの設定は行いません。
この例では10.8.0.0/24、VPN に を使用し、10.8.0.1サーバー側と10.8.0.2Maya の最初のクライアント側で を使用します。クライアントの Wi-Fi、オフィス、またはクラウド ネットワークと重複しないサブネットを使用してください。ハンドシェイクが成功しても、衝突が発生するとトラフィックが誤った経路に送られる可能性があります。
WireGuardは公開鍵認証を使用します。サーバーはクライアントの公開鍵を必要とし、クライアントはサーバーの公開鍵を必要とします。各秘密鍵は、それを所有するデバイス上に保持されます。DebianのWireGuardドキュメントにはパッケージとピアの設定方法が記載されており、WireGuardクイックスタートには鍵生成とキープアライブ動作について説明されています。詳しくは、Debian WireGuardドキュメントとWireGuardクイックスタートを参照してください。
パッケージインデックスを更新し、WireGuardとnftablesをインストールします。これにより、IPv4マスカレードルールの例が提供されます。VPS上で以下のコマンドを実行してください。
sudo apt update
sudo apt install wireguard nftables
Debianでは、wireguardメタパッケージとそのツールを通じてWireGuardが提供されています。サーバーが既にUFW、firewalld、またはプロバイダ管理ルールなどのファイアウォールマネージャを使用している場合は、追加する前にアクティブなルールセットを特定してください。この例を使用して既存のファイアウォール設定を置き換えないでください。

Debianが外部IPv4アドレスに到達するためにどのインターフェースを使用するかをルーティングテーブルに問い合わせます。
ip route get 1.1.1.1
サンプルでは、ルートに を使用しています。お使いの VPS では、や など、eth0異なる名前が表示される場合があります。その場合は、後で NAT ルールでご自身の出力から名前を使用してください。また、サーバーのパブリック IPv4 アドレスまたは DNS 名もメモしておいてください。サーバーがルーターの背後にある場合は、そのルーターから Debian ホストに UDP 51820 を転送してください。ens3enp1s0
完全なトンネル接続にはIPv4フォワーディングが必要です。今すぐ有効にして、再起動後も設定が維持されるようにしてください。
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
sysctl net.ipv4.ip_forward
最後のコマンドは、 と報告するはずですnet.ipv4.ip_forward = 1。この設定はパケット転送を許可しますが、それ自体ではファイアウォールを開いたり、NATを提供したりするものではありません。

Debianホスト上に、ファイル権限を制限したサーバーキーを作成します。
sudo install -d -m 700 /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key; wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'
可能であれば、クライアントデバイス上でクライアントキーペアを生成します。Linuxクライアントに以下のものがwireguard-toolsインストールされている場合:
umask 077
wg genkey | tee client.key | wg pubkey > client.pub
電話の場合は、公式のWireGuardアプリで新しいトンネルを作成し、プロファイルキーを生成させてください。クライアントの公開鍵のみをサーバーにコピーしてください。公開鍵はclient.key秘密に保管し、サーバーの設定に貼り付けたり、チャットで送信したりしないでください。キーコマンドとインターフェースフィールドについては、Debian Bookwormのwg(8)マニュアルを参照してください。
以下の構造で作成します/etc/wireguard/wg0.conf。各大文字のプレースホルダーを対応する実際のキーに置き換えます。サーバーの秘密鍵をローカルで読み込みsudo cat /etc/wireguard/server.key、クライアントの公開鍵をピアセクションに配置します。
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
秘密鍵が含まれているため、ファイルを保護してください。
sudo chown root:root /etc/wireguard/wg0.conf
sudo chmod 600 /etc/wireguard/wg0.conf
AllowedIPs = 10.8.0.2/32このピアに 1 つの VPN アドレスを割り当て、他のピアがそれを使用できないようにします。追加のデバイスごとに、独自のキー ペアと、 などの固有のアドレスを割り当ててください10.8.0.3/32。個別の失効または ID が必要な場合は、1 つのクライアント プロファイルを複数のデバイスで再利用しないでください。

サンプルとなる完全な IPv4 トンネルの場合、送信パケットは10.8.0.0/24送信元 NAT を備えたパブリックインターフェースを経由して送信されなければなりません。サーバーの既存の nftables 設定またはファイアウォールマネージャに同等のルールを追加します。このスタンドアロンの nftables テーブルはルールを示しています。eth0ステップ 2 で検出されたインターフェースに置き換えてください。
table ip wg_nat {
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
ip saddr 10.8.0.0/24 oifname "eth0" masquerade
}
}
Debian の nftables を使用する場合はnftables.service、テーブルをサービスが起動時にロードする設定にマージし、sudo nft -c -f /etc/nftables.conf再ロードする前に完全なファイルを検証してください。現在の設定が既存のルールをフラッシュまたは置き換えるかどうかを確認してから適用してください。NAT だけでは、トラフィックをドロップするフォワードチェーン ポリシーを上書きすることはできません。wg0アクティブなファイアウォールで、WAN インターフェイスへの転送と戻りトラフィックを許可してください。Debian のnft(8)マニュアルには、nftables ルールのロードと NAT ステートメントについて記載されています。
VPSプロバイダのファイアウォールとホストのファイアウォールの両方で、受信UDPポート51820を許可してください。このWireGuardトンネルではTCPポート51820を開放しないでください。ファイアウォールポリシーを変更する際は、SSHアクセスルールはそのまま維持し、ファイアウォールの再起動によって接続が切断される可能性がある場合は、プロバイダのコンソールなどの復旧手段を使用してください。

WireGuardクライアントアプリで新しいトンネルを作成するか、Linuxクライアントで以下のような設定を保存してください。秘密鍵、サーバー公開鍵、エンドポイントは実際の値に置き換えてください。下記のTEST-NETアドレスは単なる例であり、実際のサーバーには接続されません。
[Interface]
Address = 10.8.0.2/32
PrivateKey = CLIENT_PRIVATE_KEY
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = 203.0.113.10:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0IPv4 宛先をトンネル経由でルーティングするため、完全な IPv4 トンネルの選択肢となります。WireGuard サーバーのアドレスのみに到達する狭いスプリット トンネルの場合は、10.8.0.0/24代わりに を使用してください。サーバーの背後にある LAN にアクセスするには、クライアントの にその LAN の実際のサブネットを含めAllowedIPs、戻りルートまたは適切な NAT を追加し、サーバー ファイアウォールを介してトラフィックを許可します。これらの手順は LAN ルーターに依存するため、この例には含まれません。
PersistentKeepalive = 25NAT の背後にあるクライアントがアイドル状態の後もアクセス可能な状態を維持できるようにするのに役立ちます。これはオプションです。WireGuard のドキュメントによると、ほとんどのユーザーはこれを必要としませんが、NAT マッピングを開いたままにしておく必要がある一般的な間隔として 25 秒が示されています。このDNSフィールドは、一部のクライアントおよび に基づくクライアントでサポートされていますwg-quick。アプリがこれを無視する場合は、そのアプリ独自のコントロールを使用して DNS を設定してください。

Debianでは、起動時に以下のコマンドでインターフェースを起動します。
sudo systemctl enable --now wg-quick@wg0
sudo wg show
UDP 51820 に到達可能になったら、クライアント プロファイルをインポートまたはアクティブ化してください。 でwg show、期待されるピアが表示され、latest handshakeクライアントがトラフィックを送信した後に が更新されることを確認してください。Debian wg-quick(8)Bookworm のマニュアルには、 systemd ユニットで使用されるインターフェース設定ヘルパーについて説明されています。
ハンドシェイクが失敗する場合は、まず到達可能性またはキーの不一致が考えられます。エンドポイントのアドレスとポート、UDPファイアウォールルール、クライアントプロファイル内のサーバー公開鍵、クライアント公開鍵wg0.conf、および正しいシステム時刻を確認してください。トラフィックが機能しないハンドシェイクは、通常、転送、NAT、ルートの重複、またはファイアウォールの転送チェーンルールが原因です。

クライアントが接続されたら、まずサーバーのトンネルアドレスをテストし、次に外部のIPv4アドレスチェックサービスで確認できるパブリックIPv4アドレスを確認します。
ping -c 3 10.8.0.1
curl -4 https://ifconfig.me
ICMPが許可されていれば、pingはサーバーに到達するはずです。外部IPv4チェックでは、このフルトンネル設定におけるVPSのパブリック出力アドレスが表示されるはずです。パブリックアドレスが変更されない場合は、AllowedIPs転送、NATインターフェース名、およびファイアウォールの転送ポリシーを確認してください。
この例は IPv4 のみに対応しています。IPv6AllowedIPs = 0.0.0.0/0はルーティングされないため、IPv6 接続を持つクライアントはトンネル外に IPv6 トラフィックを送信する可能性があります。この構成を完全なデュアルスタックプライバシー トンネルとして説明しないでください。WireGuard を介して IPv6 を伝送するには、トンネルに IPv6 アドレスを割り当ててルーティングし、IPv6 転送を有効にし、適切なファイアウォールとルーティング ルールを設定し、::/0そのパスがエンドツーエンドで正常に動作した後にのみクライアントを追加してください。プロバイダのサポート状況は異なります。それ以外の場合は、スプリット トンネル ポリシーを慎重に選択し、クライアントの IPv6 動作を確認してください。


net.ipv4.ip_forward=1 NATルールが実際の送信インターフェースを使用しており、ファイアウォールが転送トラフィックを許可していることを確認してください。10.8.0.0/24。必要に応じてトンネルの番号を変更し、ピアとファイアウォールルールの両方を同時に更新してください。wg-quick@wg0ファイアウォールとsysctlの設定が有効になっており、システムの通常の構成を通じて設定が保持されることを確認してください。セットアップが完了したと判断する前に、サーバーサービスがアクティブであること、wg show最近のハンドシェイクが報告されていること、転送カウンタが増加していること、クライアントが に到達できること10.8.0.1、および IPv4 出力チェックでサーバーのパブリック アドレスが報告されていることを確認してください。永続的なファイアウォールと転送設定が正しく適用された後にのみ再起動し、これらのチェックを繰り返してください。追加のピアについては、個別のキー ペアと固有のトンネル IP を発行し、ピア エントリを削除してインターフェイスを再読み込みすることでデバイスを削除してください。
リモートクライアント1台用に、Debian 12 WireGuard VPNサーバーをセットアップします。キー、IPv4フォワーディング、nftables NAT、ファイアウォールアクセス、接続チェックを設定します。
Harden a Debian 12 workstation with a careful CIS Benchmark workflow: select the right profile, patch safely, review services and access, configure nftables, and document evidence.
Debian 12 で発生する MySQL の OOM による強制終了を診断し、VPS のメモリ制限を確認し、スワップを設定し、データベースのメモリと同時実行性を調整します。ただし、万能な解決策を保証するものではありません。
Learn how to create and test a Debian-derived OSTree desktop in a VM, including system-tree preparation, boot integration, deployment checks, and rollback.
Configure an SSHFS boot mount in Debian with SSH keys, fstab, and systemd automount. Includes reboot checks, permissions, timeouts, and troubleshooting.
東京の2026年10月に確認したい住まいの手入れを解説。台風や秋雨に備えるベランダ排水・窓の点検、エアコンフィルター掃除、室内の湿気対策、賃貸と持ち家の連絡先をまとめました。平年値と最新予報の違いも紹介します。
東京都の2026年10月に種まき・植え付けできる小松菜、ホウレンソウ、春菊、ソラマメ、ハーブ、パンジーや球根を紹介。気象庁の平年値と最新予報の違い、霜や残暑への備え、週ごとの作業目安も確認できます。
ポッドキャスト初心者の方へ。動画、発見、文字起こし、AI、分析、収益化、そして実践的な立ち上げ計画など、2026年のトレンドについて学びましょう。
顧客コンテンツとクリエイターコンテンツの真正性を損なうことなく、コンテンツの調達、許可取得、ブリーフィング、公開、測定を行うための実践的なUGCマスタークラス。
コミュニティ構築は、信頼関係、顧客維持、フィードバック、そして支持を深めるのに役立ちますが、あらゆるマーケティングチャネルの代替となるものではありません。それぞれのメリット・デメリットを比較検討し、最適なモデルを選択しましょう。