WireGuardでVPNをスマホでも使う方法

Server

前回の記事で、WireGuardを使ってVPNをConoHa VPSに構築する方法を解説しました

今回はスマホからもVPNに接続する方法を解説します

WireGuardはiPhone(iOS)とAndroidの両方に対応した公式アプリがあります

サーバー側に設定済みであれば、QRコードで簡単にスマホに設定を読み込ませられます

手順としてはスマホ用に新しく鍵(キー)を追加で生成します

WireGuardでは、各デバイス(ノートPC・スマホなど)に対して個別の鍵ペア(秘密鍵・公開鍵)を作成し、それぞれをサーバーに登録する設計が推奨されます

  • セキュリティ:各端末に固有の鍵があることで、不正アクセスのリスクを下げられる
  • 管理が楽:万一スマホを紛失したら、その鍵だけWireGuardサーバーから削除すればOK
  • 同時接続も可能:複数のクライアントが同時にWireGuard経由で通信できる

1. VPSでスマホ用の鍵を作成

sudo wg genkey | tee /etc/wireguard/smartphone_privatekey | sudo wg pubkey > /etc/wireguard/smartphone_publickey

# 権限を設定
sudo chmod 600 /etc/wireguard/smartphone_privatekey
sudo chmod 644 /etc/wireguard/smartphone_publickey

鍵の中身を見るコマンド

sudo cat /etc/wireguard/smartphone_privatekey
sudo cat /etc/wireguard/smartphone_publickey

2. サーバー側で設定ファイルの編集

以下のコマンドでサーバー側の設定ファイルにスマホ用の設定を追加します

sudo nano /etc/wireguard/wg0.conf

以下の peer を一番下に追加します

[Peer]
PublicKey = スマホの公開鍵
AllowedIPs = 10.0.0.3/32

3. スマホ用の設定ファイルを作成

スマホ側の設定ファイルのsmartphone.conf は スマホに設定を渡すための一時的なファイルです

保存場所はどこでもOKです

ホームディレクトリ内なら以下のコマンドで作成します

# ホームディレクトリへ移動
cd ~

# 設定ファイル作成
nano smartphone.conf

設定ファイルは以下のように入力します

[Interface]
PrivateKey = スマホの秘密鍵
Address = 10.0.0.3/24
DNS = 1.1.1.1

[Peer]
PublicKey = VPSの公開鍵
Endpoint = VPSのIPアドレス:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

VPSの公開鍵はおそらく以下のようなコマンドで確認できます

sudo cat /etc/wireguard/server_publickey

4. QRコードを生成(スマホ用設定を読み込みやすく)

まず、必要なパッケージをインストール

sudo apt install qrencode

次に、スマホ用設定をQRコードとして表示:

qrencode -t ansiutf8 < smartphone.conf

スマホでWireGuardアプリを開き、「トンネルをインポート」→「QRコードでインポート」を選択

QRコード表示用に使うだけなので、スマホに読み込ませたら削除しても大丈夫です

rm smartphone.conf

【5. サーバー側でWireGuardを再起動して反映】

sudo systemctl restart wg-quick@wg0

状態確認

sudo systemctl status [email protected]

active(exited)になっていればOK


【6. スマホ側でWireGuardアプリの設定をON】

スマホ側でアプリを開いて、先ほどインポートした設定を選び、「接続」をONにします

正しく繋がれば、スマホはVPS経由で通信するようになります


これでスマホの通信をVPN経由にすることができます

コメント