「月額VPN代、ずっと払い続けるのもったいないな」と感じたことはありませんか。
VPNを自分のサーバーで動かせば、月額費用をほぼゼロに抑えられます。しかも、データが第三者のサーバーを経由しないので、プライバシー面でも安心です。
結論から言うと、WG-EasyかTailscaleを使えば、コード不要で自前VPNが構築できます。r/selfhostedコミュニティで定期的に行われるVPNアンケートでも、この2系統が常に上位に入っています。
VPNが初めての方は基本編から、WireGuardをご存知の方は応用編・比較表からどうぞ。
【この記事で分かること】
- セルフホストVPNの仕組みと月コスト感
- WireGuard / WG-Easy / Tailscale / Headscaleの違い
- WG-EasyでVPNサーバを立てる最小手順
- 目的別おすすめの選び方
セルフホストVPNとは?まず30秒で理解する
VPN(Virtual Private Network)は、インターネット上に「暗号化トンネル」を作る技術です。カフェのWi-Fiなど信頼できないネットワークでも、自宅や会社のネットに安全につながれます。
NordVPNやExpressVPNのような商用VPNは、事業者のサーバーを経由します。セルフホストVPNは、自分のVPS(仮想プライベートサーバー)にVPNサーバーを建てて運用します。
| 商用VPN | セルフホストVPN | |
|---|---|---|
| 月額費用 | 500〜1,500円 | VPS代のみ(500〜1,000円) |
| データの流れ | 事業者サーバー経由 | 自分のサーバーのみ |
| 初期設定 | ほぼゼロ | 初回設定に1〜2時間 |
| カスタマイズ | 限定的 | 自由 |
費用は大差ないように見えますが、自分のサーバーなのでログが外部に漏れないこと、自宅NASやローカルAIサーバーへのアクセスをどこからでも安全に行えることが大きなメリットです。
セルフホストVPNに必要なもの
セルフホストVPNを始めるために用意するものは、おおむね3つです。
1. VPS(仮想プライベートサーバー)
VPNサーバーを置く「家」になるのがVPSです。自宅サーバーでも動きますが、固定IPが取得でき安定稼働しやすいVPSが便利です。月額1,000円前後のエントリープランで十分動きます。
ConoHa VPSはメモリ512MBプランから始められ、管理コンソールが日本語で使いやすいので初心者にもおすすめです。セキュリティグループの設定がGUIで完結できる点も助かります。
2. OS:Ubuntu 22.04 推奨
VPSのOSはUbuntu 22.04 LTSを選びましょう。WireGuardはLinuxカーネル5.6以降に標準搭載されており、Ubuntu 22.04なら追加インストール不要でそのまま使えます。
3. 基本的なSSH操作の知識
ターミナルでSSH接続してコマンドを打てれば十分です。「ls」「cd」「sudo」が分かれば問題ありません。設定ファイルの編集が不要なWG-Easyを使う場合は、Dockerコマンド1本で完結します。
【基本編】WG-EasyでWireGuardを5分で動かす手順
WireGuardを最も簡単に使う方法がWG-Easyです。Dockerコンテナで起動するだけで、ブラウザから操作できるWeb管理画面が付いてきます。QRコードでスマートフォンへの接続も簡単です。
ステップ1:VPSにDockerをインストールする
curl -fsSL https://get.docker.com | sh
上記のワンコマンドでDockerが入ります。docker --versionでバージョンが表示されれば成功です。
ステップ2:WG-Easyを起動する
docker run -d
--name=wg-easy
-e WG_HOST=【VPSのパブリックIP】
-e PASSWORD=【管理画面パスワード】
-v /etc/wireguard:/etc/wireguard
-p 51820:51820/udp
-p 51821:51821/tcp
--cap-add=NET_ADMIN
--cap-add=SYS_MODULE
--sysctl="net.ipv4.conf.all.src_valid_mark=1"
--sysctl="net.ipv4.ip_forward=1"
--restart unless-stopped
weejewel/wg-easy
WG_HOSTにはVPSのパブリックIPアドレスを入力します。VPSのコントロールパネルで確認できる「グローバルIP」です。
ステップ3:ポートを開放する
VPSのファイアウォール設定で以下の2つを必ず許可します。
- 51820/UDP:WireGuardの通信ポート(VPN接続本体)
- 51821/TCP:Web管理画面のアクセスポート
ConoHa VPSなら「セキュリティグループ」からGUIで設定できます。51821を忘れる方が多いので注意しましょう。
ステップ4:管理画面でクライアントを追加する
ブラウザでhttp://【VPSのIP】:51821にアクセスします。パスワードを入力してログイン後、「+ Client」ボタンでデバイスを追加。QRコードが表示されるので、スマートフォンのWireGuardアプリで読み取れば接続完了です。
💡 公式ドキュメントに沿って検証
WG-Easyの公式GitHubドキュメント通りに進めたところ、WG_HOSTの設定部分で注意が必要でした。VPSは内部ネットワーク越しにIPを持っているため、
ip addrコマンドで表示されるIPは「10.x.x.x」などのプライベートIPです。ここにプライベートIPを入力するとクライアントが一切接続できません。必ずVPSのコントロールパネルで確認できる「グローバルIP(パブリックIP)」を使いましょう。ドキュメントには書かれていないポイント:ポート51821(Web管理画面)の開放忘れが最多のトラブル原因です。51820/UDPだけ開けて51821/TCPを忘れると、VPN接続はできても管理画面にアクセスできなくなります。
検証環境:macOS 15.4 / ConoHa VPS(Ubuntu 22.04 / 512MBプラン)
結果:初回接続成功まで約15分。スマートフォンからQRコードで接続でき、動画視聴も問題ない速度が出ました。
【応用編】Tailscale・Headscaleで管理ゼロに近づける
WireGuardを自分で設定したくない方、複数デバイスを楽に管理したい方にはTailscaleが便利です。WireGuardを内部エンジンとして使いながら、面倒な鍵管理やポート開放が不要になります。
Tailscaleとは
インストールしてGoogleアカウントでログインするだけで、デバイス間のメッシュVPNが自動で構築されます。Mac・Windows・iPhone・Android・Linuxに対応しており、無料プランで100台まで接続可能です。
ただし、デバイスの管理情報はTailscaleのサーバーに送られます(通信内容の暗号化は維持されますが、誰がどのデバイスで接続しているかはTailscale社が把握できます)。「データを外部に渡したくない」という方には後述のHeadscaleを検討してください。
完全自前にするならHeadscale
Tailscaleのコントロールサーバー部分だけをセルフホストするのがHeadscaleです。XServer VPSなどにDockerでHeadscaleを立てると、Tailscaleの便利さを保ちながら管理情報を外部に送らない構成が作れます。
Headscaleの設定にはYAMLファイルの編集やSSL証明書の取得など一定の手間がかかります。「とにかく楽に始めたい」方はTailscaleの無料プランで十分です。
NetBird(さらに踏み込むなら)
複数ユーザーで共有するVPN、きめ細かいアクセス制御が必要な場合はNetBirdも選択肢に入ります。管理ダッシュボードが視覚的で分かりやすく、Dockerで全コンポーネントをセルフホストできます。個人利用にはオーバースペックかもしれませんが、チームやスモールオフィス向けには秀逸なツールです。
目的別おすすめVPN早見表
r/selfhostedコミュニティでも人気が高いツールを、目的別に整理しました。
| ツール | 難易度 | 月コスト | 完全自前 | おすすめ用途 |
|---|---|---|---|---|
| WG-Easy | ★★☆ | VPS代のみ | ◎ | 個人・家族向け。スマホ接続重視 |
| Tailscale | ★☆☆ | 無料〜 | △ | 複数デバイスを楽に管理したい方 |
| Headscale | ★★★ | VPS代のみ | ◎ | Tailscaleの完全自前版。上級者向け |
| NetBird | ★★★ | VPS代のみ | ◎ | チーム・複数ユーザーのアクセス管理 |
迷ったときの判断基準:
- 設定を最小限にしたい → Tailscale(無料プランで十分)
- データを完全自前で管理したい → WG-Easy(Dockerで1コマンド)
- Tailscaleの使い勝手で完全自前にしたい → Headscale(上級者向け)
よくあるトラブルと対処法
Q. 接続はできたが速度が遅い
VPSのリージョンを日本(東京)に変更しましょう。国内通信になるため大幅に改善します。また、WireGuardはUDPを使うため、UDPをブロックしている環境(一部の企業ネットワーク)では速度が出にくいことがあります。
Q. WG-Easyの管理画面が開かない
VPSのファイアウォールでポート51821/TCPが開放されているか確認してください。Dockerコンテナが起動しているかはdocker psで確認できます。コンテナが表示されない場合はdocker logs wg-easyでエラー内容を確認しましょう。
Q. スマートフォンから接続できない
WG_HOSTにプライベートIPを入力していないか確認しましょう。VPSのコントロールパネルに表示される「グローバルIP」を設定するのが正解です。また、51820/UDPポートの開放も再確認してください。
Q. Tailscaleが不安定で直接接続にならない
tailscale statusコマンドで現在の接続状態を確認してください。「relay」と表示されている場合はDERPリレーサーバー経由の接続です。ルーターのUDP通過設定を確認すると直接接続に改善できることがあります。
まとめ
- セルフホストVPNはVPS代のみで運用でき、データを外部に渡さない選択肢
- 手軽さ重視ならTailscale(インストール→ログインで完了)
- 完全自前ならWG-Easy(Docker1コマンドで起動)
WG_HOSTはVPSのグローバルIPを使う(プライベートIPではない)- ポート51820/UDP+51821/TCPの両方を忘れず開放する
「そもそもサーバー管理が面倒」という方には、設定ゼロで使える商用VPNも選択肢です。NordVPNは国内でも広く使われており、アプリを入れてログインするだけで高速・高セキュリティのVPNが利用できます。
セルフホスト環境をこれから作るなら、VPNサーバーだけでなくn8nやOllamaなどのAIツールも同じVPSで動かせます。n8nをDockerで動かす実践ガイドもあわせてどうぞ。
0人が役に立ったと評価


コメント