自宅に自分だけのVPNサーバーを構築する方法

手順を順番に進めて、どこからでも自宅ネットワークに安全にアクセスできるVPNサーバーを構築しましょう。

  1. なぜ自分専用のVPNサーバーが必要なのかを確認する

    自前のホームVPNは、カフェや空港の公衆Wi-Fiから自宅回線を経由して安全にインターネットへ接続したいときや、外出中に自宅のNASやホームカメラなどプライベートIPの機器にアクセスしたいときに役立ちます。海外のサーバーを経由して所在地を偽装する市販VPNとは異なり、あくまで「自宅ネットワークへの入り口」である点が違います。

  2. WireGuardなどサーバーソフトを決める

    オープンソースのVPNプロトコルであるWireGuardは、設定が比較的シンプルで速度も速いため、個人用のホームVPNサーバーとして広く使われています。一部のルーターはファームウェアにWireGuardサーバー機能を内蔵しており、内蔵されていない場合はRaspberry Piやホームサーバー、NASに別途インストールできます。

  3. 固定IPを確認するか、DDNSを用意する

    外部から自宅にアクセスするには、常に同じアドレスでたどり着けるようにしておく必要があります。ISPから固定のグローバルIPが割り当てられていない場合(一般家庭の回線の多くがこれに該当します)、DDNS(ダイナミックDNS)サービスでドメイン名を用意しておけば、IPアドレスが変わっても同じアドレスでアクセスし続けられます。

  4. ルーターでVPN用ポートのポートフォワーディングを設定する

    WireGuardは標準でUDP 51820番ポートを使用します。ルーターの管理画面のポートフォワーディング設定から、このポートをVPNサーバーとして使う機器のプライベートIPに転送するよう設定します。

  5. サーバーを設定し、機器ごとの接続情報を作成する

    サーバーソフトをインストールしたら、サーバー自身の秘密鍵・公開鍵のペアを生成し、接続する機器(スマートフォン、ノートPCなど)ごとに個別の鍵ペアと設定ファイル(またはQRコード)を作成して登録します。

  6. 外部から接続テストを行う

    スマートフォンをWi-Fiからモバイルデータ通信に切り替え、先ほど作成した設定でVPNアプリから接続を試みます。接続後にIP確認サイトで表示されるアドレスが自宅回線のグローバルIPと一致していれば、正しく動作していることが確認できます。

  7. 必ず守るべきセキュリティ上の注意点

    ホームVPNサーバーを立てることは、自宅ネットワークへの入り口を1つ開けることと同じです。サーバーソフトは常に最新版に保ち、使わなくなった機器の鍵は削除し、ルーターの初期管理者パスワードも合わせて変更しておくと安全です。

  8. 「全通信を通す」か「自宅宛てだけ通す」かを決める

    WireGuardでは、クライアント側のAllowedIPsという設定で、どの通信をVPN経由にするかが決まります。0.0.0.0/0(IPv6なら::/0)を指定すると全ての通信が自宅回線を経由し、公衆Wi-Fiでの盗み見対策になりますが、速度は自宅の上り回線に左右されます。自宅のネットワークの範囲(たとえば192.168.1.0/24)だけを指定すると、NASやカメラへのアクセスだけがVPN経由になり、普段のブラウジングは影響を受けません。用途に合わせて選びましょう。

  9. つながらないときの確認ポイント

    まず、ポート番号とプロトコル(UDPであること)がルーターとサーバーの設定で一致しているかを確認します。次に、DDNSのホスト名が現在のグローバルIPを指しているか、サーバー機のプライベートIPが変わっていないかを見ます。サーバー機側のファイアウォールがUDPの受信を止めていないかも確認してください。それでもだめなら、ルーターのWAN側IPが、IP確認サイトに表示されるアドレスと一致しているかを見て、二重NATやキャリアグレードNATの可能性を疑います。

  10. 鍵の管理と運用ルール

    各機器の秘密鍵は、その機器の外に出さず、チャットやメールで送らないようにします。スマートフォンを紛失したり機種変更したりしたときは、サーバー側の設定からその機器の公開鍵を削除すれば、その機器からは接続できなくなります。機器ごとに別の鍵ペアを作っておくのは、このように1台だけを無効にできるようにするためです。設定ファイルのバックアップも、暗号化した場所に保管しましょう。

