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.
I think the choice of remote screen sharing tool matters more than most people expect. Not because the differences are obvious from the feature lists, but rather because latency at 5ms vs 100ms is qualitatively different when you're actually using it — one feels local, the other feels like a video call. Because what makes remote work sustainable is the feeling that the machine is present, not that you're reaching through a network.
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)
Keep reading
- Dev Container — A unified Mac / Windows / Linux dev environment
Use VS Code Dev Containers to erase OS differences. A Docker-based, reproducible dev env defined by a single devcontainer.json the whole team shares.
- Mac ↔ Windows keyboard mapping — Karabiner + PowerToys Keyboard Manager
Smooth out the Cmd ↔ Ctrl divide between the two OSes. Karabiner-Elements (Mac) and PowerToys Keyboard Manager (Windows) setup plus five common remappings.
- Mac + Windows clipboard sync — Universal Clipboard · 1Clipboard · self-hosted
Three paths to sync text/images between Mac and Windows clipboards instantly. Free, paid, and self-hosted compared.