- add relay-only Docker Compose configuration - document KEY and key-file setup methods - clarify legacy -k _ behavior and Pro 1.8.6 changes - update all translations Signed-off-by: 21pages <sunboeasy@gmail.com>
10 KiB
title, weight, description, keywords
| title | weight | description | keywords | |||||
|---|---|---|---|---|---|---|---|---|
| Configurar servidores de relé | 17 | Documentación de RustDesk sobre Configurar servidores de relé. Consulta guías de instalación, configuración, despliegue y solución de problemas. |
|
Respuesta rápida
Necesita relays adicionales cuando una sola ubicación o un solo relay ya no basta para latencia, cobertura geográfica o distribución de tráfico. Configúrelos solo después de que la consola principal y el despliegue base estén estables.
Puntos clave
- Instale relays extra cerca de regiones o usuarios importantes
- Registre y verifique la configuración de relay en la consola web
- Pruebe el enrutamiento antes de mover tráfico de producción
RustDesk Pro - Instalar servidores de relé adicionales con geolocalización usando docker
{{% notice note %}}
La instalación simple crea un servidor de relé (el proceso hbbr) implícitamente en la misma máquina, no necesita especificar el servidor de relé explícitamente.
Si desea crear un servidor de relé adicional explícitamente en otra máquina, ejecute hbbr siguiendo la instalación OSS. Puede encontrar hbbr en rustdesk-server-linux-amd64.tar.gz, rustdesk-server-hbbr_<version>-<arch>.deb, rustdesk-server-windows-x86_64.tar.gz o en docker (sudo docker run ... rustdesk/rustdesk-server-pro hbbr).
hbbr no requiere una licencia y es igual a la versión de código abierto.
{{% /notice %}}
Puede tener varios servidores de relé ejecutándose por todo el mundo y aprovechar la geolocalización automáticamente para usar el servidor de relé más cercano, proporcionándole una experiencia más rápida al conectarse a computadoras remotas. hbbs verifica automáticamente si estos servidores de relé están en línea cada varios segundos, solo elige servidores de relé en línea.
{{% notice note %}} Problema conocido: https://github.com/rustdesk/rustdesk/discussions/7934 {{% /notice %}}
Establezca la variable de entorno
KEYdehbbren la clave pública deid_ed25519.pub, o copieid_ed25519eid_ed25519.puben el servidor de retransmisión.
Docker Compose
Un servidor de retransmisión adicional solo necesita hbbr; no se requieren hbbs ni depends_on. Elija uno de los siguientes métodos de configuración de la clave:
- Mantenga la sección
environmenty establezcaKEYen el contenido deid_ed25519.pub, como se muestra a continuación. - Elimine toda la sección
environmenty coloqueid_ed25519eid_ed25519.puben./data.
Cree un archivo compose.yml con el siguiente contenido.
services:
hbbr:
container_name: hbbr
image: docker.io/rustdesk/rustdesk-server-pro:latest
environment:
KEY: "<PUBLIC_KEY>"
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
Docker
Establecer la clave mediante una variable de entorno
Establezca KEY en el contenido de id_ed25519.pub.
# sudo docker run --name hbbr -e KEY="<PUBLIC_KEY>" -td --net=host rustdesk/rustdesk-server-pro hbbr
Usar archivos de claves
El siguiente ejemplo de Docker utiliza el método de archivos de claves.
1 - Si docker ya está instalado, conéctese a su servidor a través de SSH y cree un volumen para hbbr.
# docker volume create hbbr
El volumen hbbr debería estar ubicado en /var/lib/docker/volumes/hbbr/_data.
2 - Copie el par de claves privadas a la ubicación del volumen, en este caso usaremos SCP para copiar los archivos.
La sintaxis del comando es scp <ruta/nombre_archivo> usuario@servidor:</ruta/destino>.
# scp id_ed25519 root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
# scp id_ed25519.pub root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
3 - Despliegue el contenedor hbbr usando el volumen creado previamente. Este volumen tiene el par de claves privadas necesario para ejecutar su servidor de relé privado.
# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server-pro hbbr
La imagen rustdesk/rustdesk-server sigue aceptando -k <KEY>. Para utilizar el archivo de clave montado, ejecútela con -k _:
# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _
Aquí, _ es un valor especial, no la clave en sí. Indica a hbbr que cargue o genere id_ed25519, obtenga su clave pública y la utilice para validar las solicitudes de retransmisión. Las versiones de RustDesk Server Pro anteriores a 1.8.6 también aceptaban -k _ para cargar id_ed25519.
A partir de RustDesk Server Pro 1.8.6, la opción -k de hbbr está obsoleta y se ignora. Si KEY no está definida, hbbr obtiene la clave pública de id_ed25519 o la lee de id_ed25519.pub si el archivo de clave privada no existe. Si no existe ninguno de los dos archivos, hbbr se ejecuta en modo de retransmisión público.
4 - Verifique los registros de ejecución para verificar que hbbr está ejecutándose usando su par de claves.
# docker logs hbbr
INFO [src/common.rs:121] **Private key comes from id_ed25519**
NFO [src/relay_server.rs:581] Key: XXXXXXXXXXXXXXXXXXXXX
INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
INFO [src/relay_server.rs:81] Listening on tcp :21117
Dependiendo de su SO, es posible que desee bloquear/permitir IPs usando un firewall.
En nuestro caso, ejecutando Ubuntu queremos permitir cualquier conexión TCP, a los puertos 21117 y 21119.
# sudo ufw allow proto tcp from any to any port 21117,21119
Habilitar el firewall
# sudo ufw enable
Verificar el estado
# ufw status
Status: active
To Action From
-- ------ ----
21117,21119/tcp ALLOW Anywhere
21117,21119/tcp (v6) ALLOW Anywhere (v6)
Configurar RustDesk Pro para geolocalización usando la consola web
Registrarse y descargar el archivo de base de datos GeoLite2 City
Para usar geolocalización, hbbs necesita acceso a la base de datos MaxMind GeoLite2 City. La base de datos es gratuita y puede registrarse para descargar el archivo y obtener una clave API.
Comience creando una cuenta (si no tiene una) yendo al sitio web.
Vaya a Download Databases y descargue GeoLite2 City, elija el archivo gzip y debería tener el archivo mmdb al descomprimirlo.
Si instaló RustDesk Pro usando el script de instalación en una máquina Linux, el archivo mmdb debe moverse a /var/lib/rustdesk-server/.
Para instalaciones de Docker, el archivo debería estar en el volumen que mapeó al desplegar el contenedor mapeado a /root.
Obtener una clave API para automatizar el proceso - servidores Linux
Necesita actualizar este archivo regularmente y podemos usar un cronjob para eso. Necesitará una clave API para acceder al enlace de descarga que es gratuito.
Vaya a Manage License Keys y genere una nueva clave de licencia.
Puede automatizar el proceso de descarga de algunas maneras, pero agregue el siguiente comando a su crontab reemplazando {Your Access Key} con la clave API que obtuvo del paso anterior.
/usr/bin/curl -L --silent 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={Your Access Key}&suffix=tar.gz' | /bin/tar -C '/var/lib/rustdesk-server/' -xvz --keep-newer-files --strip-components=1 --wildcards '*GeoLite2-City.mmdb'
Cambiar configuraciones en la consola web RustDesk Pro
Agregue sus direcciones IP o nombres DNS de servidores de relé (DNS es compatible desde la versión 1.1.11) a los Servidores de relé. El puerto no es requerido, el puerto 21117 se usa explícitamente.
Agregue una anulación geográfica agregando la dirección IP del servidor y las coordenadas donde se encuentra el servidor.
Haga clic en Reload Geo y su lista debería verse similar a esto.
Para confirmar los resultados, verifique sus registros hbbs al hacer clic en Reload Geo, debería ver un mensaje mostrando las direcciones IP de los servidores de relé y sus coordenadas.
Si está ejecutando RustDesk Pro en una máquina Linux use el comando
RUST_LOG=debug ./hbbspara ver los registros. Si está ejecutando en un contenedor Docker usedocker logs hbbs.
RUST_LOG=debug ./hbbs
INFO [src/common.rs:130] GEOIP_FILE: ./GeoLite2-City.mmdb
INFO [src/common.rs:159] override 1xx.xxx.xxx.x7: -1.xx 5x.xxx
[src/common.rs:159] override 1xx.xxx.xxx.xx8: -3.xxx 5x.xxxx
[src/common.rs:159] override 7xx.xxx.xxxx.xx1: 6.xxx 5x.xxxx
GEOIP_FILE loaded, #overrides 3
INFO [src/common.rs:119] relay-servers=["1xx.xxx.xxx.x7", "1xx.xxx.xxx.xx8", "7xx.xxx.xxx.xx1"]
NFO [src/rendezvous_server.rs:1467] parsed relay servers: [("1xx.xxxx.xxx.xx7", Some((-1x, xxx))), ("1xx.xxx.xxx.xx8", Some((-3x, xxx))), ("7xx.xxx.xxx.xx1", Some((6x, xxx)))]
También puede confirmar las solicitudes de relé directamente en sus instancias hbbr, simplemente verificando los registros del contenedor.
# docker logs hbbr
INFO [src/relay_server.rs:436] Relayrequest 0593e64e-4fe8-4a59-a94f-b3420ab043eb from [::ffff:100.100.123.233]:52038 got paired
INFO [src/relay_server.rs:442] Both are raw