VPN設定 · 2 min read · Sep 09, 2025
Debian 12にWireGuard VPNをインストールする

Wireguardは、IPSec、IKEv2、およびOpenVPNのオープンソースVPNプロトコルの代替です。WireguardはLinuxおよびUnixオペレーティングシステム向けに設計されており、Linuxカーネル空間で動作するため、Wireguardはより高速で信頼性があります。Wireguardは、2台以上のコンピュータ間で安全なトンネル接続を作成するために使用されます。
Wireguardは、IPSec、IKEv2、およびOpenVPNなどのVPNプロトコルを置き換えることを目指しています。Wireguardは軽量で、高速で、設定が簡単で、より効率的です。同時に、WireguardはVPNプロトコルのセキュリティ面を犠牲にしていません。Wireguardは、Noiseプロトコルフレームワーク、Curve25519、ChaCha20、Poly1305、BLAKE2、SipHash24、HKDF、および安全な信頼できる構造などの現代の暗号技術をサポートしています。
このガイドでは、Debian 12サーバーにWireguard VPNをインストールし、LinuxマシンでWireguardクライアントを構成する方法を示します。
前提条件
始める前に、以下の要件を満たしていることを確認してください:
- Debian 12を実行しているLinuxサーバー。
- sudo権限を持つ非rootユーザー。
- クライアントマシン - この場合、Debianベースのディストリビューションを使用します。
システムの準備
Wireguardをインストールする前に、以下の変更を行ってDebianサーバーを準備する必要があります:
- /etc/sysctl.confを介してポートフォワーディングを有効にする
- UFWをインストールして構成する
さあ、始めましょう。
ポートフォワーディングを有効にする
ポートフォワーディングを有効にするには、IPv4用のカーネルモジュールnet.ipv4.ip_forwardまたはIPv6用のnet.ipv6.conf.all.forwardingを有効にする必要があります。これらのカーネルモジュールは、/etc/sysctl.confファイルを介して有効にできます。
以下のnanoエディタコマンドを使用して、/etc/sysctl.confファイルを開きます。
sudo nano /etc/sysctl.confポートフォワーディングをIPv4およびIPv6の両方に対して有効にするために、以下の設定を挿入します(必要に応じて)。
# IPv4用ポートフォワーディング
net.ipv4.ip_forward=1
# IPv6用ポートフォワーディング
net.ipv6.conf.all.forwarding=1ファイルを保存し、終了したらエディタを閉じます。
次に、以下のsysctlコマンドを使用して変更を適用します。
sudo sysctl -pUFWのインストール
Debianのデフォルトファイアウォールはiptablesであり、これからUFWをインストールします。Wireguardサーバーには、UFWとiptablesの両方を使用します。
以下のaptコマンドを実行して、リポジトリを更新し、DebianシステムにUFWをインストールします。
sudo apt update && sudo apt install ufw -y
次に、以下のufwコマンドを実行してOpenSSHアプリケーションプロファイルを追加し、UFWを有効にします。yと入力してENTERを押して確認し、メッセージ「ファイアウォールはアクティブで、システム起動時に有効です」が表示されるはずです。
sudo ufw allow OpenSSH
sudo ufw enable
最後に、以下のコマンドを使用してUFWのステータスを確認します。
sudo ufw status実行中であれば、「ステータス:アクティブ」という出力が表示されます。また、OpenSSHアプリケーションプロファイルがUFWに追加されていることも確認できます。

Wireguardサーバーのインストール
Debianサーバーの構成が完了したら、DebianマシンにWireguard VPNサーバーを作成する準備が整いました。以下のタスクを完了して実現します:
- Wireguardのインストール
- Wireguardサーバーキーの生成
- Wireguardクライアントキーの生成
- Wireguardインターフェースの構成
- WireguardインターフェースのNAT設定
さあ、やりましょう。
Wireguardのインストール
まず、以下のコマンドを実行して、Debianサーバーにwireguardパッケージをインストールします。
sudo apt install wireguardyと入力してインストールを続行します。

