RustDesk 1.5 WebRTC, end to end: the bundled ID server passes WebRTC signalling, strategies set the STUN and TURN servers, and the web client connects over WebRTC.
New
- WebRTC in the web client. To a device running RustDesk 1.5 or later, the web client offers WebRTC alongside the relay and goes straight to the device when it can. On a LAN that means machine to machine instead of a trip through the relay. The relay stays the fallback, as before. The session's Details panel shows the Transport: WebRTC direct, WebRTC through TURN, or Relay.
- WebRTC for desktop clients. The bundled server is now CortenDesk Server 1.2.0, which passes RustDesk 1.5's WebRTC offers, answers and candidates between devices. Stock rustdesk-server does not.
- Strategies set the ICE servers. A new Network group sets
ice-servers, the STUN and TURN servers RustDesk 1.5 uses for WebRTC. The console refuses any entry the client would silently skip, such as a TURN server without credentials. - Settings → Server: "Web client uses WebRTC" (on by default) and "Web client ICE servers".
- Wiki: a new WebRTC connections page covers requirements, the ICE server format, and a tested coturn setup.
How to use it
- Upgrade. The Docker image already bundles the new server. On a manual install, also upgrade
hbbsto CortenDesk Server 1.2.0. - Web client: nothing to do. It uses WebRTC by default. Open Session → Details during a session to see which path it took.
- Desktop clients: on the device you connect from, tick Settings → General → Other → Enable WebRTC P2P connection. The device you connect to needs nothing. To see the path, hover over the session's tab.
- Optional, recommended if anyone connects from mobile data: run a TURN server (the wiki has a tested coturn config), then point desktop clients at it with a strategy (Network → WebRTC ICE servers) and the web client with Settings → Server → Web client ICE servers. The format is
stun:turn.example.com:3478, turn://user:password@turn.example.com:3478.
When WebRTC cannot connect, the session falls back to the hole punch or the relay, so turning it on breaks nothing. Full guide: WebRTC connections.
Fixed
- iPhone: tapping a text field no longer zooms the page and leaves it scrolled sideways (login screen, toolbars, web client fields).
- Web client: labels in the dock, tabs and file panel buttons are escaped (code scanning alerts).
- Livewire 4.4.8 (GHSA-mhf7-xp6r-6qrc). CortenDesk did not use the affected features.
Notes
- No database migrations.
- The browser and the device learn each other's IP addresses over WebRTC, as with the desktop client. "Web client uses WebRTC" turns it off.
- Users on mobile data or carrier NAT need a TURN server for WebRTC; without one their sessions use the relay as before. See the wiki page for a coturn config.
docker pull marcpope/cortendesk:1.17.0
docker pull ghcr.io/marcpope/cortendesk:1.17.0