RustDesk¶
Escritorio remoto self-hosted (estilo AnyDesk/TeamViewer pero open source y sin licencia). Servidor propio: rendezvous (
hbbs) + relay (hbbr).
📁 Rutas y configs¶
| Qué | Dónde |
|---|---|
| Compose | /opt/docker/rustdesk/compose.yaml |
| Data (claves + DB registros) | /opt/docker/rustdesk/data/ (root:root 700 — contiene id_ed25519 privada) |
| Clave pública de conexión | /opt/docker/rustdesk/data/id_ed25519.pub |
Contenedores: hbbs (rendezvous) y hbbr (relay) — network_mode: host, sin puertos publicados vía Docker.
🔑 Clave pública (obligatoria en ambos clientes)¶
hbbs genera un par ed25519 en el primer arranque. La clave pública (id_ed25519.pub) hay que cargarla en todos los clientes (servidor + laptop) en Settings → Network → Key, junto con el ID server. Sin la key no hay conexión cifrada.
Pub key actual: h41fN20uO0b2MrLtPmq9CBDSfZsBenHKB8+DAwNuMyw= (guardarla en Vaultwarden).
🌐 Red / puertos (host mode)¶
| Puerto | Proto | Servicio |
|---|---|---|
| 21115 | tcp | NAT type test (hbbs) |
| 21116 | tcp + udp | ID registration + heartbeat + hole punching (hbbs) |
| 21117 | tcp | Relay (hbbr) |
network_mode: host(como recomienda la doc oficial): hbbs/hbbr ven las IPs reales de los clientes para el rendezvous. Excepción justificada a la regla "host solo para Caddy".- Sin 21118/21119: son para el cliente web (RustDesk Web) — la doc advierte riesgo de headers spoofeados, no se usan.
- Alcance: solo LAN (192.168.0.0/24) y WireGuard (10.66.66.0/24 y 100.99.21.0/24). UFW está INACTIVO en el host (INPUT/FORWARD ACCEPT, DOCKER-USER vacía — ver nota 27 jul 2026 en homelab.md): la protección la da el router TP-LINK, que NO forwardea 21115-21117 a WAN. No tocar UFW sin plan propio.
📱 Clientes¶
- Linux:
.debde https://github.com/rustdesk/rustdesk/releases (apt install -fy ./rustdesk-*.deb) o AppImage/Flatpak. - ID server:
192.168.0.12(LAN) o10.66.66.1/100.99.21.122(WG). Relay server: se infiere solo (mismo host, 21117). - Key: la pub key de arriba. Password permanente para acceso desatendido al servidor.
- El host (lado controlado) corre X11 (SDDM/KDE en Xorg) — RustDesk controla sesiones X11 sin problemas. Wayland del cliente controlador es indiferente.
🔧 Troubleshooting¶
docker logs hbbs --tail 20 # ver rendezvous server
docker logs hbbr --tail 20 # ver relay
ss -tulpn | grep -E '2111[5-7]' # puertos escuchando
- Si los clientes no registran su ID → el ID server no es alcanzable (probar
nc -vz 192.168.0.12 21116), o falta la key. - Si se conecta pero se cae lento → revisar si está pasando por relay (21117) en vez de conexión directa.