If you need to connect devices across different networks — your NAS at home, a cloud server, and your phone on 5G — you have options. I've been running both EasyTier and Tailscale in production for months. Here's what I learned.
The Problem: CGNAT
Most home ISPs in China (and many elsewhere) use Carrier-Grade NAT (CGNAT). You don't have a public IP. Your "public" address is shared with hundreds of other customers. This makes traditional port forwarding impossible.
Both EasyTier and Tailscale solve this with P2P hole-punching — they find a direct path between your devices even when both are behind NAT.
EasyTier
EasyTier is an open-source mesh networking tool popular in Chinese developer communities. It's lightweight, self-hostable, and doesn't rely on any third-party coordination servers (unless you want one).
Deployment:
# Docker on NAS
docker run -d --name easytier --restart unless-stopped \
--network host -v /path/to/data:/var/lib/easytier \
easytier/easytier:latest \
-e 0.0.0.0:11000 \
--network-name my-mesh \
--network-secret my-secret
Network setup: I connected 4 nodes — a NAS (CGNAT), an Alibaba Cloud VPS (public IP), a phone on 5G, and an unRAID server.
What I loved:
- Completely self-hosted — no external dependency
- Works reliably through CGNAT (18-35ms P2P latency)
- Lightweight — runs on a $5/month VPS as relay
- Open source with active development
What could be better:
- Documentation is mostly in Chinese
- Smaller community than Tailscale
- CLI is functional but not as polished
Tailscale
Tailscale is built on the WireGuard protocol and uses a coordination server for device discovery. It's more polished but relies on Tailscale's infrastructure.
Deployment:
# One-command install on most platforms
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --auth-key=<key>
What I loved:
- Incredibly easy setup — one command per device
- Beautiful web admin panel
- Built-in ACLs for access control
- Works everywhere (Linux, macOS, Windows, iOS, Android)
What could be better:
- Relies on Tailscale's coordination servers
- Free tier limited to 3 users, 100 devices
- Closed-source coordination layer
- Some features require subscription ($5/user/month)
Side-by-Side Comparison
| Feature | EasyTier | Tailscale |
|---------|----------|-----------|
| Self-hosted | ✅ Yes (no external deps) | ❌ Requires coordination server |
| P2P hole-punching | ✅ Works through CGNAT | ✅ Works through CGNAT |
| Setup complexity | Medium (Docker + CLI) | Low (one command) |
| Latency (CGNAT→5G) | 18-35ms | 15-30ms |
| Open source | ✅ Full MIT license | ⚠️ Client open, server closed |
| Documentation | Chinese-focused | Excellent, multi-language |
| Community size | Small (~1k GitHub stars) | Massive (100k+ stars) |
| Cost | Free (self-hosted) | Free tier limited, $5/user/mo for teams |
My Recommendation
Use EasyTier if:
- You want complete control over your network
- You have a cloud VPS to act as a relay
- You're comfortable with Docker and CLI
- Your devices are primarily in China (better China network performance)
Use Tailscale if:
- You want the simplest possible setup
- You need easy sharing with other users
- You don't want to maintain infrastructure
- Your devices are mostly outside China
My Setup
I went with EasyTier for my production network. The self-hosted nature gives me peace of mind, and having a relay on Alibaba Cloud keeps latency low. The 18-35ms P2P latency across CGNAT is more than good enough for SSH, file access, and API calls.
That said, I use Tailscale for quick experiments and temporary connections — the one-command setup is unbeatable for ad-hoc needs.
Bottom line: Both are excellent. Choose based on whether you value control (EasyTier) or convenience (Tailscale).