旧MacBook Air(Big Sur)で外出先から自宅のマイクラサーバへアクセスするまでの記録

古い Surface はバッテリー不良で CPU が常に数%しか出ない状態になっていました。自力でバッテリー交換を行い性能は復活したものの、分解の途中で液晶を破損。表示前提の使い方は難しくなったため、表示を必要としない“おうちサーバ”へ役割を切り替えました。(導入時の記事はこちら→ 【Ubuntu 24.04】ノートPCのふたを閉じるとスリープしてWi-Fiが切れる問題と対策(Surface Pro 5実例))、省電力かつ停電時も粘れるバッテリ付きサーバとして運用し、Minecraftサーバを常時稼働させています。
今回は、旧 MacBook Air(macOS 11 Big Sur) を使って外出先から安全にアクセスする方法を、Tailscale で実現した手順をまとめます。

目次

旧Macbook Air(Big Sur)で外出先からマイクラサーバへアクセス

外からも家族で楽しめるように、外出先から安全に自宅のマイクラへ接続する方法を検討しました。手元のPCは 旧 MacBook Air(macOS 11 Big Sur) です。
ここでひとつ壁がありました。Big Sur の古い Mac では App Store(および公式 GUI パッケージ)から Tailscale をそのまま入れられないため、今回は CLI 版(tailscale / tailscaled)を Go で自前ビルドする方針に切り替えています。
具体的には Go 1.24 系 + Tailscale v1.86 系タグでビルドし、起動は launchd(install-system-daemon) で常駐化。
さらに Subnet routes(Advertise / Enable / Accept) を正しく整えて、自宅 LAN(例:192.168.1.0/24)の先にある Minecraft サーバへ、ポート開放なしで到達する構成にしました。

つながったと言える基準

  1. tailscale status に Subnet routes: 192.168.1.0/24 … (active) と出る
  2. ping 192.168.1.10(例:サーバのLAN IP)に応答がある
  3. nc -vz 192.168.1.10 25565 が open を返す
  4. Minecraftクライアントで実接続できる
    ※ここまで揃えば“外からマイクラOK”の判定

ここでつまずいた:Big Sur・Go・Tailscaleの三重苦

  • Big Surは現行Tailscaleアプリ(GUI)の対応外 → Appやpkgは不可
  • go install tailscale@main は Go 1.25+ 前提 → Big Surには1.25が入らない
  • したがって Go 1.24系 + Tailscale旧タグ(v1.86系) で CLI版(tailscale / tailscaled) を自前ビルドする路線に変更
  • GUIがない=DNS(MagicDNS)やサブネットルートの受け入れを自分で整える必要あり
  • sudo 時にPATHが変わり tailscale が見つからない問題(→ /usr/local/bin へシムリンクで解決)

Big SurでもTailscaleを使う手順

Go 1.24系を入れる(誤って1.25に上がらない工夫込み)

brew update
brew install go
go version # → go1.24.x を確認
go env -w GOTOOLCHAIN=local # 自動で新ツールチェーンを取りに行かせない

Tailscale(CLI/デーモン)を旧タグでビルド

# v を忘れずに
go install tailscale.com/cmd/tailscale@v1.86.2
go install tailscale.com/cmd/tailscaled@v1.86.2

# ユーザーのPATH
echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.zshrc && exec $SHELL -l

# sudoでも使いやすく(任意)
sudo ln -s $HOME/go/bin/tailscale /usr/local/bin/tailscale
sudo ln -s $HOME/go/bin/tailscaled /usr/local/bin/tailscaled

常駐化(再起動後も自動でVPNが張られる状態へ)

sudo tailscaled install-system-daemon
sudo tailscale up # 初回のみブラウザでログイン
tailscale status

以後はmac再起動でも tailscaled が自動起動し、保存済み設定で数秒〜十数秒後に再接続。

Subnet routes を正しく通す(“Advertise/承認/受け入れ”の三段構え)

  • サブネットルータ(例:pikvmなどLAN側Linux機)で“Advertise”
sudo tailscale set --advertise-routes=192.168.1.0/24
# ルータやLAN機に静的ルートを置きたくないならSNATも
sudo tailscale set --snat-subnet-routes=true
# (Linuxなら念のため)sudo sysctl -w net.ipv4.ip_forward=1
  • 管理コンソールで“承認(Enable)”
    Machines → サブネットルータ → Route settings → 192.168.232.0/24 を Enable
  • クライアント(Big SurのMBA)で“受け入れ”
sudo tailscale set --accept-routes=true
tailscale status # 「… (active)」が付けばOK

Subnet routesってつまり何?(仕組みを“絵が浮かぶ言葉”で)

  • 100.x.x.x は各ノード自身のTailscale IP
  • Subnet routes は「そのノードの向こう側の既存LAN(例:192.168.1.0/24)を丸ごとVPNに載せる」ための経路共有
  • だから Advertise(どのLANを載せるか)→承認(配る許可)→受け入れ(クライアント適用) の3ステップが必須
  • 物理的に同じサブネットにいるクライアントは、そのプレフィクスのVPN経路を基本使いません(競合避けの仕様)

動作確認と最終チェック(“実害ベース”で締める)

tailscale status
route -n get 192.168.1.1
netstat -rn | egrep '192\.168\.232|utun'
ping -c 3 192.168.1.10
nc -vz 192.168.1.10 25565

nc が open まで通れば、Minecraftクライアントでも概ねOK。名前で繋ぎたい場合はMagicDNSの設定も忘れずに。

まとめ:古い機材に“もう一役”お願いするやり方

  • 液晶が壊れても、Surfaceは静音・省電力のサーバとして十分に働ける。Ubuntu導入の要点は既存記事に集約済み。
  • Big SurのMBAはアプリ非対応でも、Go 1.24 + Tailscale v1.86系(CLI) 路線で実用化できた。
  • つまずきポイントは Subnet routes(広告/承認/受け入れ) と DNS(MagicDNSは手動)。一度通してしまえば、再起動後も自動でVPNが立ち上がる。
  • ポート開放いらずで、外からも家のマイクラに安心参加。古い機材にもう一度出番を作る、現実的なやり方だと思います。