
年額20ドル台の海外VPSで「自分専用VPN」を作ってみた
普段VPNを使う方法というと、だいたい次のどれかになると思います。
無料VPNを使う。
有料VPNサービスを契約する。
あるいは、自分でVPNサーバーを作る。
私はこれまで既存のVPNサービスも使ってきましたが、今回は少し方向を変えて、
「海外のVPSを1台借りて、自分専用のVPNを作ったらどうなるのか?」
を実際に試してみました。
使ったのは海外VPSの「RackNerd」と、VPNソフトウェアの「WireGuard」です。
契約したVPSは年額21.99ドル。
為替によって変わりますが、日本円では年間3,000円台程度です。
月額換算すると300円前後。
結果からいうと、
Mac → WireGuard → アメリカのVPS → インターネット
という、自分専用の海外VPNを実際に構築できました。
今回は詳しいコマンド解説というより、
「無料VPN・有料VPN・自作VPNは何が違うのか」
というところも含めて、実際に作ってみた感想を書いてみます。
そもそも、なぜ自分でVPNを作ろうと思ったのか
VPN自体は珍しいものではありません。
スマートフォンのアプリストアを探せば無料VPNもありますし、NordVPNやProton VPNなど、有名なVPNサービスもあります。
普通に使うだけなら、こういったサービスを契約する方が圧倒的に簡単です。
それでも自分で作ってみた理由は単純で、
「海外VPSを自分で借りれば、月数百円で自分専用の海外VPNを持てるのでは?」
と思ったからです。
私はLinuxサーバーやWireGuardを触る機会もあるので、勉強も兼ねています。
そして実際に調べてみると、海外にはかなり安いVPSがあります。
今回契約したRackNerdのプランは、
1 vCPU、RAM 1GB、SSD 20GB、月間転送量3TB、IPv4 1個付きで、年額21.99ドルでした。
WireGuardだけを動かすには十分すぎるくらいのスペックです。
【画像:RackNerdの契約プラン画面】
無料VPNはダメなのか?
最初に書いておくと、無料VPNだから全部危険というわけではありません。
運営元が明確で、無料プランを正式に提供しているサービスもあります。
無料VPNの一番大きなメリットは、やはり料金です。
アプリを入れて接続するだけなので、Linuxの知識も必要ありません。
「とりあえずVPNを使ってみたい」
という用途なら非常に便利です。
一方で、無料サービスなので当然制限もあります。
使える国やサーバーが少ない、通信量制限がある、速度制限がある、混雑しやすい、といったことがあります。
そして無料VPNを選ぶときに最も注意したいのが、
「そのサービスは何で運営費を稼いでいるのか?」
という点です。
サーバーも回線も無料ではありません。
有料プランへの誘導で成り立っているサービスなら仕組みは分かりやすいですが、運営元や収益構造がよく分からない無料VPNについては慎重に選んだ方がいいと思います。
私なら「無料」という一点だけでVPNを選ぶことはしません。
有料VPNはやっぱり便利
利便性だけで考えると、個人的には市販の有料VPNが一番簡単です。
アプリをインストールして、
「アメリカ」
「イギリス」
「ドイツ」
など、接続したい国を押すだけ。
これで終わります。
1つ契約すれば多数の国・多数のサーバーが使えるサービスも多く、スマートフォン・Mac・Windowsなど複数端末にも対応しています。
VPNが切断されたときに通信を止めるKill Switchなど、自分で作ろうとすると少し面倒な機能も最初から用意されています。
その代わり、当然利用料金がかかります。
VPNサービスによってかなり違いますが、長期契約でも年数千円程度から、条件によっては年間1万円を超えるものまであります。
月額契約にするとさらに高くなる場合もあります。
ただし、これは単純に「高いから悪い」という話でもありません。
多数の国にサーバーを用意して、アプリを開発して、サーバー管理も全部やってくれる。
その代金だと考えると、かなり合理的です。
海外IPを頻繁に切り替えたい人なら、自作VPNより有料VPNの方が圧倒的に便利だと思います。
そこで「自分専用VPN」を作ってみる
今回試したのが3つ目の方法です。
海外VPSを自分で借りて、そこにWireGuardを入れる方法。
構成はかなりシンプルです。
Mac
↓
WireGuard
↓
海外VPS
↓
Internet
VPNサービス会社のサーバーではなく、
自分が契約したVPSそのものをVPNサーバーにします。
今回利用したRackNerdではUbuntu 24.04のVPSを作成しました。
VPSが準備されたらMacからSSH接続。
最初はrootで入れますが、そのまま使い続けるのは避けました。
一般ユーザーを作り、SSH鍵を用意し、
root SSHログイン → 無効
パスワードSSH認証 → 無効
SSH公開鍵認証 → 有効
に変更。
さらにUFW(ファイアウォール)を有効にして、
SSH TCP 22
WireGuard UDP 51820
だけ必要な通信を許可しました。
【画像:VPS側のSSH・UFW設定確認】
そのあとWireGuardをインストール。
サーバー側には、
10.66.66.1
Mac側には、
10.66.66.2
を割り当てました。
IPv4 forwardingとNATも設定して、Macからの通信をVPS経由でインターネットへ送ります。
本当にアメリカのIPになった
設定後、まずWireGuard内部のVPSへPingを飛ばしました。
4 packets transmitted
4 packets received
0.0% packet loss
正常に通信できました。
次にWireGuardをOFFにして外部IPを確認。
日本側のIPが表示されます。
WireGuardをONにして、もう一度確認。
今度は、
RackNerd VPSに割り当てられたアメリカ側のIPv4アドレス
へ変わりました。
【画像:VPN OFF / ON のIP比較】
VPS側でWireGuardの状態を見ると、
latest handshake
transfer
も確認できました。
つまり、
日本のMac
↓
暗号化されたWireGuardトンネル
↓
アメリカVPS
↓
Internet
という通信が実際に成立しています。
自分で設定したものが本当に海外VPNとして動いた瞬間は、ちょっと面白かったです。
実際に作って感じたメリット
一番大きいのは、自分しか使わないVPNサーバーを持てることです。
一般的なVPNサービスでは、同じVPNサーバーを多数のユーザーが利用します。
今回の場合、そのVPSを使っているのは基本的に自分だけです。
さらに、サーバー側で何を動かしているのか自分で把握できます。
WireGuardの設定、Firewall、SSH設定なども全部確認できます。
費用もかなり安く、
今回のRackNerd VPSなら年額21.99ドル。
WireGuardだけが目的ならRAM 1GBでも十分余裕があります。
そしてもう一つ良かったのが、
Linuxサーバーの勉強になること。
SSH鍵認証、UFW、IP forwarding、NAT、WireGuardなど、サーバー運用の基本的な部分を実際に触れます。
当然、良いことばかりではない
市販VPNと比べると、一番大きな弱点は、
全部自分で管理しなければならないこと
です。
Ubuntuのアップデートも自分。
Firewallも自分。
WireGuardの鍵管理も自分。
SSHのセキュリティ対策も自分です。
今回もVPSを起動してしばらくすると、SSHのログに外部からrootへログインを試した形跡がありました。
パスワード認証に失敗していたので侵入されたわけではありませんが、
「インターネットにVPSを公開すると、本当にすぐスキャンされるんだな」
と実感しました。
そのため今回はWireGuardを入れる前に、SSH鍵認証への移行とrootログイン禁止を行っています。
「自作VPN=完全匿名」ではない
ここはかなり重要です。
海外VPSにWireGuardを入れたからといって、
完全匿名になるわけではありません。
VPSそのものは自分が契約しています。
支払い情報やアカウントもあります。
VPS事業者側から見ればサーバーの契約者は分かります。
自宅のIPv4をWebサイト側から直接見えなくすることはできますが、
「誰にも追跡されないVPN」
というものではありません。
匿名化を目的にするものというより、
「自分専用の海外ネットワーク出口を持つ」
くらいに考える方が正確だと思います。
IPv6についても注意が必要だった
今回テストしていて、もう一つ気付いたことがあります。
IPv4では、
WireGuard OFF → 日本側IPv4
WireGuard ON → RackNerd側IPv4
と正常に切り替わりました。
ところが、
curl -6 ifconfig.me
を試すと、IPv6アドレスが返ってきました。
つまり、
IPv4だけVPNを通しても、IPv6は別経路になる可能性があります。
さらに私のテスト環境では、別に用意している日本VPSのWireGuardも動いている状態だったため、IPv6経路についてはもう少し整理して検証する予定です。
「IPv4が海外IPになったから全部VPN経由になった」
と思い込まない方がいい、というのは今回かなり勉強になりました。
無料VPN・有料VPN・自作VPN、結局どれがいい?
これは用途次第だと思います。
無料VPNは、とにかく手軽に試したい人には便利。
有料VPNは、複数国を簡単に切り替えたい人や、設定を全部任せたい人には一番楽です。
自分でVPSを借りる方法は、
1つの国に自分専用VPNを置きたい人や、サーバー構築そのものを楽しめる人向け
だと思います。
今回の私のように、
アメリカに自分専用WireGuardサーバーを1台置きたい
という目的なら、かなり面白い選択肢でした。
逆に、
今日はアメリカ、明日はイギリス、その次はドイツ
のような使い方をしたいなら、有料VPNサービスを契約する方が圧倒的に簡単です。
年
額20ドル台なら「実験用サーバー」としても面白い
今回のVPSはWireGuard専用として使っていますが、KVM VPSなので普通のLinuxサーバーです。
つまり今後、
VPN以外のLinuxの勉強や、小規模な検証環境として使うこともできます。
年額20ドル台なら、
「海外VPSを触ってみたい」
という目的でも始めやすい価格でした。
ただし、セールプランは価格・在庫・選択できる地域が変わることがあります。
私が契約した時点では年額21.99ドルでしたが、常に同じ条件で販売されているとは限らないので、契約時には公式ページの内容を確認する必要があります。
実際の構築手順もまとめました
今回は体験談を中心に書きましたが、
「実際にどう設定したの?」
という方向けに、私が今回行った手順を自分のサイトにもまとめています。
SSH接続から、
Ubuntuアップデート
SSH鍵認証
root SSH禁止
UFW
WireGuard
IPv4 forwarding
NAT
Macクライアント設定
接続確認
まで、実際に構築した流れに沿って書いています。
興味があれば参考にしてください。
詳しい構築手順:
https://www.khaoselon.com/howto/articles/racknerd-wireguard-vpn-mac/
無理にVPSを契約する必要はありません。
「自分でVPNサーバーを作ると、こんな感じになるんだ」
という読み物として見てもらうだけでも大丈夫です。
※リンク先の記事にはアフィリエイトリンクが含まれています。私が実際に契約・構築した環境をもとに記事を作成しています。
作ってみた感想
最初は、
「年3,000円台の海外VPS、本当にVPNとして普通に使えるの?」
という実験に近い感覚でした。
結果としては、
WireGuardのハンドシェイクも成立し、MacからのIPv4通信もRackNerd VPS経由に切り替えることができました。
一方で、IPv6、DNS、SSHのセキュリティなど、
「VPNアプリなら裏側でやってくれていた部分」
も全部自分で考える必要があります。
そこが自作VPNの面倒なところでもあり、面白いところでもあります。
VPNをただ使いたいなら、有料VPNサービスの方が簡単。
でも、
「海外に自分だけのサーバーを1台持って、自分専用VPNを作ってみたい」
という人には、格安VPS+WireGuardはかなり面白い遊び方だと思いました。
今後はIPv6周りも含めてもう少し調整し、iPhoneやAndroidからの接続も試していく予定です。