20 Tailscaled on macOS
Andrea Gottardo edited this page 2024-08-19 08:28:49 -07:00

tailscaled on macOS

There are multiple ways to use Tailscale on macOS. The recommended way is to always install the Standalone variant, available for download from the Tailscale website.

This page is about how to use the open source, non-GUI tailscaled and tailscale binaries. This is only recommended for advanced users.

Requirements

Install Go

Install Go 1.21 (or whatever the most recently released Go version is) from https://golang.org/dl/ or Homebrew, etc. Tailscale always requires the most recent Go version and doesn't support older ones.

Compile Tailscale

Run:

go install tailscale.com/cmd/tailscale{,d}@main

That'll put the binaries in $(go env GOPATH)/bin, so likely $HOME/go/bin. You can copy or symlink those binaries into your $PATH, or make your $PATH include that directory.

You can also compile from a specific release version. For example to build from the source code used for Tailscale 1.38.2, use:

go install tailscale.com/cmd/tailscale{,d}@v1.38.2

Run the tailscaled (daemon)

sudo $HOME/go/bin/tailscaled

Or, to run it in the background under launchd so it starts at system boot:

sudo $HOME/go/bin/tailscaled install-system-daemon

That copies the binary to /usr/local/bin and installs a plist in /Library/LaunchDaemons/com.tailscale.tailscaled.plist and starts com.tailscale.tailscaled.

(to stop/uninstall, use: sudo tailscaled uninstall-system-daemon)

Use the tailscale CLI tool

See https://tailscale.com/kb/1080/cli (but ignore the /Applications/Tailscale.app/Contents/MacOS/Tailscale part; that's the path to the GUI's CLI)

tailscale up       # (any optional arguments)
tailscale status

Enjoy.

Comparison to GUI version

Compared to the GUI version of Tailscale, running tailscaled instead has the following differences:

  • tailscaled on macOS is less tested.
  • the App Store version uses the Apple Network Extension API; tailscaled uses the /dev/utun TUN interface
  • MagicDNS works, but you need to set 100.100.100.100 as your DNS server yourself. It doesn't change your DNS config.
  • tailscaled can run at system boot before any user has logged in (e.g. letting you VNC to your computer after a power outage)
  • is fully open source (Tailscale GUI parts aren't open source on non-free operating systems)

Refer to the comparison available in the Tailscale KB for more details.