最近まで、自宅サーバーに外部からアクセスする場合「固定IPの契約が必要なのでは?」「セキュリティ対策にコストがかかりそう…」といった不安が頭をよぎり、なかなか一歩を踏み出せずにいました。
しかし調べてみたところ、個人用途に限るのであれば、意外と低コストで外部アクセスを実現できる方法があることがわかりました。
それが「VPNを活用する方法」です。
方法はいくつかありますが、たとえば以下のような選択肢があります:
- VPN対応ルーターを使ってVPN接続を構築する方法
- ソフトウェアVPN(例:WireGuard)を使って手動で構築する方法
今回は、設定が比較的シンプルで安定性も高い「VPNルーターを使った方法」を実際に試してみたので、その手順や注意点を詳しくご紹介します。
「自宅サーバーをもっと活用したいけれど、コストやセキュリティが心配…」という方の参考になれば幸いです。
Contents
使用機器
- VPNルーター
- Yamaha RTX830
- 外部接続テスト用デバイス
- Cellular接続可能なデバイス(スマホなど)
- 今回はiPhoneを使って説明します
VPNサーバー設定手順
ここではGUIを使用した方法を説明します。
参考: https://network.yamaha.com/setting/router_firewall/vpn/vpn_client/vpn-smartphone-setup-rtx1210
ネットボランチDNS登録
固定IPを契約していない場合、自宅ルーターのIPは定期的に変わってしまうため、これに対処するため、ネットボランチDNSを利用します。ネットボランチDNSを利用することでホスト名に対するIPのマッピングを自動で更新してくれます(いわゆるDDNS)。
まずネットボランチDNSを利用する前準備として、PPPoE接続を設定していない場合は設定してください。詳細な設定は割愛しますが、プロバイダ契約時のユーザーIDや接続パスワードなどが必要になります。
ここから実際にネットボランチDNSを設定していきます。
かんたん設定 -> ネットボランチDNS と進み「設定」をクリックします。もしPPPoEが正しく設定されていない場合は「使用可能なインターフェースがありません」的な表示が出るので、PPPoE接続の設定を見直してください。
下記画面では先ほど設定したPPPoEのインタフェースを選択し、先に進みます。ホスト名は任意で問題ないです。後はインストラクションに沿って進めば完了します。

VPN設定
かんたん設定 -> VPN -> リモートアクセス と進み「新規」をクリックします。
接続種別はL2TP/IPsecが良いでしょう。そもそもiPhoneがPPTPに対応してません。
認証鍵は任意の文字列で良いですが、できるだけ長く推測されにくいものにしましょう。ランダム生成だとセキュリティ的に最高です。他はデフォルトで問題ないと思います。セキュリティが強い256bit系アルゴリズムと迷いましたが、iPhoneで接続できないなど問題があるようです。

次の画面ではユーザーの登録をします。接続時に使用するユーザー名とパスワードを任意の数入力します。基本自分だけだと思いますが、家族で使用するなら家族全員分とかになるんでしょうか。後はインストラクションに沿って進み、設定を完了します。

VPNクライアント設定手順
次はクライアント側(ここではiPhone)の設定手順です。先ほどネットボランチDNSで得たホスト名、VPN設定で登録した認証鍵、ユーザー名、パスワードを使用します。
参考: https://network.yamaha.com/setting/router_firewall/vpn/vpn_client/ios
VPN設定
設定 -> 一般 -> VPNとデバイス管理 -> VPN(未接続) -> VPN構成を追加 でVPN追加画面に飛びます。
追加画面では、以下のように設定してください。
- タイプ: L2TP
- 説明: 任意
- サーバー: 先ほどネットボランチDNSで得たホスト名
- アカウント: VPN設定で登録したユーザー名
- RSA SecurID: オフ
- パスワード: VPN設定で登録したパスワード
- シークレット: VPN設定で登録した認証鍵
- すべての信号を送信: オン
- プロキシ: オフ
VPNに接続する
先ほど追加した設定を選択した状態で「接続」をONにすると、設定に誤りがなければ接続できるはずです。
接続できない場合
IPoE接続が優先されている場合、接続できないケースがあります。
V6プラス、V6オプションetcを利用している場合は、この時点で接続設定がPPPoEを含めて二つになっていると思います。IPフィルターなどを利用し、VPN接続でIPoEでなく、PPPoEが優先されるように設定します。
いろいろ探してみましたが、以下の方法が正攻法に見えました。(tunnel 1がIPoE接続用のinterfaceになっています)
# VPN接続用のフィルタ作成、VPN接続に使用されるポートを指定する
ip filter 500001 pass * * udp 500 *
ip filter 500002 pass * * udp 4500 *
ip filter 500003 pass * * udp 1701 *
ip filter 500004 pass * * esp
# ipoeで接続できない場合にpppoeにフォールバックするように設定
# ※作成したフィルタにマッチする場合のみ
ip route default gateway tunnel 1 gateway pp 1 filter 500001 500002 500003 500004
参考: https://www.rtpro.yamaha.co.jp/RT/manual/rt-common/ip/ip_route.html
最後に
IPoE, PPPoE周りで四苦八苦しましたが、なんとかiPhoneから自宅ネットワークへのVPN接続ができました。ルーターへの接続ということでVLANなど疎通設定が効くのかが怪しいところですね。詳しい方いらっしゃったら教えて欲しいところです。
セキュリティ面でも事前共有鍵ぐらいしか認証方式がない(IKEv2を導入しても同様らしい)ので、少し怖さがあったり…。
Wireguardであれば公開鍵認証ができるらしいので、そのうちそちらも試してみようかなと思います。