devAlice
← Multi-OS

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

ToolLatencyResolutionCostBest for
ParsecVery low (~5ms)4K 60HzFree (personal)Games · creative tools
RustDeskLow (~30ms)4K 30HzFree, OSSGeneral desktop work
macOS Screen Sharing (VNC)Moderate (~100ms)Same as screenFree (Mac→Mac)Simple Mac-to-Mac
Windows Remote Desktop (RDP)Low (~50ms)Same as screenFree (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.Parsec

Client (laptop):

brew install --cask parsec     # Mac
winget install --id Parsec.Parsec   # Windows

1.2 Sign up + host setup

  1. Sign up at parsec.app (email)
  2. On the host PC → Parsec app → Sign in → Settings → Hosting → "Share this computer" ✅
  3. 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 rustdesk

Windows:

winget install --id RustDesk.RustDesk

Linux: 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 hbbr

Point 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 Desktop app

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.net

6. 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

  1. Parsec — host + client on the same Wi-Fi → check latency in Settings → Stats
  2. RustDesk — ID + password → file transfer test
  3. macOS Screen Sharing — same Apple ID discovers another Mac → click → screen appears
  4. RDP — connect from Mac to Windows over a Tailscale hostname
  5. 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

Changelog

  • 2026-05-12 — Initial English translation (devAlice M2 i18n seed)

Keep reading