RustDesk
RustDesk es una solución de escritorio remoto de código abierto que permite a los usuarios acceder y controlar computadoras de forma remota a través de Internet. Es una alternativa a soluciones propietarias como TeamViewer o AnyDesk, y se destaca por su enfoque en la privacidad y la seguridad, ya que permite a los usuarios alojar su propio servidor de RustDesk.
Instalación de RustDesk Server
Para instalar RustDesk Server, sigue estos pasos:
-
Requisitos previos:
- Abre los puertos necesarios en el firewall (por defecto, RustDesk utiliza los puertos 21115 y 21116).
- Hay que obligar a que el docker corra en el servidor de swarm donde apunte el router, no en un nodo cualquiera.
- Asegúrate de tener un nombre de dominio apuntando a la IP de tu servidor para facilitar el acceso.
- Usa el un archivo
rustdesk.batcon la configuración necesaria para RustDesk Server. Añade en Aquí_va_tu_cadena_de_configuración se debe introducir la cadena de configuración obtenida desde la configuración RustDesk.
@echo off
REM Asignar el valor de contraseña aleatoria a la variable contraseña
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
set rustdesk_pw=
for /L %%b in (1, 1, 12) do (
set /A rnd_num=!RANDOM! %% 62
for %%c in (!rnd_num!) do (
set rustdesk_pw=!rustdesk_pw!!alfanum:~%%c,1!
)
)
REM Obtener tu cadena de configuración desde tu portal Web y rellenar abajo
set rustdesk_cfg="Aquí_va_tu_cadena_de_configuración"
REM ############################### Por favor no edites debajo de esta línea #########################################
if not exist C:\Temp\ md C:\Temp\
cd C:\Temp\
curl -L "https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.exe" -o rustdesk.exe
rustdesk.exe --silent-install
timeout /t 20
cd "C:\Program Files\RustDesk\"
rustdesk.exe --install-service
timeout /t 20
for /f "delims=" %%i in ('rustdesk.exe --get-id ^| more') do set rustdesk_id=%%i
rustdesk.exe --config %rustdesk_cfg%
rustdesk.exe --password %rustdesk_pw%
echo ...............................................
REM Mostrar el valor de la variable ID
echo ID RustDesk: %rustdesk_id%
REM Mostrar el valor de la variable contraseña
echo Contraseña: %rustdesk_pw%
echo ...............................................
-
Despliegue con Docker Swarm:
- Desde portainer crea un nuevo stack con el siguiente contenido en el archivo
stack.yml:
- Desde portainer crea un nuevo stack con el siguiente contenido en el archivo
services:
hbbs:
container_name: hbbs-id
image: rustdesk/rustdesk-server:latest
command: hbbs
volumes:
- rustdesk:/root
network_mode: host
ports:
- 21114:21114
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
deploy:
placement:
constraints:
- node.hostname == SERVER_NOMBRE_DEL_NODO_QUE_APUNTA_EL_ROUTER
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr-relay
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- rustdesk:/root
network_mode: host
ports:
- 21117:21117
- 21119:21119
deploy:
placement:
constraints:
- node.hostname == SERVER_NOMBRE_DEL_NODO_QUE_APUNTA_EL_ROUTER
restart: unless-stopped
volumes:
rustdesk:
driver: local
Donde SERVER_NOMBRE_DEL_NODO_QUE_APUNTA_EL_ROUTER es el nombre del nodo del swarm donde quieres que corra el servicio.