tailscaleで自宅サーバへのセキュアなアクセスを実現する
自宅サーバを構築すると、自宅の外からでもアクセス出来るようにしたくなるものですが、自宅ネットワークへ外部からアクセスできるようにするには、ポート開放の複雑さ・DDNS設定・セキュリティリスク・遅延…など、ソフトウェア・ハードウェア両方の側面で様々なハードルが付きまといます。
そこで、今回はtailscaleというサービスを用いてこれらの敷居を下げてみます。
tailscaleとは?
tailscaleは、さまざまなネットワーク間でデバイスとサービスの接続を安全に合理化するメッシュVPNサービスであると、公式で謳っています。
2025年12月現在、個人利用の金額設定がかなり良心的で、無料のPersonalプランでもほぼすべてのtailscaleの機能が利用できます。
デバイス数の制限も100台、ユーザー数も3ユーザーまでと、個人利用においては十分すぎるほどの枠が無料で開放されています。
登録・ログイン
tailscaleを利用するには、ユーザー登録が必要です。
まずは、上記URLから登録・ログインを行います。
インストール
2025年12月現在、macOS, iOS, Windows, Linux, Androidに対応しています。
インストールしてログインすることで、複数の端末を同一のVPNにぶら下げることが出来ます。
Machines
管理画面から、各端末に割り当てられているIPアドレスを確認することが出来ます。
同一VPN内の端末からであれば、この画面に表示されているIPアドレスから、各端末に対してセキュアなアクセスを実現できます。
DNS
管理画面のDNS設定画面はこちらから。
Magic DNS
管理画面の DNS/MagicDNS の項目から、 Enable MagicDNS... ボタンを押下してMagicDNSを有効にすることで、各端末に対してIPアドレスに加えて <device-name>.<tailnet-name>.ts.net といった感じのアドレスでアクセスが出来るようになります。
このアドレスも、Magic DNSが有効になっていれば、先述の Machines の画面で確認できます。
HTTPS Certificates
管理画面の DNS/HTTPS Certificates の項目から、 Enable HTTPS... ボタンを押下することで、HTTPS Certificatesを各デバイスに対して、有効にすることが出来ます。
自宅サーバで公開しているコンテンツのhttps化
ローカルネットワーク経由(例えば、192.168.0.10とかそういうやつ)でのアクセスに対しては効果がありませんが、tailscaleのIPアドレスやMagic DNSで利用できるURLをhttps化するために serve コマンドが利用できます。
例えば、 localhost:8080 で立てているようなコンテンツであれば、
tailscale serve --https=8080 8080
といった感じのコマンドを叩くと、
https://<device-name>.<tailnet-name>.ts.net:8080
といったURLでアクセスできるようになります。
なお、このコマンドは永続的に設定を有効にするものではなく、あくまでプロセス実行中のみ効果を発揮します。
以上です。
tailscaleにはまだまだたくさんの機能がありますが、ひとまず本記事に記載の領域を押さえておけば、最低限のセキュアなネットワーク構築ができるかと思います。
Discussion