もぺブログ

WireGuard over WireGuard によるIPアドレス匿名化とLANアクセスの両立

2022/02/03

外出先からLANにアクセスしたく、WireGuardサーバを建てました。
しかし、これでは前回紹介したMullvad VPNを用いて、IPアドレスを匿名化することができません。
毎回繋ぎ変えるのは非常に面倒であるため、WireGuardからWireGuardを経由して通信することにしました。

準備

以下のコマンドを実行します。
curl -LO https://mullvad.net/media/files/mullvad-wg.sh && chmod +x ./mullvad-wg.sh && ./mullvad-wg.sh

画面の指示に従うと、接続可能なVPNのWireGuard設定ファイルが全て生成されるはずです。
それをupして、以下の設定をupすれば、外部からMullvad VPNにもLANにもアクセス出来るようになります。

設定

[Interface]
Address = 10.0.0.1/8
MTU = 1380
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o [設定したMullvad VPNのインターフェイス] -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o [設定したMullvad VPNのインターフェイス] -j MASQUERADE
ListenPort = 51820
PrivateKey = [WireGuardサーバの秘密鍵]

[Peer]
PublicKey = [WireGuardクライアントの公開鍵]
AllowedIPs = 10.0.0.2/8

使用感

実際に使用した動画がこちらです。


IPアドレスが匿名化されており、LAN内にあるnetdataにも接続できます。

速度

fast.comにて計測した結果がこちらです。


こちらが直接接続時の速度です。


こちらがVPN over VPN時の速度です。

やはり速度がかなり低下していますが、実用範囲内といえるでしょう。

(追記)
単にラズパイを経由しても速度が経由したため、おそらく高性能なマシンで建てれば、より速く通信できると考えられます。