Remote screen sharing — Parsec · RustDesk · official tools compared
See and control another OS's desktop from your machine. Latency, resolution, and security tradeoffs plus working setups.
Sometimes SSH and VS Code Remote aren't enough — you need actual GUI control on another machine: a game, a design tool, a BIOS screen, or a vendor app. Remote development covers code editing; this guide covers seeing the screen.
Four options compared and set up end-to-end.
TL;DR
| Tool | Latency | Resolution | Cost | Best for |
|---|---|---|---|---|
| Parsec | Very low (~5ms) | 4K 60Hz | Free (personal) | Games · creative tools |
| RustDesk | Low (~30ms) | 4K 30Hz | Free, OSS | General desktop work |
| macOS Screen Sharing (VNC) | Moderate (~100ms) | Same as screen | Free (Mac→Mac) | Simple Mac-to-Mac |
| Windows Remote Desktop (RDP) | Low (~50ms) | Same as screen | Free (Pro+) | Win→Win, office use |
Recommended combo: Parsec (real-time) + RustDesk (everyday remote) + RDP (Win-to-Win) + Screen Sharing (Mac-to-Mac).
1. Parsec — games / creative tools
Originated as low-latency game streaming. P2P UDP + hardware encoding (NVENC, AMF, Quick Sync) → 5–10ms latency. 4K 60Hz feasible.
1.1 Install
Host (remote PC):
winget install --id Parsec.ParsecClient (laptop):
brew install --cask parsec # Mac
winget install --id Parsec.Parsec # Windows1.2 Sign up + host setup
- Sign up at parsec.app (email)
- On the host PC → Parsec app → Sign in → Settings → Hosting → "Share this computer" ✅
- To invite teammates → Settings → Team → Invite
1.3 Connect from client
Client app → Sign in → pick host from list → Connect.
1.4 Key settings
- Decoder: client GPU
- Bandwidth: Auto (adapts to network)
- Resolution: match host = client (avoid scaling)
- Mouse: "Direct" (raw input) for games; "Window" otherwise
1.5 Strengths / weaknesses
Strengths:
- Lowest latency — 60+ fps, mouse feels native
- Hardware encoding — barely any CPU
- HDR and multi-monitor
Weaknesses:
- Closed source — no security audit possible
- Cloud signaling (pairing through Parsec servers)
- Linux host support discontinued
- Falls back to relay (slower) when direct P2P fails
2. RustDesk — open-source all-rounder
Open-source, written in Rust. TeamViewer alternative. Self-hosting possible. 60+ platforms.
2.1 Install
Mac:
brew install --cask rustdeskWindows:
winget install --id RustDesk.RustDeskLinux: GitHub Releases — AppImage / .deb.
2.2 Use
Run RustDesk on each machine — you'll see a 9-digit ID and a 4-digit password. The client enters the ID, confirms the password → connected.
2.3 Strengths / weaknesses
Strengths:
- Open source
- Self-hostable (sign + relay servers) → zero external dependency
- Every OS as host or client
- Built-in file transfer
Weaknesses:
- Higher latency than Parsec (not great for games)
- Public sign server trust issue — self-host recommended
2.4 Self-hosting
Run hbbs (sign) + hbbr (relay) as containers on a VPS:
docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 \
-v $PWD:/root -td --net=host rustdesk/rustdesk-server hbbs -r your-server.com:21117
docker run --name hbbr -p 21117:21117 -p 21119:21119 \
-v $PWD:/root -td --net=host rustdesk/rustdesk-server hbbrPoint each RustDesk client → Settings → Network → ID Server / Relay Server to your VPS IP. External deps now zero.
3. macOS Screen Sharing (VNC-based)
For Mac → Mac. Apple ID / iCloud integrated:
3.1 Host
System Settings → General → Sharing → Screen Sharing ON.
From another Mac signed into the same Apple ID → Finder → sidebar → host machine → "Share Screen".
3.2 Outside the LAN
Off-network connectivity goes through Apple ID auto-P2P (Mac-to-Mac). Latency rises noticeably.
3.3 Strengths / weaknesses
Strengths:
- Zero setup (same Apple ID is enough)
- File drag + clipboard sync
Weaknesses:
- Mac-to-Mac only
- VNC-based, higher latency (not for games)
4. Windows Remote Desktop (RDP)
For Windows Pro/Enterprise → Windows. Microsoft official, the office-environment standard.
4.1 Host (Win Pro+)
Settings → System → Remote Desktop → ON.
4.2 Client
- Mac:
Microsoft Remote Desktop(App Store) - Windows: built-in
mstsc.exe - iOS/Android:
Remote Desktopapp
Enter host IP + user + password.
4.3 Strengths / weaknesses
Strengths:
- Microsoft official, very stable
- Multi-monitor · audio · printer redirection
- Works smoothly over VPN / Tailscale
Weaknesses:
- Windows Home cannot host (it can act as client)
- Mac-to-Windows only (reverse needs Parsec / RustDesk)
5. Combining with Tailscale
If you set up Tailscale per Remote development, every option becomes smoother:
- Parsec — works as-is, P2P succeeds more (Tailscale pierces NAT)
- RustDesk — point your self-hosted sign server to a Tailscale private IP
- macOS Screen Sharing / RDP — connect by Tailscale hostname (no port forwarding, safer)
# Tailscale hostname + RDP
# In the Mac Remote Desktop app:
PC Name: desktop.tail-scale.ts.net6. Security
No weak passwords
RustDesk's 4-digit password is weak. Set a permanent alphanumeric password in Settings.
Don't expose to the internet
Exposing RDP / VNC ports (3389, 5900) to the public internet = bot attacks within minutes. Always go through Tailscale or equivalent VPN.
Make remote sessions visible
The host should show a clear indicator when someone is connected (macOS does this by default; Windows needs to be configured).
Company policy
Check IT policy before installing RustDesk / Parsec on a company machine — it's a security violation in many organizations.
7. Recommendations by scenario
A. Design / video work (Mac → Win gaming PC)
- Parsec + Tailscale
- ~5ms feels nearly local
B. Everyday remote desktop (email, docs)
- RustDesk self-hosted
- ~100ms is fine; zero external dependency
C. Office (Windows Pro environment)
- RDP + corporate VPN
- Most stable, the IT standard
D. Helping family / friends
- Parsec Free (sign up under gaming mode)
- One-off access, share a temporary password
E. Server BIOS / KVM
- IPMI / iDRAC / iLO (server-built-in KVM)
- Parsec etc. only work after the OS boots
Verification
- Parsec — host + client on the same Wi-Fi → check latency in Settings → Stats
- RustDesk — ID + password → file transfer test
- macOS Screen Sharing — same Apple ID discovers another Mac → click → screen appears
- RDP — connect from Mac to Windows over a Tailscale hostname
- Self-hosted — RustDesk continues to work after disabling public internet
Troubleshooting
Parsec black screen
- Host GPU driver outdated — update NVIDIA Studio Driver / AMD Adrenalin
- Missing "Allow Parsec to access this app" (on macOS: Screen Recording permission)
RustDesk ID only works on the same PC
Public sign server may be down. Self-host instead.
macOS Screen Sharing "Already in use"
Someone's already connected, or the host is sleeping. Enable Wake-on-LAN, or sign back in from a different location.
RDP "Credentials did not work"
- Confirm Windows Pro (Home cannot host)
- Use the Windows account + password (if it's a Microsoft account, use the MS email + password)
- Try disabling Network Level Authentication on low-power setups
Screen sharing slow over Tailscale
- Check whether it's going via DERP relay:
tailscale ping desktop - Direct connection failure often means a corporate firewall blocking UDP 41641 — see Tailscale admin console
Clipboard sync not working
- Parsec — Settings → Client → Clipboard Sync ✅
- RustDesk — Settings → Display → disable Privacy Mode
References
- Remote development (SSH · VS Code Remote) — use that for code editing
- Mac↔Win file sync — often you just need files, not a screen
- Parsec official
- RustDesk GitHub
- Microsoft Remote Desktop
Changelog
- 2026-05-12 — Initial English translation (devAlice M2 i18n seed)