Remote Work Setup I: Tailscale
Many researchers switch between a laptop for casual work and a powerful workstation for heavy tasks. This series shares my remote setup connecting a local MacBook Pro to a remote Mac Pro.
My workflow relies on four key tools:
- Tailscale: Creates a secure virtual network to connect devices anywhere.
- VS Code: A versatile editor with the Remote - SSH extension.
- Radian: An enhanced R console.
- Tmux: A terminal multiplexer for persistent sessions.
This post focuses on Tailscale, the foundation that allows your devices to communicate as if they were on the same local network.
1 Why Tailscale?
I needed a robust way to connect my home and office computers. Other solutions fell short:
- TeamViewer / Chrome Remote Desktop: Often expensive, unstable, or lacking native resolution support (especially for 4K monitors).
- Institutional VPNs: Typically route all traffic through the university network, blocking access to local resources like my home NAS.
Tailscale is the ideal solution. It creates a mesh network using the secure WireGuard protocol. Key benefits include:
- Seamless Connection: Devices connect via stable internal IPs, regardless of their physical location.
- Split Tunneling: It doesn’t route all traffic through the VPN. I can access my office workstation without losing access to my local NAS.
- Exit Nodes: I can route traffic through my office computer when needed—perfect for accessing IP-restricted resources like academic journals from a café.
- Wide Compatibility: Works on macOS, Windows, Linux, iOS, and Android.
2 Installation and Setup
Setting up Tailscale is straightforward:
- Install Tailscale: Download it from tailscale.com for all your devices (laptops, workstations, phones). If you are on macOS, you can also install it via Homebrew:
brew install --cask tailscale. - Log In: Use the same identity provider (Google, Microsoft, GitHub) on every device to link them to your private network.
- Connect: Each device is assigned a unique internal IP (starting with
100.x.x.x).
To test the connection, open your terminal and SSH into your remote machine using its Tailscale IP:
ssh username@100.xxx.xxx.xxxOnce connected, you can also use native tools like macOS Screen Sharing with full resolution support.
3 Other Benefits
Beyond basic connectivity, Tailscale enables several powerful workflows:
3.1 Access Devices Anywhere (e.g., NAS)
Tailscale’s split tunneling means it doesn’t block access to your local network devices. For instance, I can access my home NAS (via WebDAV) from my MacBook Pro anywhere in the world—even from a café—without exposing my home network to the public internet or paying for a static IP.
3.2 Office Computer as an Exit Node
You can route all your internet traffic through a specific device (like your office computer). This is incredibly useful for accessing IP-restricted resources. For example, I can set my UCL workstation as an “exit node” to download papers from Google Scholar as if I were on campus, skipping the need to log in to the library proxy.
4 What’s Next?
With your devices networked via Tailscale, you are ready to set up a remote development environment. In the next post, I will cover how to use VS Code and Remote - SSH to code on your remote server as if you were sitting right in front of it.