Recording of Accessing My Home Minecraft Server from On the Go Using an Old MacBook Air (Big Sur)

My old Surface had a battery defect, causing the CPU to run at only a few percent constantly. Although I replaced the battery myself and restored its performance, I accidentally damaged the LCD during the disassembly process. Since using it with a display became difficult, I repurposed it into a headless “home server" (you can read the setup article here → [Ubuntu 24.04] The Issue of Laptop Wi-Fi Disconnecting Upon Closing the Lid and Its Countermeasures (Surface Pro 5 Practical Example)). I now operate it as an energy-efficient server with a battery that can sustain operation during power outages, running a Minecraft server around the clock.
This time, I will summarize the steps I took to securely access my home server from outside using an old MacBook Air (macOS 11 Big Sur) via Tailscale.

目次

Accessing the Minecraft Server from On the Go with an Old MacBook Air (Big Sur)

To make the server enjoyable for the family even when away from home, I looked into ways to securely connect to my home Minecraft server from outside. The laptop I had on hand was an old MacBook Air (macOS 11 Big Sur).
I hit a roadblock here: since Tailscale cannot be installed directly from the App Store (and official GUI packages) on older Macs running Big Sur, I switched to a strategy of building the CLI version (tailscale / tailscaled) from source using Go.
Specifically, I built it using Go 1.24 + Tailscale v1.86 tags, and daemonized it using launchd (install-system-daemon).
Furthermore, by properly configuring Subnet routes (Advertise / Enable / Accept), I established a setup to reach the Minecraft server located behind the home LAN (e.g., 192.168.1.0/24) without requiring any port forwarding.

Criteria for Confirmed Connectivity

  1. tailscale status outputs Subnet routes: 192.168.1.0/24 … (active)
  2. ping 192.168.1.10 (e.g., the server’s LAN IP) receives a response
  3. nc -vz 192.168.1.10 25565 returns open
  4. Successful connection via the Minecraft client
    ※ Once all of these are met, you can consider it “Minecraft OK from outside"

Where I Stumbled: The Triple Hardship of Big Sur, Go, and Tailscale

  • Big Sur is not supported by the current Tailscale app (GUI) → Apps and pkgs cannot be used
  • go install tailscale@main assumes Go 1.25+ → Go 1.25 cannot be installed on Big Sur
  • Therefore, I switched course to building the CLI version (tailscale / tailscaled) from scratch using Go 1.24 + older Tailscale tags (v1.86 series)
  • Lack of GUI means having to manually configure DNS (MagicDNS) and subnet route acceptance
  • The issue where the PATH changes during sudo and tailscale cannot be found (→ Solved with a symlink to /usr/local/bin)

Steps to Use Tailscale on Big Sur

Installing Go 1.24 (Including Measures to Prevent Accidental Upgrades to 1.25)

brew update
brew install go
go version # → Confirm go1.24.x
go env -w GOTOOLCHAIN=local # Prevent automatic fetching of newer toolchains

Building Tailscale (CLI/Daemon) with Older Tags

# Don't forget the 'v'
go install tailscale.com/cmd/tailscale@v1.86.2
go install tailscale.com/cmd/tailscaled@v1.86.2

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

# Make it easy to use with sudo (optional)
sudo ln -s $HOME/go/bin/tailscale /usr/local/bin/tailscale
sudo ln -s $HOME/go/bin/tailscaled /usr/local/bin/tailscaled

Daemonization (Ensuring VPN Automatically Establishes After Reboot)

sudo tailscaled install-system-daemon
sudo tailscale up # Log in via browser only for the first time
tailscale status

From then on, tailscaled will automatically start even after a Mac reboot, reconnecting a few to ten-odd seconds later using saved settings.

Properly Routing Subnet Routes (The Three-Step Process of “Advertise / Approve / Accept")

  • “Advertise" on the subnet router (e.g., a LAN-side Linux machine like PiKVM)
sudo tailscale set --advertise-routes=192.168.1.0/24
# Use SNAT if you don't want to place static routes on routers or LAN devices
sudo tailscale set --snat-subnet-routes=true
# (Just in case on Linux) sudo sysctl -w net.ipv4.ip_forward=1
  • “Approve (Enable)" in the Admin Console
    Machines → Subnet router → Route settings → Enable 192.168.232.0/24
  • “Accept" on the client (Big Sur MBA)
sudo tailscale set --accept-routes=true
tailscale status # OK if "… (active)" is appended

What Exactly Are Subnet Routes? (Explaining the Mechanism in “Visual Terms")

  • 100.x.x.x is each node’s own Tailscale IP
  • Subnet routes share paths to “bring the entire existing LAN beyond that node (e.g., 192.168.1.0/24) onto the VPN"
  • That is why the 3-step process of Advertise (which LAN to carry) → Approve (permission to distribute) → Accept (client application) is mandatory
  • Clients physically located on the same subnet basically do not use the VPN route for that prefix (a specification to avoid conflicts)

Operation Check and Final Verification (Concluding on a “Practical Impact Basis")

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

If nc successfully reaches the open state, you are mostly good to go with the Minecraft client as well. Don’t forget to configure MagicDNS if you prefer connecting by name.

Conclusion: How to Give Old Hardware “One More Role"

    Even with a broken screen, a Surface can function adequately as a quiet, energy-efficient server. The key points for Ubuntu deployment have already been summarized in a previous article.
  • Even though the Big Sur MBA does not officially support the app, it was made practical via the Go 1.24 + Tailscale v1.86 (CLI) route.
  • The stumbling blocks are Subnet routes (Advertise/Approve/Accept) and DNS (MagicDNS must be set manually). Once successfully configured, the VPN starts automatically even after reboots.
  • Join your home Minecraft server securely from anywhere without needing port forwarding. I think this is a realistic way to give old hardware another chance in the spotlight.