Tabla de Contenidos

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:

Características

Casos de uso

Algunos ejempos de cómo se puede utilizar RustDesk:

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:

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

La instalación del servidor consta de dos ejecutables:

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:

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:

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