Virtual Network Computing (VNC) è un sistema grafico di condivisione desktop che consente di utilizzare la tastiera e il mouse per controllare in remoto un altro computer.
Questo articolo illustra i passaggi per installare e configurare un server VNC su CentOS 8. Ti mostreremo anche come connetterti in modo sicuro al server VNC tramite un tunnel SSH.
Prerequisiti #
Per seguire questa guida, devi essere loggato come utente con privilegi sudo sulla tua macchina CentOS remota.
Installazione dell'ambiente desktop #
In genere, sui server non è installato un ambiente desktop. Se la macchina a cui vuoi connetterti non ha la GUI, il primo passo è installarla. Altrimenti, salta questo passaggio.
Esegui il comando seguente per installare Gnome, l'ambiente desktop predefinito in CentOS 8 sul tuo computer remoto:
sudo dnf groupinstall "Server with GUI"
A seconda del tuo sistema, il download e l'installazione dei pacchetti e delle dipendenze di Gnome potrebbe richiedere del tempo.
Installazione del server VNC #
TigerVNC è un server VNC open source ad alte prestazioni gestito attivamente. È disponibile nei repository CentOS predefiniti. Per installarlo, digita:
sudo dnf install tigervnc-server
Configurazione del server VNC #
In CentOS 8, TigerVNC è configurato utilizzando il demone systemd.
In questo esempio, ti mostreremo come configurare TigerVNC per uno o più utenti VNC.
-
Usa il
vncpasswd
comando per impostare la password. Esegui il comando come utente che accederà al server VNC, non utilizzaresudo
:vncpasswd
Ti verrà chiesto di inserire e confermare la password e se impostarla come password di sola visualizzazione. Se scegli 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 il
vncpasswd
viene eseguito, creerà e memorizzerà il file della password nel~/.vnc
dell'utente directory.Password: Verify: Would you like to enter a view-only password (y/n)? n A view-only password is not used
Se stai aggiungendo un secondo utente, passa ad esso e imposta la password con
vncpasswd
. -
Il prossimo passo è configurare TigerVNC per usare Gnome. VNC legge le impostazioni di configurazione dell'utente da
~/.vnc/config
file. Apri il file e aggiungi quanto segue:vim ~/.vnc/config
session=gnome geometry=1920x1200 localhost alwaysshared
La
session
l'opzione specifica la sessione che vuoi avviare e lageometry
opzione specifica la dimensione del desktop VNC.Salva e chiudi il file. Se stai aggiungendo più utenti, ripeti lo stesso passaggio.
-
TigerVNC viene fornito con un file che ti consente di mappare un utente su una porta particolare. La mappatura è configurata in
/etc/tigervnc/vncserver.users
file:sudo vim /etc/tigervnc/vncserver.users
Il file utilizza
<display_port>=<username>
sintassi. Nell'esempio seguente, stiamo mappando la porta di visualizzazione:1
per linuxizzare l'utente. Usa lo stesso formato per aggiungere più utenti.# TigerVNC User assignment # # This file assigns users to specific VNC display numbers. # The syntax is <display>=<username>. E.g.: # # :2=andrew # :3=lisa :1=linuxize
:1
è il numero della porta di visualizzazione su cui verrà eseguito il server VNC. Nel nostro caso, il server è in esecuzione sulla porta TCP5901
(5900+1). Se si mappa un altro utente, ad esempio, per visualizzare la porta:2
, il server ascolterà anche sulla porta5902
(5900+2).Ciò che è importante capire è che quando si lavora con i server VNC,
:X
è una porta display che fa riferimento a5900+X
.
Avvio del server Tigervnc #
Una volta terminata la configurazione, l'ultimo passaggio è avviare il server VNC.
Per avviare e abilitare il servizio VNC per l'utente mappato sulla porta display :1
, inserisci:
sudo systemctl enable vncserver@:1 --now
Il server VNC ascolterà sulla porta 5901
, come abbiamo discusso nella sezione precedente.
Puoi verificare che il servizio sia stato avviato correttamente con:
sudo systemctl status vncserver@:1
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-12-17 21:49:41 UTC; 8s ago
...
Per abilitare VNC per altri utenti, sostituisci semplicemente 1
con la porta display mappata all'utente.
Connessione al server VNC #
VNC non è un protocollo crittografato e può essere soggetto a packet sniffing. L'approccio consigliato è creare un tunnel SSH per inoltrare in modo sicuro il traffico dal tuo computer locale sulla porta 5901
al server remoto 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 usando il seguente ssh
comando:
ssh -L 5901:127.0.0.1:5901 -N -f -l username remote_server_ip
Ti verrà chiesto 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.
Configura il tunneling SSH su Windows #
Gli utenti Windows possono configurare SSH Tunneling utilizzando PuTTY.
Apri Putty e inserisci l'indirizzo IP del tuo server nel Host name or IP address
campo.
Sotto il Connection
menu, espandi SSH
e seleziona Tunnels
. Immettere la porta del server VNC (5901
) nel Source Port
campo, inserisci server_ip_address:5901
nella 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 sia necessario inserirle ogni volta. Per accedere al server remoto, seleziona la sessione salvata e fai clic su Open
pulsante.
Connessione tramite Vncviewer #
Per connetterti al server remoto, apri il tuo visualizzatore VNC e inserisci localhost:5901
.
Puoi utilizzare qualsiasi visualizzatore VNC come TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre e VNC Viewer per Google Chrome.
Stiamo usando TigerVNC:
Inserisci la password quando richiesto e dovresti vedere il desktop Gnome predefinito. Dovrebbe assomigliare a questo:
Questo è tutto! Ora puoi iniziare a lavorare sul desktop remoto dal tuo computer locale utilizzando la tastiera e il mouse.