The Complete Remote Access Guide: frp, ZeroTier, and Tailscale
In today's increasingly digital life, the NAS (network-attached storage) or PC in your home often holds important data, photos, and media. However, most home broadband connections do not come with a public IP, so the moment you leave home you can no longer reach those devices.
"NAT traversal"technology exists exactly for this. This article reviews and walks you through deploying today's three most popular options: frp, ZeroTier, and Tailscale — so you can "go home" from anywhere.
Part 1: Comparing the options
Before you start tinkering, it is essential to understand how these tools differ so you can pick the one that fits you best.
| Feature | frp (Fast Reverse Proxy) | Tailscale | ZeroTier |
|---|---|---|---|
| Core mechanism | Reverse proxy (mostly relay mode) | Virtual networking built on WireGuard | Virtual networking (P2P/relay) |
| Requirements | A VPS with a public IP is required | No VPS needed (official relay) | No VPS needed (official relay) |
| Setup difficulty | High (requires editing config files) | Extremely low (one-click login) | Low (web console) |
| Best for | Public sharing (hosting sites, sharing files) | Private access (remote administration) | Private access / LAN gaming |
📝 Buying advice:
- If you want to share a website hosted on your NAS with friends, go with frp.
- If you just want to stream media and manage your server remotely yourself, go with Tailscale.
Part 2: frp in practice (advanced)
frp is the most popular high-performance reverse proxy today. Configuration is a bit more involved, but it gives you the most control.Note: this guide uses the toml format recommended by frp v0.52.0+.
1. Preparation
- Server: a cloud server (VPS) with a public IP.
- Client: the NAS or PC at home.
- Software: download from GitHub Releases.
2. Server configuration (deployed on the VPS)
After extracting the software, edit the frps.toml file:
# frps.toml
bindPort = 7000 # port used for serverclient communication
# authentication (very important!)
auth.method = "token"
auth.token = "SetYourStrongPasswordHere123" # replace with a strong password
# dashboard configuration (optional)
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin123"
Start the server:./frps -c frps.toml
3. Client configuration (deployed on the NAS)
Edit the frpc.toml file to connect to your VPS:
# frpc.toml
serverAddr = "x.x.x.x" # enter your VPS public IP
serverPort = 7000 # must match the server bindPort
auth.method = "token"
auth.token = "SetYourStrongPasswordHere123" # must match the server
# === proxy rules ===
# example 1: remote SSH access
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000 # connecting to VPS:6000 reaches your home SSH
# example 2: NAS admin page
[[proxies]]
name = "nas-web"
type = "tcp"
localIP = "192.168.1.100" # the NAS LAN IP
localPort = 5000
remotePort = 5000 # connecting to VPS:5000 opens the NAS
Start the client:./frpc -c frpc.toml
Part 3: Simple networking with Tailscale/ZeroTier
If you don't want to buy a VPS or write any code, start here.
Option A: Tailscale (recommended)
- Sign up: go to the Tailscale website and sign in with your Google/Microsoft account.
- Install: install the Tailscale client on both your NAS and your phone/computer.
- Connect: sign in to the same account.
- Use it: Tailscale assigns an IP in the
100.x.x.xrange — just access that IP directly.
Option B: ZeroTier
- Create a network: register on the website and create a Network to get your Network ID.
- Join the network: enter the ID on every device to join.
- Authorize (critical): go back to the web console and tick the
Authcheckbox for the new device.
Part 4: Security and pitfalls
Exposing your LAN to the public internet carries risk. Always follow these principles:
- Use strong passwords: the frp token and your NAS account passwords must be sufficiently complex.
- Block the port: never expose SMB (port 445) directly to the public internet — it is an easy way to get ransomware.
- Enable HTTPS: for web services, pair it with Nginx Proxy Manager to configure an SSL certificate.
