自宅ラボ環境を運用していると、ふとこんな悩みが出てくることがあります。
- 外部からラボ環境にアクセスしたいけど、安全な方法が分からない
- VPSを使って自宅から外に出るゲートウェイが欲しい
- ZabbixやSyslogなど、自宅にあるサーバーの通知を安全に外部に届けたい
私の場合、きっかけは「自宅ラボのアラートメールを外部に届ける手段がほしかった」ことでした。
たとえばProxmoxやWazuh、Zabbixなどで検知した異常をVPS経由でメール送信できれば、出先でもトラブルに気づくことができます。
また、VPSをリバースプロキシとして活用したり、自宅のSyslogをVPSに転送して一元管理したりと用途は広がると考えています。
こうした背景のもと、自宅にあるRaspberry PiとVPSをWireGuardで接続し、安全なVPNトンネルを構築することにしました。
この記事ではその手順や構成、つまずいたポイントを丁寧に解説していきます。
自宅ラボ環境の構築ではどのハードウェアやVPSを選ぶかも重要です。
もしこれから構築を検討している方は以下の記事も参考にしてみてください。
構成

WireGuardによって10.0.0.0/24 の仮想ネットワークが構築され、 自宅ラボとVPSが安全に通信できるようになります。
経路設定を正しく行えばRaspberry PiをVPNゲートウェイとして、自宅内のミニPCなど他の端末からもVPSへアクセスすることが可能です。
詳しい設定は省略しますが、これにより自宅ラボ全体からVPSへの安全な通信経路を構築できるようになります。
前提条件と準備
自宅側(Raspberry Pi)
- Raspberry Pi OS(Debianベース)
wireguard
パッケージがインストール済み
sudo apt update
sudo apt install wireguard
VPS側(AlmaLinux)
- AlmaLinux 8 以上
- EPELとELRepoリポジトリの有効化
kmod-wireguard
およびwireguard-tools
のインストール
sudo dnf install epel-release elrepo-release -y
sudo dnf install kmod-wireguard wireguard-tools -y
WireGuardモジュールが読み込まれているか確認
lsmod | grep wireguard
鍵の作成
両方の端末で秘密鍵と公開鍵を作成します。
wg genkey | tee private.key | wg pubkey > public.key
private.key
:自分の秘密鍵。wg0.conf
に指定public.key
:相手側に渡す公開鍵
生成された鍵は /etc/wireguard/
配下など、適切な場所に保管してください。
WireGuardの設定ファイル
VPS側(サーバー) /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
PrivateKey = サーバーの秘密鍵
ListenPort = 51820
[Peer]
PublicKey = クライアントの公開鍵
AllowedIPs = 10.0.0.2/32
自宅側 Raspberry Pi(クライアント) /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.2/24
PrivateKey = クライアントの秘密鍵
[Peer]
PublicKey = サーバーの公開鍵
Endpoint = VPSのグローバルIP:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25
サービスの起動と有効化
sudo systemctl enable --now wg-quick@wg0
接続状態の確認
sudo wg
transfer
に送受信量が表示されていれば通信成功ping 10.0.0.1
(PiからVPS)やping 10.0.0.2
(VPSからPi)で通信確認
iptablesの調整(VPS側)
VPSで iptables
を使用している場合、以下のような設定が必要です:
# WireGuard用のUDPポートを許可
iptables -A INPUT -p udp --dport 51820 -j ACCEPT
# 仮想ネットワークの出力を許可
iptables -A OUTPUT -d 10.0.0.2 -p udp -j ACCEPT
# ICMPの許可(ping用)
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
必要に応じて nat
テーブルでの POSTROUTING
設定を行いますが、単純なラボ内通信であれば不要なケースもあります。
トラブルシューティングポイント

- 鍵のミスマッチ:公開鍵と秘密鍵の対応が逆になっていないか確認
- iptablesのブロック:OUTPUTチェーンでUDPが制限されていないか
- 自宅ルーターのNAT越え:ISPのNAT環境下では、クライアントからの接続発信と
PersistentKeepalive
が重要 - 通信状況の確認:
tcpdump -i eth0 udp port 51820
でパケットキャプチャを活用
まとめ
Raspberry PiとVPSをWireGuardで接続することでセキュアで柔軟なVPNネットワークを構築できました。
今後は以下のような展開を考えています
- Proxmox仮想マシンのHTTPアクセスをVPS経由で外部公開
- 自宅のログサーバーからVPSにログを転送
- Gitやリモートバックアップ環境の構築
自宅ラボとVPSを連携させることでより現実的なIT環境を作り出せるはずです。
関連記事:目的にあわせたLinux環境の作り方ガイド
自宅でLinuxサーバーや自動化の検証環境を構築したい方向けに、VPSやミニPCを使ったはじめ方や比較記事を目的別にまとめました。
実際に手を動かしながら学びたい方におすすめです。
VPS初心者の方におすすめ
自宅ラボを始めたい方向け
比較して選びたい方向け