こんにちは、てつです!
前回は、Dockerサーバーを建てるところまでの記録をお届けしたと思います。
そこで今回は、外出先でも自宅のネットワークに接続できるVPNサーバーを構築する記録をお届けしたいと思います。
この記事のポイント
- 外出先から自宅サーバーへ安全にアクセス: 外出先のカフェや移動中からでも、自宅のネットワークに接続する環境を作ります。
- Tailscale(テイルスケール)の活用: 難しいネットワーク設定(ポート開放など)を一切行わず、ログインだけで設定を完了させます。
- マルチデバイス連携: iPhoneでの接続確認から、PCのVS Codeを使ったリモート開発環境の構築までをステップバイステップで解説します。
なぜVPNサーバーを構築するのか?
主に理由は3つあります。
1.セキュリティを確保したリモートアクセス 公衆Wi-Fiなどはセキュリティリスクがありますが、VPNを経由することで通信が暗号化され、安全に自宅のデータやサーバーへアクセスできるようになります
2.自宅の全リソースを「持ち歩ける」 自宅のHDDにあるファイルを確認したり、稼働させているDockerコンテナを操作したりと、場所を問わず「まるで自宅にいるかのような」作業環境が手に入ります。
3.固定IPやポート開放の手間・リスクを排除 本来、外から自宅に繋ぐには複雑なルーター設定が必要ですが、今回紹介する仕組みを使えば、それらの壁を無視して誰でも簡単に安全な専用通路を作ることができます。
【実践】VPNサーバーを建てる
前回建てたサーバーへSSH接続した状態で、今回使うVPN(Tailscale)をインストールしていきます。
【ロジック】なぜ Tailscaleなのか?
- 設定が「ログイン」のみ: ポート開放、固定IP、DDNSの設定がすべて不要になります。
- 「v6プラス」の壁を無視できる: 先ほど苦戦した「ポート番号の制限」を自動で回避(NATトラバーサル)します。
- マルチデバイス対応: iPhone、Windows、Mac、Linux、すべて同じ手順(ログイン)でネットワークに参加できます。
他のVPN技術(WireGuard等)との違い
| 比較項目 | 従来のVPN (WireGuard単体) | Tailscale |
| 接続難易度 | 高(ルーター操作やポート開放が必要) | 極低(アプリでログインするだけ) |
| 環境の影響 | 大(v6プラス等で繋がらないリスクあり) | 無(どんなネット環境でもほぼ繋がる) |
| セキュリティ | 鍵の管理を自分でする必要がある | WireGuardの技術をベースに自動暗号化 |
| IPアドレス | グローバルIPを調べる必要がある | Tailscale専用の不変IP(100.x.x.x)が付与される |
| コスト | 無料 | 個人利用(100デバイスまで)なら無料 |
Tailscaleのインストール
実際にインストールしていきます。下記コマンドをターミナルで実行します。
curl -fsSL https://tailscale.com/install.sh | sh
Tailscaleを起動してログイン
インストールが終わったら、以下のコマンドを打ちます。
sudo tailscaled > /dev/null 2>&1 &
※末尾の & は「裏側で動かしておいてね」という意味です。
sudo tailscale up
※画面に 「https://login.tailscale.com/a/xxxx」 というURLが表示されるので、それをクリック(またはコピーしてブラウザで開く)し、Googleアカウントなどでログインしてください。
画面が出たらconnectを押して完了です。
スマホ(iPhone)の設定
App Storeで Tailscale アプリをインストールし、サーバーと同じアカウントでログインします。
そしてVPNを「ON」にするだけです。
ここまで来たら接続確認にいきましょう。
Termiusで接続確認
Tailscaleでログインができ、VPNを「ON」にできたら、アプリ上でサーバーのIPが確認できると思います。
それをTermiusというアプリに入力して、実際に接続できるか確認します。
まずアプリのインストールをしましょう。
そして、さっきと同様にログインをしたら、PWの設定があるので任意のPWをいれます。先ほど確認したIPを入力、サーバーのユーザー名とPWを入力してログインができたら接続完了です。
これでスマホでのVPN環境は完成です。次にPC側での接続確認をやっていきましょう。
PC側の設定
私はコードエディタをVS Codeにしているので、今回は「Remote Development」機能を使う方法で確認していこうと思います。
これを使えば、手元のPCのVS Codeで、あたかも自宅PCのファイルを直接開いているかのように操作できます。
ともあれ、まずPCにTailscaleをインストールする必要がありますね。
上の方でTailscaleをすでにインストールしてるじゃないかと思いますが、あれはサーバー側にインストールしただけです。
クライアントにはインストールしてないので入れていきましょう。
クライアント側のPCで下記コマンドを実行してください。(PowerShellでもVS Codeでも大丈夫です)
# Tailscaleをコマンドでインストール
winget install Tailscale.Tailscale
上記のコマンドでエラーが出る場合は公式サイトからダウンロードしてくることを推奨します。
インストールしたらスマホ同様、サインインしてconnectを押してください。
ここまで来たVS Codeにいき接続の設定を行いましょう。
VS Codeでの設定および接続
設定方法
- 手元のPCのVS Codeを開き、拡張機能(左側の四角いアイコン)から 「Remote – SSH」 をインストールします。
- 左下に現れる 「><」のような青いアイコン をクリックします。
- 「Connect to Host…」 → 「+ Add New SSH Host…」 を選択。
ssh user@100.x.x.xと入力してEnter。- 設定ファイルの保存先を選び、右下に出る「Connect」を押す。
- パスワードを求められたら入力。
左下の方に接続先のIPアドレスが出てきたら接続完了です!
まとめ:VPNで広がる自由な開発ライフ
お疲れ様でした!これで、外出先からでもスマホやPCを使って、いつでも自分のサーバーにアクセスできる「専用の通り道」が完成しました。
僕自身、以前は「外出先からサーバーをいじるのは難しい設定が必要だ」と思い込んでいましたが、Tailscale を使うことで、驚くほどあっさりと環境を構築することができました。特に、VS Codeの「Remote – SSH」との組み合わせは強力で、カフェにいても自宅のハイスペックな環境でコードを書いているような感覚になれます。
今回構築したVPN環境は、今後さらに自動化ツールを管理したりする上での「強固な土台」になります。
次回は、この環境をさらに活用して、具体的なツールの運用や自動化のステップに進んでいきたいと思います。
ぜひ皆さんも、自分だけの「持ち運べるサーバー環境」を楽しんでみてください!


コメント