Tailscale creates a secure mesh VPN between Mac-Studio and MacBookPro, enabling connectivity from anywhere.
- Works anywhere: Connect to Mac-Studio from coffee shop, office, or home
- No port forwarding: Works through NAT and firewalls
- MagicDNS: Use simple hostnames (
mac-studio,macbook-pro) instead of IP addresses - Automatic reconnection: Handles network changes gracefully
- Open Mac App Store
- Search for "Tailscale"
- Install and open
- Sign in (use same account on both machines)
brew install --cask tailscaleNote: The CLI-only install (brew install tailscale) requires manual daemon management. The Mac App Store or cask version handles this automatically.
Install Tailscale on Mac-Studio and MacBookPro using the same method.
Sign in with the same identity provider (GitHub, Google, Apple, etc.) on both machines.
# Check Tailscale status
tailscale status
# Should show both machines, e.g.:
# 100.x.x.x mac-studio traviscarter@ macOS -
# 100.y.y.y macbook-pro traviscarter@ macOS -# From Mac-Studio
tailscale ping macbook-pro
# From MacBook Pro
tailscale ping mac-studioTailscale automatically assigns DNS names based on your machine hostname:
| Machine | Tailscale Hostname |
|---|---|
| Mac Studio | mac-studio |
| MacBook Pro | macbook-pro |
These hostnames work from anywhere in your Tailscale network.
Update ~/.ssh/config to use Tailscale hostnames for reliable connectivity:
# mac-studio (via Tailscale)
Host mac-studio
HostName mac-studio
User traviscarter
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
# macbook-pro (via Tailscale)
Host macbook-pro
HostName macbook-pro
User traviscarter
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
Key change: HostName now uses Tailscale MagicDNS name (e.g., mac-studio) instead of .local Bonjour name (e.g., Mac-Studio.local).
ssh mac-studio "hostname"
ssh macbook-pro "hostname"Work directly on Mac-Studio files from MacBook using VS Code Remote-SSH or JetBrains Gateway.
VS Code Remote-SSH:
- Install "Remote - SSH" extension
- Press
Cmd+Shift+P→ "Remote-SSH: Connect to Host" - Select
mac-studio - Open folders directly on Mac-Studio
Benefits:
- Single source of truth
- No sync conflicts
- Works over any network via Tailscale
Use the sync script when you need a local copy (travel, unreliable network):
# Before going offline
./sync-ecfx.sh pull --target=all
# After returning online
./sync-ecfx.sh push --target=all- Daily work: Remote development via VS Code Remote-SSH
- Travel/offline: Rsync pull before disconnecting
- Dotfiles: Always keep synced on both machines
# Check status
tailscale status
# If "Logged out", authenticate:
# Open Tailscale from menu bar → Log in# Check if MagicDNS is enabled
tailscale debug netmap | grep DNS
# Try the Tailscale IP directly
tailscale status # Get IP (100.x.x.x)
ssh traviscarter@100.x.x.x-
Ensure "Remote Login" is enabled on target machine:
- System Settings → Sharing → Remote Login → On
-
Check Tailscale is connected on both machines
-
Test with Tailscale IP:
tailscale ip -4 mac-studio # Get IP ssh traviscarter@<ip>
Tailscale uses direct connections when possible, but may relay through DERP servers if direct path fails.
# Check connection path
tailscale ping mac-studio
# Should show "pong from mac-studio via direct"
# If it shows "via DERP", there may be NAT issues- Tailscale uses WireGuard encryption
- Only devices signed into your Tailscale account can connect
- No ports exposed to public internet
- Access control can be configured in Tailscale admin console
# Show connected devices
tailscale status
# Ping another device
tailscale ping <hostname>
# Get Tailscale IP of a device
tailscale ip -4 <hostname>
# Show network information
tailscale netcheck
# Check debug info
tailscale debug~/.ssh/config- SSH configuration with Tailscale hostnames~/dev-tooling/sync-ecfx.sh- Rsync script for offline sync