WireGuardを利用してOpenWrt上にVPNサーバーを構築し、外部から自宅ネットワークにアクセスできるようにする
Table of Contents
#
はじめに
本記事では、OpenWrtを導入したルーター上にWireGuardを使ったVPNサーバーを構築し、外出先から自宅ネットワークへ安全にアクセスする方法を解説します。
WireGuardは、軽量で高速かつセキュアなVPNプロトコルであり、自宅にVPN環境を手軽に構築することができます。
#
パッケージのインストール
OpenWrtのWeb管理画面(LuCI)にログインし、luci-proto-wireguard
をインストールします。これにより、wireguard-tools
などの必要なパッケージもインストールされます。
インストール完了後はルーターを再起動してください。
#
ネットワークインターフェースの追加
LuCIの「ネットワーク > インターフェース」にアクセスし、「インターフェースを新規作成…」をクリックして以下の設定で作成します。
項目 | 設定 |
---|---|
名前 | <インターフェース名> |
プロトコル | WireGuard VPN |
名前はvpn
やwg
などの分かりやすい名前を設定しましょう。今回はvpn
としました。
次に「一般設定」タブで以下を設定します。
項目 | 設定 |
---|---|
リッスンポート | 51820 |
IPアドレス | <WireGuardインターフェースのIPアドレス> |
特に意図がなければIPアドレスは既存のセグメントと被らないように設定しましょう。今回は10.0.0.1
に設定しました。
最後に「Generate new key pair」をクリックして、サーバー用の秘密鍵・公開鍵を生成します。
設定完了後、「保存」をクリックしてください。
#
ファイアウォールの設定
LuCIにて「ネットワーク > ファイアウォール」にアクセスし、「一般設定」タブからゾーンの設定を行います。
lan
インターフェースと同じ設定を適用させたいので、lan
ゾーンを編集して「対象ネットワーク」にvpn
インターフェースを追加します。
次に、「トラフィック・ルール」タブを開いて、WireGuardの接続を許可する設定を追加します。wan
側からの通信はデフォルトで無効化されているため、wan
からVPNサーバー(OpenWrt)への通信を許可しましょう。
「追加」をクリックして以下の内容でルールを追加します。
項目 | 設定 |
---|---|
名前 | Allow-WireGuard |
プロトコル | UDP |
送信元ゾーン | wan |
宛先ゾーン | デバイス (入力) |
宛先ポート | 51820 |
設定完了後、「保存&適用」をクリックしましょう。
#
ピアの追加
VPNサーバーに接続を許可するクライアント(ピア)の情報を追加します。
ここでは、クライアントの鍵ペアをサーバー側で生成し、設定ファイルをクライアントへ共有する手順で説明します。この方法では、一時的にサーバー側にクライアントの秘密鍵を保持することになるため注意が必要です。
LuCIにて「ネットワーク > インターフェース」にアクセスし、先ほど追加したvpn
を編集します。「ピア」タブを開いて「ピアを追加」をクリックしましょう。
ピアの設定画面が開かれたら設定を以下のように編集します。
項目 | 設定 |
---|---|
説明 | <ピアの説明> |
許可されたIP | <ピアが指定可能なIPアドレス> |
許可されたIPのルート | 有効 |
永続的なキープアライブ | 25 |
「説明」は、ピアを識別できるような名前をつけておきましょう。「許可されたIP」では、ピアに指定を許可するIPアドレスを設定します。
基本的には1つの公開鍵につき1つのピアとするため、あまり意識する必要はありませんが、「許可されたIP」の設定では以下のようにサブネットマスクが適用されます。
許可されたIP | 指定可能なピアのアドレス |
---|---|
10.0.0.2 | 10.0.0.2 |
10.0.0.2/32 | 同上 |
10.0.0.0/24 | 10.0.0.0~10.0.0.255 |
10.0.0.2/24 | 同上 |
今回は10.0.0.2
に設定しました。
設定が完了したら「Generate new key pair」と「Generate preshared key」をクリックして各種鍵を生成します。
ここまで実施すると、「Configuration Export」から「Generate configuration…」がクリックできるようになっているのでクリックしましょう。
項目 | 設定 |
---|---|
Connection endpoint | <VPNサーバーのIPアドレス/ドメイン名> |
許可されたIP | <VPNを経由させたい宛先> |
「Connection endpoint」では、VPNサーバーのIPアドレスまたはドメイン名を指定しましょう。今回はOpenWrtにVPNサーバーを立てているため、wan
にISPから割り当てられたIPアドレスを設定します。
「許可されたIP」の設定では、VPNを経由させたいIPアドレスを設定します。デフォルトでは、0.0.0.0/0
と::/0
が指定されており、全ての通信がVPNを経由する設定になっています。「許可されたIP」の設定は必要に応じて変更しましょう。
設定画面の下のほうに行くとQRコードとクライアント用の設定が表示されています。これらをクライアント側で読み込ませることで簡単に設定を適用することができます。
クライアントへ設定適用後は、サーバー側にクライアントの秘密鍵の情報は必要ないため、削除した後ピアの設定を保存しましょう。
「保存&適用」をクリックして設定を反映後、この時点でvpn
インターフェースの再起動も行っておきましょう。
#
クライアントから接続
AndroidからVPNサーバーに接続してみます。先ほど表示された設定をwg.conf
などのファイルに書き込んでクライアントに送信します。
Playストアで「WireGuard」で検索してアプリをインストールしましょう。

インストールしたアプリを開きます。

右下に表示されているプラスアイコンを押した後、「ファイル、アーカイブからインポート」を選択します。サーバーからダウンロードした設定ファイルを選択してインポートしましょう。

設定が追加されました。追加直後はVPNが無効になっています。右横に表示されているスイッチを押してVPNを有効にしましょう。
有効にした後、確認のためにSMBクライアントアプリ「Network Browser」を使って、自宅のファイルサーバーにアクセスしてみます。

実際に接続できていることを確認できました。これにより、VPNサーバーの構築は完了です。