DDNSと固定プライベートIPを併用するとより快適に

グローバルIPが変わってもサーバーに常に同じドメイン名でアクセスしたい場合は、このガイドと合わせてDDNSを設定しておくとよいでしょう。サーバー機のプライベートIPをローカルネットワーク内で固定しておくと、再起動のたびにポートフォワーディングが壊れる心配もなくなります。ルーターのDHCP予約機能(MACアドレスに特定のIPを割り当てる機能)を使うか、機器側で静的IPを設定する方法があります。

他のVPNプロトコルとの違い

WireGuardだけが選択肢ではありません。OpenVPNやIPsec/IKEv2はより歴史が長く検証も豊富なプロトコルで、対応機器も幅広い一方、一般的に速度はやや遅く設定もやや複雑です。WireGuardはコードベースが小さくハンドシェイクも速いため、自前構築の標準的な選択肢になっていますが、ルーターや機器の対応状況によっては他のプロトコルも十分有効な選択肢です。WireGuardは2020年のLinuxカーネル5.6から本体に取り込まれ、鍵交換にCurve25519、暗号化にChaCha20-Poly1305といった現代的な方式を使います。

ポート開放できない環境ではどうするか

マンションの共用回線やモバイルルーター、一部の光回線では、ISP側でプライベートアドレスを共有するキャリアグレードNAT(CGNAT)が使われていて、自分のルーターで何を設定しても外から入れないことがあります。この場合は、ISPにグローバルIPの付与や別プランがあるかを問い合わせる、IPv6で接続できる環境を使う、あるいは外部にある中継用のサーバーを介して接続する、といった方法があります。WireGuardをベースにしたTailscaleのようなメッシュ型VPNサービスは、ポート開放を必要とせずに機器同士をつなげられるため、環境に制約がある場合の現実的な代替手段です。ただし、通信の調整を外部のサービスに任せる点は理解しておきましょう。

設定前に確認しておきたいこと

ISPの契約によっては、サーバー運用や外部公開を制限していることがあります。個人用のVPNサーバーは一般に問題になりにくいですが、利用規約を一度確認しておくと安心です。また、会社や学校のネットワークによっては、VPNの通信そのものがブロックされることがあります。UDP 51820が通らない環境では、サーバー側のポート番号を443など別の番号にする方法が使われる場合もありますが、その場合も運用先のルールに従ってください。

よくある質問

二重NAT環境だとポートフォワーディングがうまくいかないことがありますか?

はい。ISPのモデムが既にNATを行っていて、その後ろに自分のルーターをもう1台つないでいる二重NAT環境では、自分のルーターだけでポートフォワーディングを設定しても外部から接続できないことがあります。自分のルーターをブリッジモードに設定し、ルーター自身のNAT機能を無効にすると解決することが多いです。

市販のVPNサービスよりホームVPNサーバーの方が安全ですか?

自分でサーバーを管理するため、市販VPN事業者を信頼する必要がなくなる点は利点ですが、その代わりサーバーのセキュリティ管理(アップデート、鍵の管理など)は自分の責任になります。また、海外IPへの偽装用途には向いておらず、あくまで自宅ネットワークへ戻るための通路である点も覚えておきましょう。

Raspberry Piなど小型の機器でも使えますか?

個人で使う程度の通信量であれば、小型のシングルボードコンピュータでも十分に動かせることが多いです。ただし、自宅の上り回線の速度が実際の上限になるため、機器の性能より回線の上りが先に制限になるのが普通です。

外出先から全部の通信を自宅経由にすると遅くなりますか?

自宅の上り回線の速度と、外出先の回線の状態に左右されます。一般に自宅の上りが速いほど快適で、家庭用回線では上りが下りより遅いことが多いため、動画視聴などでは体感が下がることがあります。自宅の機器へのアクセスだけをVPN経由にすれば、この影響は小さくなります。