できること
自宅のネットワークにお外から接続できるようになります。必要なもの
- ラズベリーパイ4(メモリ4GB)
- WireGuard(無料)
- ポートフォワードできるルーター
- DDNSサービスのアカウント(無料)
やったこと
ラズパイのセットアップはほぼ素の状態で大丈夫です。
おうちインターネットのポート開放とラズパイへのフォワードを設定します。大抵のおうちはDHCPを利用していると思うので、IPアドレスの固定割り当て設定をした上で、適当なポートを開放し、そのIPアドレスへ転送する設定をします。OCNバーチャルコネクトなどのIPoEを使っているとポートが開けられないという話を目にしましたが、この辺の記事を参考にして無事に開放できました。有線LANの方が安定すると思いますが、うちはラズパイを適当な場所にほっぽりたいのでWi-Fiを使っています。Wi-Fi側のMACアドレスをルーターに設定するだけです。
DDNSサービスを設定します。NO-IPを使いました。家のグローバルIPは大抵可変なので、これを使って1時間に1度同期するようにcron設定します。NO-IPはcurlでリクエスト投げるとリフレッシュしてくれます。もうちょっと高度にするなら、もっと細かい間隔で自身のグローバルIPを取得し、前のと違ったらcurlでリフレッシュとかでも良さそうです。
ポートとDDNSの名前が決まったらVPNをセットアップしていきます。WireGuardのセットアップは↓の記事を参考にさせてもらいました。引くぐらい簡単です。
https://www.my-hacks.info/2021/01/21/post-1440/
pivpnを使って鍵の作成をします。アクセスするクライアントに鍵をコピーします。
WireGuardのアプリをインストールし、接続設定をします。
あとは携帯のテザリングかなんか使って外部ネットワークから家のルーターの管理画面とかにアクセスできたらOKです。
負荷
試しにVPN繋いだ状態でクライアントでスピードテストを走らせてtopコマンドを実行してみましたが、Load Averageは0.5ぐらい、メモリは全体で600MBぐらいしか使ってませんでした。うちのラズパイは4のメモリ4GBですが、これだけに使うなら2GBモデルでも大丈夫そうです。1GBだとちょっと厳しいような気がします。
家の回線はVDSLで上下100Mbpsぐらいがやっとなのですが、WireGuard経由でスピードテストをすると大体20Mbpsぐらいになります。家でデータを受け取り(↓20Mbps)、家からクライアントへ送信(↑20Mbps)なのでもうちょっと出ても良いような気もしますが、こんだけ出てりゃ困ることはあまりないですね。ラズパイのマシンパワーがボトルネックになっている雰囲気ではないので回線的な問題なのかなと思っています。ラズパイの接続を有線や無線にしてもどのみちこのスピードなのでその辺も問題なさそうです。あと、100Mbpsフルスロットルで使われるとそれはそれで困るので、これぐらいがちょうどいいですね。
便利なこと
普段Macを使っているのですが、Windowsじゃないとできないことがたまにあるので、起動しっぱなしの家のWindows機にリモデスできます。基本的におうちにいるときと同じ状態になります。
あとは、安全じゃないWi-FiスポットなどもVPNで暗号化できるのでいいですね。スマホアプリまであるので携帯でも使えます。
困ったこと
VPN接続状態だと、なぜかLINEのMacクライアントがネットワークに接続できなくなります。