Wireguardサーバーキーの生成
wireguardパッケージがインストールされたら、次のタスクはサーバー証明書を生成することです。これはwgコマンドラインツールを使用して行うことができます。
以下のコマンドを実行して、wireguardサーバーのプライベートキーを/etc/wireguard/server.keyに生成します。次に、サーバープライベートキーの権限を0400に変更します。これは、ファイルへの書き込みアクセスを無効にすることを意味します。
wg genkey | sudo tee /etc/wireguard/server.key
sudo chmod 0400 /etc/wireguard/server.key次に、以下のコマンドを実行して、wireguardサーバーのパブリックキーを/etc/wireguard/server.pubに生成します。
sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub
これで、wireguardサーバーのプライベートキーが/etc/wireguard/server.keyに、パブリックキーが/etc/wireguard/server.pubに生成されました。以下のcatコマンドを実行して、プライベートキーとパブリックキーの両方の内容を表示できます。
cat /etc/wireguard/server.key
cat /etc/wireguard/server.pub出力は異なる場合がありますが、生成されたキーは以下のようになります。
Wireguardクライアントキーの生成
wireguardサーバーキーが生成されたので、次のタスクはクライアント用のキーを生成することです。各ユーザーのためにクライアントキーを生成できますが、複数のユーザーに対して単一のキーを使用することもできます。
この例では、特定のユーザーaliceのためにクライアントキーを生成します。
まず、以下のコマンドを実行して、クライアントキーを保存するための新しいディレクトリを作成します。この場合、ユーザーaliceのパブリックキーとプライベートキーは/etc/wireguard/clients/aliceディレクトリに生成されます。
mkdir -p /etc/wireguard/clients/alice次に、以下のコマンドを実行して、ユーザーaliceのプライベートキー/etc/wireguard/clients/alice/alice.keyとパブリックキー/etc/wireguard/clients/alice/alice.pubを生成します。
wg genkey | tee /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.key | wg pubkey | tee /etc/wireguard/clients/alice/alice.pub最後に、以下のコマンドを実行して、ユーザーaliceのプライベートキーとパブリックキーの内容を表示します。
cat /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.pub以下のような出力が表示されます。
Wireguardインターフェースの構成
サーバーとクライアントの両方のプライベートキーとパブリックキーが生成されたので、次のタスクはWireguardインターフェースとピアを構成することです。WireguardネットワークVPN用のインターフェースと、クライアントとサーバー間で確立されるピアを構成します。
以下のnanoエディタコマンドを使用して、新しいWireguard構成/etc/wireguard/wg0.confを作成します。
sudo nano /etc/wireguard/wg0.confファイルに以下の構成を挿入します。
[Interface]
# Wireguardサーバーのプライベートキー - server.key
PrivateKey = cNBb6MGaKhmgllFxSq/h9BdYfZOdyKvo8mjzb2STbW8=
# Wireguardインターフェースは10.10.0.1で実行されます
Address = 10.10.0.1/24
# クライアントはUDPポート51820に接続します
ListenPort = 51820
# 変更がWireguard構成ファイルに保存されることを確認します
SaveConfig = true以下の詳細パラメータが[Interface]セクション内で使用されます:
- PrivateKey: wireguardサーバーのプライベートキーserver.keyの内容を入力します。
- Address: Wireguardインターフェースに割り当てられるIPアドレスです。この場合、wireguardインターフェースはIPアドレス10.10.0.1を持ちます。
- ListenPort: これは、クライアントがwireguardサーバーに接続するために使用されるポートです。この場合、ポート51820が使用されます。
- SaveConfig: 値trueは、インターフェースの現在の状態からの変更がシャットダウン時に保存されることを意味します。
次に、wireguardクライアント用の以下の[Peer]セクションを追加します。
[Peer]
# Wireguardクライアントのパブリックキー - alice.pub
PublicKey = 3ZoaoVgHOioZnKzCrF/XALAv70V4vyJXpl/UO7AKYzA=
# 接続を許可するクライアントのVPN IPアドレス
# サブネットを指定することも可能 ⇒ [10.10.0.0/24]
AllowedIPs = 10.10.0.2/24以下は、[Peer]セクション内で使用されるパラメータです:
PublicKey: このパラメータにwireguardクライアントのパブリックキーを入力します。この場合、パブリックキーalice.pubの内容です。
AllowedIPs: クライアントのIPアドレスを定義し、トラフィックをwireguardインターフェースにルーティングします。
完了したら、ファイルを保存して閉じます。
最後に、以下のコマンドを実行して、クライアント接続のためにポート51820/udpを開きます。
sudo ufw allow 51820/udpWireguardインターフェースのNAT設定
まず、以下のコマンドを実行して、インターネットに接続するために使用されるデフォルトゲートウェイインターフェースを表示します。
sudo ip route list defaultこの場合、デフォルトのネットワークインターネットゲートウェイはインターフェースeth0です。
次に、以下のnanoエディタコマンドを使用して、wireguard構成/etc/wireguard/wg0.confを開きます。
sudo nano /etc/wireguard/wg0.conf以下の構成を[Interface]セクションの下に追加し、インターフェースeth0をデフォルトのインターネットゲートウェイインターフェースに変更してください。
[Interface]
...
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE完了したら、ファイルを保存して閉じます。
これで、Wireguardサーバーの構成が完了しました。
Wireguardサービスの管理
Wireguardサーバーのインストールと構成が完了したので、DebianシステムでWireguardサービスを開始する準備が整いました。これはsystemctlコマンドまたはwg-quickユーティリティを使用して行うことができます。
Wireguardサーバーを開始して有効にするには、以下のsystemctlコマンドを実行します。サービス名wg-quick@wg0を使用して、/etc/wireguard/wg0.confに基づいてWireguardをwg0インターフェース内で開始します。
sudo systemctl start [email protected]
sudo systemctl enable [email protected]次に、以下のコマンドを使用してwirguard@wg0サービスを確認します。
sudo systemctl status [email protected]サービスが実行中であれば、以下の出力が表示されます。

