最終的にはサービスのインターネット公開までするつもりだが、その前段階として。
構成
- VPS
- Ubuntu 24.04
- 自宅サーバ
- macOS 14.8.1
NAT越えの表現が微妙な気がしつつ、登場人物の理解のために。
要はVPNなんですけれど、各デバイスのグローバルIPやポート、公開鍵など管理のためにTailscaleのコントロールサーバが必要になります。つまりサインアップ必須。しかも認証基盤他所に依存してますね。しゃあなしなのでGitHubアカウント使いました。普段のデータ通信は端末間ですが、最初の疎通や、グローバルIPの変更などがあると、管理サーバが必要になるようです。
管理サーバを完全に廃したい場合は、「Headscale」というOSSがあるようですが、今回は試しません。
インストール
バイナリで配布されているので、そのまんま使います。実行後はサインインします。
VPS(Ubuntu)ではCLIなので以下。
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale upテスト
Mac側でテスト用のWebサーバ。
echo "<h1>Hello from Home Server (macOS) via Tailscale</h1>" > index.html
# Pythonで一時的に8080ポートを開く
python3 -m http.server 8080VPS側で疎通確認。
curl http://[ホームサーバのTailscale-IP]:8080表示されたらOK。
MagicDNS
Tailscaleで割り当てられるIPアドレスは基本的にはスタティックと考えて良いようですが、覚えづらいし、端末の入れ替えなどあるかもしれないし、必ず固定というわけでもない、とか考えると、名前があったほうがよさそうです。
MagicDNSを使うこと絵、IPアドレスではなく名前を指定することができます。
自動翻訳そのまま。
マシン名の割り当てと編集
MagicDNS はデバイスのデバイスを自動的に使用します マシン名 DNS エントリの一部として。デバイスの名前を変更すると、MagicDNS エントリが自動的に変更されます。デバイスを参照するために使用する特定の名前がある場合は、 マシン名を編集します デバイスの。
どうやらマシン名がそのまま使えるようです。
curl http://[マシン名]:8080疎通確認。
ダッシュボードからマシン名を変えることで、任意の名前にできます。
次回はCaddyでリバースプロキシ
想像より随分でした。次は証明書発行までの機能をもつWebサーバCaddyと組み合わせて、Webサイトの外部公開を試みます。
コメント