Configurar servidores de relé
RustDesk Pro - Instalar servidores de relé adicionales con geolocalización usando docker
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.
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.
Note
Necesitará el par de claves privadas
id_ed25519
yid_ed25519.pub
.
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 hbbr -k _
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 ./hbbs
para 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