VPN-クライアント設定編WireGuard
2025/11/11
VPNに繋ぐクライアント設定
wireguardの外部サーバーを使った構成は、外部サーバー(中心的な中継サーバー)以外はすべて同じ扱いであり、どのパソコンからどのパソコンに繋ぐかは、運用として決めます。ここでは、職場にあるwindows機A(10.200.0.2とする)に外出先パソコン2機(B機 windows 10.200.0.10,C機 linux 10.200.0.11)からつなぐような運用を想定しています。
構成概要
| 項目 | 設定値 |
|---|---|
| VPSグローバルIP | 160.xxx.xxx.185 |
| WireGuardポート | 5xxx0/udp |
| VPNネットワーク | 10.200.0.0/24 |
| VPS VPN IP | 10.200.0.1 |
| 事務所PC A | 10.200.0.2 |
| 外出先端末B (Windows) | 10.200.0.10 |
| 外出先端末C (Linux antiX) | 10.200.0.11 |
STEP 1: クライアント鍵ペア生成
Windows機での鍵ペア生成
WireGuard for Windowsのインストール
- 公式サイトからダウンロード:https://www.wireguard.com/install/
- wireguard-installer.exeを実行してインストール
鍵ペア生成
- WireGuardアプリを起動
- 「トンネルを追加」→「空のトンネルを追加」をクリック
- 自動的に秘密鍵と公開鍵が生成されるはず。
- トンネル名を入力(任意で決めて良い)
例: wireguard-tips456
※鍵ペアは、必ず、WireGuardの機能で作成するようにしましょう。専用のものです。
公開鍵の登録
それぞれのクライアント端末の公開鍵は、すべて中継サーバー(VPS)の設定に転記します。中継サーバー(VPS)の公開鍵(public.key)は、すべてのクライアント端末のwireguardに転記します。
これにより、中継サーバーが中心となって、すべてのクライアント間のVPNを構築することとなります。
くれぐれも秘密鍵を転記しないようにしてください。
STEP 2: 中継サーバ側 Peer 登録
中継サーバ(さくらVPS)側の設定です。/etc/wireguard/wg0.conf を編集します。
※microはお好きなエディタに置き換えてください。
sudo micro /etc/wireguard/wg0.conf内容:
中継サーバーの情報はすでに、WireGuard設定時に記載されたはずなので、重複しないようにしてください。
サブネットマスクは中継サーバーだけが、/24 であり、他は /32 なので気を付けてください。
5xxx0はサーバー編で設定したUDPポートです
[Interface] Address = 10.200.0.1/24 ListenPort = 5xxx0 PrivateKey = (サーバ秘密鍵) # クライアント登録 [Peer] # 事務所PC A PublicKey = (office-pc-public.key) AllowedIPs = 10.200.0.2/32 [Peer] # 外出先端末B (Windows) PublicKey = (mobile-win-public.key) AllowedIPs = 10.200.0.10/32 [Peer] # 外出先端末C (Linux antiX) PublicKey = (mobile-linux-public.key) AllowedIPs = 10.200.0.11/32WireGuard再起動:
sudo systemctl restart wg-quick@wg0 sudo wg show
STEP 3: クライアント設定テンプレート
続いて、各クライアントに中継サーバーの公開鍵を転記します。WireGuardのアプリの「編集」から、[Peer]のほうにサーバーの公開鍵を転記します。
中継サーバーの公開鍵は中継サーバーで確認し、コピーします。
公開鍵の確認
sudo wg show
事務所PC A (Windows)
160.xxx.xxx.185:5xxx0 は中継サーバのIPアドレスとポートです。[Interface]は/32 [Peer] は/24
[Interface] Address = 10.200.0.2/32 PrivateKey = (office-pc-private.key) DNS = 8.8.8.8, 1.1.1.1 [Peer] PublicKey = (server_public.key) Endpoint = 160.xxx.xxx.185:5xxx0 AllowedIPs = 10.200.0.0/24 PersistentKeepalive = 25
外出先端末B (Windows)
ウィンドウズ端末での追加設定はこちら[Interface] Address = 10.200.0.10/32 PrivateKey = (mobile-win-private.key) DNS = 8.8.8.8, 1.1.1.1 [Peer] PublicKey = (server_public.key) Endpoint = 160.xxx.xxx.185:5xxx0 AllowedIPs = 10.200.0.0/24 PersistentKeepalive = 25
外出先端末C (antiX Linux)
antiXの場合、#DNS = 8.8.8.8, 1.1.1.1
とコメントアウトします。
WireGuardは、resolve.confをスタート時に書き換えるのですが、終了時に元に戻してくれません。
一般のlinuxであれば、linuxのほうでリカバリーできるそうですが、antiXは軽量版のため、そこまで面倒見がよくありません。
他の軽量linuxはわかりません。
[Interface] Address = 10.200.0.11/32 PrivateKey = (mobile-linux-private.key) #DNS = 8.8.8.8, 1.1.1.1 [Peer] PublicKey = (server_public.key) Endpoint = 160.xxx.xxx.185:5xxx0 AllowedIPs = 10.200.0.0/24 PersistentKeepalive = 25
STEP 4: 接続テスト
# 各クライアントでVPN起動 wg-quick up wg0 # Linux # Windows: WireGuardアプリで「有効化」 # VPSへPing ping 10.200.0.1 # 事務所PCへPing ping 10.200.0.2 # VPS側で確認 sudo wg show
Windows端末での注意点
Windowの設定によっては、以下の設定をしないとpingが通らないものもあるようです。※ PowerShellを管理者権限で実行
私の環境では、下記の設定をしなくても通る機もあれば、1をしないと通らない機もあります。
2は遭遇していないですが、念のための記載です。
※ひょっとしたらインターネット直繋ぎか、プライベートLAN経由かによって違うのかもしれません。
1.WireGuardのネットワークを public → private に変更
Set-NetConnectionProfile -InterfaceAlias "(wireguardのトンネル名)" -NetworkCategory Private
2.10.200.0.0/24については、通信(TCP,RDP)が通るようにします。
# ICMP (Ping) を WireGuardサブネットから許可 New-NetFirewallRule -DisplayName "Allow ICMP from WireGuard subnet" ` -Protocol ICMPv4 -Direction Inbound -Action Allow ` -RemoteAddress 10.200.0.0/24 -Profile Private # RDP (3389) を WireGuardサブネットから許可(必要なら) New-NetFirewallRule -DisplayName "Allow RDP from WireGuard subnet" ` -Protocol TCP -LocalPort 3389 -Direction Inbound -Action Allow ` -RemoteAddress 10.200.0.0/24 -Profile Private
STEP 5: RDP確認
Windows外出先端末Bから:
RDP先: 10.200.0.2ポート: 3389
ユーザ: 事務所PCのWindowsユーザ名
Linux外出先端末Cから:
remmina # 新規接続: RDP / 10.200.0.2 / ユーザ名・パスワード
STEP 6: セキュリティ補足
秘密鍵(private.key)は絶対に他端末にコピーしない。クライアント紛失時はwg0.confの該当Peerを削除。
firewalld / fail2banは既に恒久設定済み。
これでVPN網 (10.200.0.0/24) に3台のクライアントが登録完了し、外出先から事務所PCへRDPアクセスが可能になります。