iPadからMac上の code-server へ、Tailscaleを利用して安全かつHTTPSでアクセスするための設定メモ。
1. 構成の概要
- サーバー: Mac (自宅等に設置)
- クライアント: iPad (外出先/自宅)
- 通信パス: iPad -> Tailscale (HTTPS) -> Mac (localhost:8080)
- 使用ツール:
code-server,Tailscale
2. 事前準備 (Tailscale 管理画面)
設定を有効にするために、Tailscale Admin Console で以下の2点を確認:
- MagicDNS:
Enabled - HTTPS Certificates:
Enabled(証明書自動発行のため必須)
3. Mac側の設定 (code-server)
設定ファイルの編集
~/.config/code-server/config.yaml を開き、待ち受けアドレスを localhost限定 にする。
bind-addr: 127.0.0.1:8080
auth: none
cert: false # TailscaleがHTTPS化するため、アプリ側はfalseで良い
注意点: 初めtailscaleで付与されている公開ipである
100.x.x.xに設定したが、うまくhttps化できなかった。
4. Tailscale Serve の設定
Tailscaleのリバースプロキシ機能を使い、Mac内部の8080ポートを外部(Tailscale網内)に公開する。
設定コマンド
再起動後も設定が維持されるよう --bg (background) フラグを付ける。
# 既存設定のクリア
tailscale serve reset
# プロキシ設定の有効化
tailscale serve --bg http://127.0.0.1:8080
ステータス確認
tailscale serve status
出力結果に https://[マシン名].[ランダム文字列].ts.net/ が表示されれば成功。
5. 自動起動の設定 (常駐化)
Macを再起動したり、ログインし直したりした際に、自動で code-server が立ち上がるようにする
Homebrewによる常駐化
brew services start code-server
- Tailscale: アプリが起動していれば、
serve設定は自動で復元される - code-server:
brew servicesによりバックグラウンドで常に待機させる
6. トラブルシューティング
Q. 「This site can’t be reached」と出る場合
原因1: Macの
code-serverが落ちている。- 対策:
curl -I http://127.0.0.1:8080で200 OKが返るか確認。
- 対策:
原因2: 待ち受けIPの不一致。
- 対策:
tailscale serveの宛先とcode-serverのbind-addrが共に127.0.0.1であることを確認。Tailscale IP (100.x.x.x) を直接指定すると、Mac内部のルーティング問題で繋がらないことがある。
- 対策:
Q. なぜ Caddy を使わないのか?
- Tailscale公式ドキュメントにはCaddyの使い方が載っているがTailscaleの
serve機能の方が、証明書の管理やインストール作業が不要でシンプルと判断した
7. 外出先からのアクセス確認
- iPadのTailscaleアプリを
Connectedにする。 - ブラウザ(Safari/Chrome)で、Tailscaleから提供されたHTTPS URLを開く。