Questa guida copre i passaggi necessari per l’installazione e la configurazione di un server VNC su Ubuntu 18.04. Vi mostreremo anche come connettersi in modo sicuro al server VNC attraverso un tunnel SSH.
Virtual Network Computing (VNC) è un sistema di condivisione desktop grafico che consente di utilizzare la tastiera e il mouse per controllare in remoto un altro computer. Si tratta di un’alternativa open-source al Microsoft Remote Desktop Protocol (RDP).,
Prerequisiti #
Prima di continuare con il tutorial, assicurati di aver effettuato l’accesso come utente con privilegi sudo .
Installazione dell’ambiente desktop #
La maggior parte dei server non ha un ambiente desktop installato, quindi inizieremo installando un ambiente desktop leggero.
Ci sono diversi ambienti desktop (DE) disponibili nei repository di Ubuntu. Installeremo Xfce . È un ambiente desktop veloce, stabile e leggero, che lo rende ideale per l’utilizzo su un server remoto.,
Immettere i seguenti comandi per installare Xfce sul server:
sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
A seconda del sistema, il download e l’installazione dei pacchetti Xfce potrebbe richiedere del tempo.
Installazione del server VNC #
Ci sono anche diversi server VNC disponibili nei repository di Ubuntu come TightVNC , TigerVNC e x11vnc . Ogni server VNC ha diversi punti di forza e di debolezza in termini di velocità e sicurezza.
Installeremo TigerVNC. Si tratta di un server VNC ad alte prestazioni attivamente mantenuto.,
Digitare il seguente comando per installare TigerVNC sul server Ubuntu:
sudo apt install tigervnc-standalone-server tigervnc-common
Ora che il server VNC è installato, il passo successivo è quello di creare la configurazione iniziale e impostare la password. Non utilizzare sudo quando si esegue il comandovncserver
:
vncserver
Verrà richiesto di inserire e confermare la password e se impostarla come password di sola visualizzazione. Se si sceglie di impostare una password di sola visualizzazione, l’utente non sarà in grado di interagire con l’istanza VNC con il mouse e la tastiera.,
La prima volta che viene eseguito il comando vncserver
, crea e memorizza il file della password in ~/.vnc
. Questa directory verrà creata se non è presente.
Nota il:1
dopo il nome host nell’output sopra. Indica il numero della porta di visualizzazione su cui è in esecuzione il server vnc. Nel nostro caso, il server è in esecuzione sulla porta TCP5901
(5900+1). Se si crea una seconda istanza convncserver
verrà eseguito sulla prossima porta libera i.,e :2
, il che significa che il server è in esecuzione sulla porta 5902
(5900+2).
Ciò che è importante ricordare è che quando si lavora con i server VNC, :X
è una porta di visualizzazione che fa riferimento a 5900+X
.
Prima di continuare con il passaggio successivo, interrompere l’istanza VNC utilizzando il comandovncserver
con l’opzione-kill
e il numero del server come argomento., In questo esempio, il server è in esecuzione in porta 5901 (:1
), quindi ci fermeremo con:
vncserver -kill :1
Killing Xtigervnc process ID 7264... success!
Configurazione di VNC Server #
Ora che sia Xfce e TigerVNC sono installati sul server, è necessario configurare TigerVNC per uso Xfce. Per fare ciò, creare il seguente file:
nano ~/.vnc/xstartup
#!/bin/shunset SESSION_MANAGERunset DBUS_SESSION_BUS_ADDRESSexec startxfce4
Salva e chiudi il file. I comandi di cui sopra verranno eseguiti automaticamente ogni volta che si avvia o si riavvia il server TigerVNC.,
Anche il file ~/.vnc/xstartup
deve avere i permessi di esecuzione. Eseguire il seguente comandochmod
per assicurarsi che le autorizzazioni siano corrette:
chmod u+x ~/.vnc/xstartup
Se è necessario passare ulteriori opzioni al server VNC, creare un file denominatoconfig
e aggiungere un’opzione per riga. Ecco un esempio:
geometry=1920x1080dpi=96
Creazione di un file di unità Systemd #
Creare un file di unità systemd in modo da avviare, arrestare e riavviare il servizio VNC secondo necessità, come qualsiasi altro servizio systemd.,
Aprire l’editor di testo e copiare e incollare la seguente configurazione in esso. Assicurati di cambiare il nome utente sulla riga 7 in modo che corrisponda al tuo nome utente.
sudo nano /etc/systemd/system/[email protected]
Salvare e chiudere il file.,
Informare systemd che abbiamo creato un nuovo file di unità con:
sudo systemctl daemon-reload
Il passo successivo è quello di attivare l’unità di file con il seguente comando:
sudo systemctl enable [email protected]
Il numero 1
dopo il @
segno definisce il display porta di VNC, verrà eseguito il servizio. Ciò significa che il server VNC ascolterà sulla porta 5901
, come abbiamo discusso nella sezione precedente.,
Avvia il servizio VNC eseguendo:
sudo systemctl start [email protected]
Verifica che il servizio sia avviato correttamente con:
sudo systemctl status [email protected]
Connessione al server VNC #
VNC non è un protocollo crittografato e può essere soggetto a sniffing dei pacchetti. L’approccio consigliato consiste nel creare un tunnel SSH che inoltra in modo sicuro il traffico dal computer locale sulla porta 5901 al server sulla stessa porta.,
Configura il tunneling SSH su Linux e macOS #
Se esegui Linux, macOS o qualsiasi altro sistema operativo basato su Unix sulla tua macchina, puoi facilmente creare un tunnel SSH con il seguente comando:
ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address
Ti verrà richiesto di inserire la password utente.
Non dimenticare di sostituire username
e server_ip_address
con il tuo nome utente e l’indirizzo IP del tuo server.
Impostare il tunneling SSH su Windows #
Se si esegue Windows, è possibile impostare il Tunneling SSH utilizzando il client SSH PuTTY .,
Open Putty and enter your server IP Address in the Host name or IP address
field.
Under the Connection
menu, box, expand SSH
and select Tunnels
., Immettere il server VNC porta (5901
) nel Source Port
campo e immettere server_ip_address:5901
nel Destination
campo e fare clic su Add
pulsante come mostrato nell’immagine qui sotto:
torna alla Session
pagina per salvare le impostazioni in modo che non è necessario inserire ogni volta., Per il server remoto, selezionare la sessione salvata e fare clic sul pulsanteOpen
.
Connessione tramite Vncviewer #
Ora che viene creato il tunnel SSH, è il momento di aprire Vncviewer e connettersi al server VNC alocalhost:5901
.
È possibile utilizzare qualsiasi visualizzatore VNC come TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre e VNC Viewer per Google Chrome .
Useremo TigerVNC. Apri il visualizzatore, inserisci localhost:5901
e fai clic sul pulsante Connect
.,