mirror of
https://github.com/rustdesk/doc.rustdesk.com.git
synced 2026-08-27 04:27:41 +00:00
63497c2be6
- 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>
212 lines
10 KiB
Markdown
212 lines
10 KiB
Markdown
---
|
||
title: Configurare server di relay
|
||
weight: 17
|
||
description: "Documentazione RustDesk su Configurare server di relay. Consulta le guide per installazione, configurazione, distribuzione e risoluzione dei problemi."
|
||
keywords: ["rustdesk relay server", "rustdesk hbbr", "rustdesk geolocation relay", "rustdesk additional relay", "rustdesk server pro relay"]
|
||
---
|
||
|
||
<!-- GEO-LOCALIZED-INTRO:START -->
|
||
|
||
## Risposta rapida
|
||
|
||
Hai bisogno di relay aggiuntivi quando una singola posizione o un singolo relay non bastano più per latenza, copertura geografica o distribuzione del traffico. Configurali solo dopo che la console principale e il deployment di base sono stabili.
|
||
|
||
## Punti chiave
|
||
|
||
- Installa relay extra vicino alle regioni o ai gruppi di utenti importanti
|
||
- Registra e verifica le impostazioni relay nella console web
|
||
- Testa il routing prima di spostare traffico di produzione
|
||
|
||
<!-- GEO-LOCALIZED-INTRO:END -->
|
||
|
||
## RustDesk Pro - Installare server di relay aggiuntivi con geolocalizzazione usando docker
|
||
|
||
{{% notice note %}}
|
||
[L'installazione semplice](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/) crea un server di relay (il processo `hbbr`) implicitamente sulla stessa macchina, non è necessario specificare il server di relay esplicitamente.
|
||
|
||
Se vuoi creare un server di relay aggiuntivo esplicitamente su un'altra macchina, esegui `hbbr` seguendo l'[installazione OSS](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/). Puoi trovare `hbbr` in `rustdesk-server-linux-amd64.tar.gz`, `rustdesk-server-hbbr_<version>-<arch>.deb`, `rustdesk-server-windows-x86_64.tar.gz` o in `docker` (`sudo docker run ... rustdesk/rustdesk-server-pro hbbr`).
|
||
|
||
`hbbr` non richiede una licenza ed è uguale alla versione open source.
|
||
{{% /notice %}}
|
||
|
||
Puoi avere diversi server di relay in esecuzione in tutto il mondo e sfruttare la geolocalizzazione automaticamente per utilizzare il server di relay più vicino, dandoti un'esperienza più veloce quando ti connetti a computer remoti. `hbbs` controlla automaticamente se questi server di relay sono online ogni pochi secondi, sceglie solo server di relay online.
|
||
|
||
{{% notice note %}}
|
||
Problema noto: https://github.com/rustdesk/rustdesk/discussions/7934
|
||
{{% /notice %}}
|
||
|
||
> Imposta la variabile d'ambiente `KEY` di `hbbr` sulla chiave pubblica contenuta in `id_ed25519.pub`, oppure copia `id_ed25519` e `id_ed25519.pub` sul server relay.
|
||
|
||
### Docker Compose
|
||
|
||
Un server relay aggiuntivo richiede solo `hbbr`; `hbbs` e `depends_on` non sono necessari. Scegli uno dei seguenti metodi di configurazione della chiave:
|
||
|
||
- Mantieni la sezione `environment` e imposta `KEY` sul contenuto di `id_ed25519.pub`, come mostrato di seguito.
|
||
- Rimuovi l’intera sezione `environment` e inserisci `id_ed25519` e `id_ed25519.pub` in `./data`.
|
||
|
||
Crea un file `compose.yml` con il seguente contenuto.
|
||
|
||
```yaml
|
||
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
|
||
|
||
#### Impostare la chiave con una variabile d'ambiente
|
||
|
||
Imposta `KEY` sul contenuto di `id_ed25519.pub`.
|
||
|
||
```bash
|
||
# sudo docker run --name hbbr -e KEY="<PUBLIC_KEY>" -td --net=host rustdesk/rustdesk-server-pro hbbr
|
||
```
|
||
|
||
#### Usare i file delle chiavi
|
||
|
||
L'esempio Docker seguente utilizza il metodo dei file delle chiavi.
|
||
|
||
1 - Se docker è già installato, connettiti al tuo server via SSH e crea un volume per hbbr.
|
||
|
||
```
|
||
# docker volume create hbbr
|
||
```
|
||
|
||
Il volume hbbr dovrebbe essere posizionato in `/var/lib/docker/volumes/hbbr/_data`.
|
||
|
||
2 - Copia la coppia di chiavi private nella posizione del volume, in questo caso useremo SCP per copiare i file.
|
||
|
||
La sintassi del comando è `scp <percorso/nome_file> username@server:</percorso/destinazione>`.
|
||
|
||
```
|
||
# 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 - Distribuisci il container hbbr usando il volume creato precedentemente. Questo volume ha la coppia di chiavi private necessaria per eseguire il tuo server di relay privato.
|
||
|
||
```
|
||
# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server-pro hbbr
|
||
```
|
||
|
||
L'immagine `rustdesk/rustdesk-server` accetta ancora `-k <KEY>`. Per utilizzare il file della chiave montato, eseguila con `-k _`:
|
||
|
||
```bash
|
||
# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _
|
||
```
|
||
|
||
In questo caso, `_` è un valore speciale e non la chiave stessa. Indica a `hbbr` di caricare o generare `id_ed25519`, ricavarne la chiave pubblica e utilizzare tale chiave per convalidare le richieste di relay. Anche le versioni di RustDesk Server Pro precedenti alla 1.8.6 accettavano `-k _` per caricare `id_ed25519`.
|
||
|
||
A partire da RustDesk Server Pro 1.8.6, l'opzione `-k` di `hbbr` è deprecata e viene ignorata. Se `KEY` non è impostata, `hbbr` ricava la chiave pubblica da `id_ed25519` oppure la legge da `id_ed25519.pub` se il file della chiave privata non esiste. Se nessuno dei due file esiste, `hbbr` viene eseguito in modalità relay pubblica.
|
||
|
||
4 - Controlla i log di esecuzione per verificare che hbbr sia in esecuzione usando la tua coppia di chiavi.
|
||
|
||
```
|
||
# 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
|
||
```
|
||
|
||
A seconda del tuo OS, potresti voler bloccare/consentire IP usando un firewall.
|
||
|
||
Nel nostro caso, eseguendo Ubuntu vogliamo consentire qualsiasi connessione TCP, alle porte 21117 e 21119.
|
||
|
||
```
|
||
# sudo ufw allow proto tcp from any to any port 21117,21119
|
||
```
|
||
|
||
**Abilita il firewall**
|
||
```
|
||
# sudo ufw enable
|
||
```
|
||
|
||
**Controlla lo stato**
|
||
```
|
||
# ufw status
|
||
|
||
Status: active
|
||
|
||
To Action From
|
||
-- ------ ----
|
||
21117,21119/tcp ALLOW Anywhere
|
||
21117,21119/tcp (v6) ALLOW Anywhere (v6)
|
||
```
|
||
|
||
## Configurare RustDesk Pro per la geolocalizzazione usando la console web
|
||
|
||
### Registrarsi e scaricare il file del database GeoLite2 City
|
||
|
||
Per utilizzare la geolocalizzazione, hbbs ha bisogno di accesso al database MaxMind GeoLite2 City. Il database è gratuito e puoi registrarti per scaricare il file e ottenere una chiave API.
|
||
|
||
Inizia creando un account (se non ne hai uno) andando al [sito web](https://www.maxmind.com/en/account/login).
|
||
Vai su `Download Databases` e scarica GeoLite2 City, scegli il file gzip e dovresti ottenere il file `mmdb` quando lo decomprimi.
|
||
|
||
<img width="500" alt="image" src="https://github.com/rustdesk/doc.rustdesk.com/assets/642149/e14318fb-ec52-463c-af77-d08c9479c1b5">
|
||
|
||
Se hai installato RustDesk Pro usando lo script di installazione su una macchina Linux, il file `mmdb` deve essere spostato in `/var/lib/rustdesk-server/`.
|
||
|
||
Per le installazioni Docker il file dovrebbe essere nel volume che hai mappato quando hai distribuito il container mappato su `/root`.
|
||
|
||
### Ottenere una chiave API per automatizzare il processo - server Linux
|
||
|
||
Devi aggiornare questo file regolarmente e possiamo usare un cronjob per farlo. Avrai bisogno di una chiave API per accedere al link di download che è gratuito.
|
||
|
||
Vai su `Manage License Keys` e genera una nuova chiave di licenza. <br>
|
||
<img width="500" alt="image" src="https://github.com/rustdesk/doc.rustdesk.com/assets/642149/632aeb33-4f5d-4a31-9010-38e01c22d3c9">
|
||
<br>
|
||
<img width="500" alt="image" src="https://github.com/rustdesk/doc.rustdesk.com/assets/642149/3e178174-5fbf-46b7-a335-01f77125dfad">
|
||
|
||
Puoi automatizzare il [processo di download](https://dev.maxmind.com/geoip/updating-databases) in alcuni modi, ma aggiungi il seguente comando al tuo crontab sostituendo {Your Access Key} con la chiave API che hai ottenuto dal passaggio precedente.
|
||
|
||
```
|
||
/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'
|
||
```
|
||
|
||
### Modificare le impostazioni nella console web RustDesk Pro
|
||
|
||
Aggiungi i tuoi indirizzi IP o nomi DNS dei server di relay (DNS è supportato dalla versione 1.1.11) ai `Server di relay`. **La porta non è richiesta, la porta `21117` è utilizzata esplicitamente.** <br>
|
||
<img width="500" alt="image" src="https://github.com/rustdesk/doc.rustdesk.com/assets/642149/c4452ba4-5e1d-437a-ae1d-fc0070bfa26c">
|
||
|
||
Aggiungi un override geografico aggiungendo l'indirizzo IP del server e le coordinate dove si trova il server. <br>
|
||
<img width="500" alt="image" src="https://github.com/rustdesk/doc.rustdesk.com/assets/642149/41c558e3-423b-4296-90d3-cb0769f4a369">
|
||
|
||
Clicca su `Reload Geo` e la tua lista dovrebbe assomigliare a questa. <br>
|
||
<img width="500" alt="image" src="https://github.com/rustdesk/doc.rustdesk.com/assets/642149/5a0d39a9-4fec-46b4-a7a2-7ed38b6baeb7">
|
||
|
||
Per confermare i risultati, controlla i tuoi log hbbs quando clicchi su `Reload Geo`, dovresti vedere un messaggio che mostra gli indirizzi IP dei server di relay e le loro coordinate.
|
||
|
||
> Se stai eseguendo RustDesk Pro su una macchina Linux usa il comando `RUST_LOG=debug ./hbbs` per visualizzare i log. Se stai eseguendo su un container Docker usa `docker 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)))]
|
||
```
|
||
|
||
Puoi anche confermare le richieste di relay direttamente sulle tue istanze hbbr, semplicemente controllando i log del container.
|
||
|
||
```
|
||
# 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
|
||
```
|