Herramientas de usuario

Herramientas del sitio


informatica:software:rustdesk

RustDesk

RustDesk es un software de acceso remoto y control remoto de código abierto. RustDesk permite a los usuarios conectarse a un dispositivo remoto y controlar su pantalla y teclado. RustDesk es una buena opción para los usuarios que buscan una alternativa gratuita y de código abierto a software de acceso remoto comercial como TeamViewer o AnyDesk.

Plataformas soportadas:

  • Linux
  • Windows
  • macOS
  • Android
  • iOS (solo ver, no controlar)

Características

  • Acceso remoto a cualquier dispositivo.
  • Control remoto de la pantalla y el teclado.
  • Transferencia de archivos.
  • Soporte para múltiples usuarios.
  • Chat en tiempo real.
  • Seguridad de grado militar.

Casos de uso

Algunos ejempos de cómo se puede utilizar RustDesk:

  • Para proporcionar soporte técnico a distancia a los clientes / amigos / familiares.
  • Para acceder a un dispositivo remoto desde cualquier lugar.
  • Para controlar un dispositivo remoto para fines educativos o de investigación.
  • Para compartir la pantalla de un dispositivo con otros usuarios.

Instalación de servidor

Aunque podemos usar el servidor público que nos ofrece RustDesk por defecto, tenemos la posibilidad de instalar nuestro propio servidor de RustDesk y no depender del servidor central.

El servidor de RustDesk usa los siguientes puertos:

  • 21115: se usa para la prueba del tipo de NAT.
  • 21116 (TCP y UDP): se usa para la conexión y para el registro de ID.
  • 21117: se usa para los servicios de “relay”.
  • 21118: se usa para los clientes web.
  • 21119: se usa para los clientes web.

Debemos asegurarnos de tenerlos abiertos si estamos detrás de un router o firewall.

La instalación del servidor consta de dos ejecutables:

  • hbbs: servidor de ID y P2P
  • hbbr: servidor de retransmisión (relay).

Docker

Ejemplo de docker-compose.yml para usar con Docker Compose:

---
version: '3'

services:
  hbbs:
    container_name: rustdesk-hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs -r remoto.ejemplo.com
    volumes:
      - ./data:/root
    network_mode: "host"
    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: rustdesk-hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

Al usar network_mode: "host" no es necesario indicar qué puertos exponer del contenedor hacia la máquina anfitriona.

En el directorio data, cuando ya esté funcionando el servidor, encontraremos la base de datos y las claves asimétricas (privada y pública).

Conseguir la clave pública

Para usar nuestro servidor en la configuración de los clientes de RustDesk, necesitaremos indicar también la clave pública de cifrado.

En la instalación de Docker, si lo hemos hecho con el ejemplo de esta wiki, tendremos que entrar en el directorio data y ver el contenido del fichero id_ed25519.pub.

Se puede usar RustDesk sin especificar la clave pública, pero la conexión no será cifrada. Si no queremos permitir a los clientes que se conecten sin clave pública, añadiríamos la opción -k a la hora de ejeccutar los comandos hbbs y hbbr

Cliente

Los clientes son tanto los equipos que quieren conectarse y/o administrar remotamente otros equipos, como los equipos a controlar.

Si no vamos a usar el servidor público de RustDesk y queremos configurar el nuestro (u otro), hay que ir a la sección “ID/relay server” y cubrir dos campos:

  • ID server: la IP o el nombre de dominio donde tenemos instalado el servidor de RustDesk.
  • Key: clave pública de dicho servidor (contenido del fichero id_ed25519.pub).

RustDesk deducirá automáticamente los otros dos campos (si tienen la configuración por defecto en el servidor).

Windows

El cliente de Windows permite aplicar la configuración escribiéndola directamente en el ejecutable. Por ejemplo, si el ejecutable es rustdesk.exe, lo renombraremos de la siguiente manera:

rustdesk-host=<host-ip-or-name>,key=<public-key-string>.exe

De tal manera que si el servidor está en remoto.ejemplo.com y la clave pública es Er1o6f4332CvcXaPxZ7EBm2e70R1234vXW3avgJheRw=, el nombre del ejecutable final será:

rustdesk-remoto.ejemplo.com,key=Er1o6f4332CvcXaPxZ7EBm2e70R1234vXW3avgJheRw=.exe

Android

El cliente de RustDesk ya no está disponible desde Google Play y tenemos que descargarlo desde su repositorio de GitHub.

Si tenemos nuestro propio servidor, podemos indicarlo en AjustesServidor ID/Relay. Introduciremos el dominio o dirección IP de nuestro servidor en el campo Servidor ID. Servidor de relé y Servidor API puede quedar en blanco. Si queremos comunicación cifrada, introduciremos la clave pública en el campo Clave.

Para conectarse a un dispositivo Android con RustDesk, debemos ir al menú inferior y seleccionar Compartir pantalla y luego pulsar en Iniciar Servicio. Cuando esté en funcionamiento, podemos conectarnos al terminal Android desde cualquier otro dispositivo usando RustDesk.

Linux

Pruebas hechas con Arch Linux. Paquete rustdesk (lo compilará, tardará en crear el ejecutable) o rustdesk-bin.

Para configurarlo con un servidor propio:

  • Haz clic en Configuración.
  • Haz clic en Red.
  • Haz clic en Desbloquear configuración de red.
  • Ingresa tu ID, Relay, API (si usas servidor pro) y tu clave pùblica.

Resolución de problemas

Unsupported display server tty, x11 expected

Este mensaje lo da RustDesk si intentamos conectarnos a un equipo Linux que no tiene el servidor gráfico X11 o Wayland. Sin embargo, también da el error si arrancamos el servidor gráfico desde startx o cualquier otra herramienta que no sea un gestor de inicio (login manager).

Mientras no lo solucionen, debemos establecer la variable XDG_SESSION_TYPE a x11 o wayland antes de ejecutar RustDesk. Por ejemplo:

export XDG_SESSION_TYPE=x11

Para hacerlo permanente, podemos incluirlo en el fichero .xinitrc:

export XDG_SESSION_TYPE=x11

Recursos

informatica/software/rustdesk.txt · Última modificación: por tempwin