次に、以下のipコマンドを実行してwireguardインターフェースwg0の詳細を表示します。wireguardインターフェースwg0がIPアドレス10.10.0.1を持っていることが確認できます。
sudo ip a show wg0
また、以下のwg-quickコマンドを使用して、wireguardを手動で開始または停止することもできます。
sudo wg-quick up /etc/wireguard/wg0.conf
sudo wg-quick down /etc/wireguard/wg0.confこれで、Wireguardサーバーが構成され、systemctlコマンドを介してバックグラウンドで開始されました。クライアントは、wireguardサーバーに接続する準備が整いました。
DebianベースのディストリビューションでのWireguardクライアントの設定
次のセクションでは、Debianベースのディストリビューション用のwireguardクライアントを構成します。wireguardツールをインストールし、wireguardクライアント構成を作成し、wireguardサーバーに接続し、wgユーティリティを介して接続を確認し、インターネットにアクセスします。
クライアントマシンにwireguard-toolsパッケージをAPTを介してインストールします。クライアントマシンはDebianベースのディストリビューションであるため、APTパッケージマネージャーが使用されます。
sudo apt install wireguard-tools resolvconf
wireguard-toolsをインストールした後、以下のnanoエディタを使用して新しいwireguardクライアント構成/etc/wireguard/wg-alice.confを作成します。
sudo nano /etc/wireguard/wg-alice.confファイルに以下の構成を挿入します。
[Interface]
# クライアントのIPアドレスを定義します - Wireguardサーバーのwg0と一致する必要があります
Address = 10.10.0.2/24
# 特定のDNSサーバー
DNS = 1.1.1.1
# クライアントのプライベートキー - alice.key
PrivateKey = cPDg6SQHz/3l2R83lMWPzmR6/mMKnKp9PNImbtB6nGI=
[Peer]
# Wireguardサーバーのパブリックキー - server.pub
PublicKey = APyBQvTkYVm0oakzcQUQViarwx1aIYz5wb/g2v2xdUE=
# Wireguard VPNを介してルーティングされるすべてのトラフィックを許可
AllowedIPs = 0.0.0.0/0
# WireguardサーバーのパブリックIPアドレス
Endpoint = 192.168.128.15:51820
# 25秒ごとにKeepaliveを送信
PersistentKeepalive = 25完了したら、ファイルを保存して閉じます。
以下は、wireguardクライアントの[Interface]セクション内のいくつかのパラメータです:
- Address: クライアントマシンのwireguardインターフェースの内部IPアドレスを指定します。
- DNS: クライアントのデフォルトDNSサーバーを設定します。
- PrivateKey: wireguardクライアントのプライベートキーで、この場合はalice.keyです。
そして、wireguardクライアント構成の[Peer]セクション内では:
- PublicKey: これはwireguardサーバーのパブリックキーで、server.pubです。
- AllowedIPs: wireguardインターフェースを介してルーティングされるすべてのアクセスを許可します。
- Endpoint: wireguardサーバーのIPアドレスとポートです。
- PersistentKeepalive: 接続を維持するためにx秒ごとにkeepaliveを送信します。
次に、以下のwg-quickコマンドを実行して、インターフェースwg-aliceでwireguardを開始します。
sudo wg-quick up wg-aliceすべてがうまくいけば、以下のような出力が表示されます。

その後、以下のipコマンドを実行して、インターフェースwg-aliceの詳細を確認します。wg-aliceインターフェースがローカルIPアドレス10.10.0.2を持っていることが確認できます。
sudo ip a show wg-alice
次に、以下のコマンドを実行してクライアントマシンのインターネット接続を確認します。
ping -c3 10.10.0.1
ping -c3 1.1.1.1
ping -c3 duckduckgo.comWireguardサーバーのインストールが成功していれば、各ターゲットサーバーからの応答が表示されます。

さらに、以下のコマンドをwireguardサーバーまたはクライアントマシンで実行することで、wireguardサーバーとクライアント間の接続の詳細を確認できます。
wg show以下のような出力が表示されます。

最後に、クライアントマシンでwireguard接続を停止するには、以下のwg-quickコマンドを実行します。
sudo wg-quick down wg-alice
結論
まとめると、Debian 12サーバーにWireguard VPNをステップバイステップでインストールすることができました。また、Wireguardで構成されたDebianベースのクライアントマシンを設定し、Wireguardサーバーに接続しました。これを考慮に入れると、Wireguardキーとピア構成を追加することで、さらに多くのクライアントを追加できます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。