Ricerca nel sito web

Come installare e configurare il server VNC in CentOS e RHEL


In questa guida spiegheremo come installare e configurare VNC Remote Access nel desktop CentOS 7/8 e RHEL 9/8/7 edizione tramite il programma tigervnc-server per accedere ai computer desktop remoti.

VNC (Virtual Network Computing) è un protocollo server-client che consente agli account utente di connettersi e controllare in remoto un sistema distante utilizzando le risorse fornite dall'interfaccia utente grafica.

A differenza degli altri server VNC disponibili che si collegano direttamente al desktop runtime, come VNC X o Vino, tigervnc-vncserver utilizza un meccanismo diverso che configura un desktop virtuale autonomo per ciascun utente.

Requisiti

  • Installazione di CentOS 8 con screenshot
  • Procedura di installazione di CentOS 7
  • Come installare RHEL 9 gratuitamente
  • Come installare RHEL 8 gratuitamente
  • Procedura di installazione di RHEL 7

Passaggio 1: installa e configura VNC su CentOS

1. Tigervnc-server è un programma che esegue un server Xvnc e avvia sessioni parallele di Gnome o altro desktop ambienti sul desktop VNC.

Lo stesso utente può accedere a una sessione utente VNC avviata da più client VNC. Per installare il server TigerVNC in CentOS/RHEL, apri una sessione terminale ed emetti il seguente comando yum con privilegi di root.

sudo yum install tigervnc-server

2. Dopo aver installato il programma, accedi con l'utente con cui desideri eseguire il programma VNC ed emetti il comando seguente nel terminale per configurare un password per il server VNC.

Tieni presente che la password deve contenere almeno sei caratteri.

su - your_user
vncpasswd

3. Successivamente, aggiungi un file di configurazione del servizio VNC per il tuo utente tramite un file di configurazione del demone posizionato nell'albero della directory systemd. Per copiare il file modello VNC è necessario eseguire il seguente comando cp con privilegi di root.

Se al tuo utente non vengono concessi i privilegi sudo, passa direttamente all'account root o esegui il comando da un account con privilegi root.

cp /lib/systemd/system/[email  /etc/systemd/system/vncserver@:1.service

4. Nel passaggio successivo modifica il file di configurazione del modello VNC copiato dalla directory /etc/systemd/system/ e sostituisci i seguenti valori per riflettere il tuo utente come mostrato di seguito campione.

Il valore di 1 dopo il segno @ rappresenta il numero del display (porta 5900+display). Inoltre, per ogni server VNC avviato, la porta 5900 verrà incrementata di 1.

vi /etc/systemd/system/vncserver@\:1.service

Aggiungi le seguenti righe al file vncserver@:1.service.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

5. Dopo aver apportato le modifiche appropriate al file di servizio VNC, ricarica il programma di inizializzazione del sistema systemd per prelevare il nuovo file di configurazione vnc e avviare il server TigerVNC.

Inoltre, controlla lo stato del servizio VNC e abilita il demone VNC a livello di sistema immettendo i comandi seguenti.

systemctl daemon-reload
systemctl start vncserver@:1
systemctl status vncserver@:1
systemctl enable vncserver@:1

6. Per elencare le porte aperte nello stato di ascolto di proprietà del server VNC, eseguire il comando ss, che viene utilizzato per visualizzare i socket di rete. Poiché hai avviato solo un'istanza del server VNC, la prima porta aperta è 5901/TCP.

Anche in questo caso, il comando ss deve essere eseguito con i privilegi di root. Nel caso in cui avvii altre istanze VNC in parallelo per utenti diversi, il valore della porta sarà 5902 per la seconda, 5903 per la terza e così via. Le porte 6000+ vengono utilizzate per consentire alle applicazioni X di connettersi al server VNC.

ss -tulpn| grep vnc

7. Per consentire ai client VNC esterni di connettersi al server VNC, è necessario assicurarsi che le porte aperte VNC corrette possano passare attraverso il firewall.

Nel caso in cui venga avviata solo un'istanza del server VNC, è necessario aprire solo la prima porta VNC allocata: 5901/TCP emettendo i comandi seguenti per applicare la configurazione del firewall in fase di esecuzione.

firewall-cmd --add-port=5901/tcp
firewall-cmd --add-port=5901/tcp --permanent

Passaggio 2: connessione al desktop CentOS tramite client VNC

8. Essendo un protocollo indipendente dalla piattaforma, le connessioni remote Interfaccia grafica utente VNC possono essere eseguite da quasi tutti i sistemi operativi con una GUI e un client VNC specializzato.

Un popolare client VNC utilizzato nei sistemi operativi basati su Microsoft, completamente compatibile con il server Linux TigerVNC, è RealVNC VNC Viewer.

Per connettersi in remoto a CentOS Desktop da un sistema operativo Microsoft tramite protocollo VNC, aprire il programma VNC Viewer, aggiungere l'indirizzo IP e il numero di porta del server CentOS VNC e premi il tasto [invio].

Dopo che la connessione VNC è stata stabilita, sullo schermo dovrebbe essere visualizzato un avviso che informa che la connessione non è crittografata, come illustrato negli screenshot seguenti.

9. Per ignorare l'avviso, premi il pulsante Continua, aggiungi l'impostazione della password per il server VNC al punto 2 e dovresti essere connesso in remoto a CentOS Desktop con l'utente configurato per eseguire l'istanza del server VNC.

10. Nel caso in cui sullo schermo venga visualizzato un nuovo messaggio di Autenticazione e il tuo utente non abbia privilegi di root, premi semplicemente il pulsante Annulla per continuare su CentOS Desktop, come mostrato nello screenshot qui sotto.

Tieni presente che la comunicazione VNC stabilita tra il server e il client e tutti i dati scambiati (eccetto la password) vengono eseguiti su un canale non crittografato. Per crittografare e proteggere il trasferimento dei dati VPN, devi prima configurare un tunnel SSH sicuro ed eseguire l'eventuale traffico VPN successivo sul tunnel SSH.

11. Per connetterti in remoto al desktop CentOS tramite il protocollo VNC da altri desktop CentOS, assicurati innanzitutto che il pacchetto vinagre sia installato sul tuo sistema emettendo il comando seguente.

sudo yum install vinagre

12. Per aprire l'utilità vinagre, vai su Applicazioni -> Utilità -> Visualizzatore desktop remoto come mostrato nello screenshot seguente.

13. Per connettersi in remoto a un desktop CentOS, premere il pulsante Connetti, selezionare il protocollo VNC dall'elenco e aggiungere l'indirizzo IP e porta (numero 5900+display) del server VNC remoto. Inoltre, fornire l'impostazione della password per l'utente VNC come illustrato nelle schermate seguenti.

14. Un altro popolare client VNC per piattaforme basate su Linux è Remmina, un client desktop remoto utilizzato soprattutto nelle distribuzioni basate su Debian che eseguono l'ambiente desktop GNOME.

Per installare il client Remmina Remote Desktop nelle distribuzioni basate su Debian, immetti il seguente comando.

sudo apt-get install remmina

Passaggio 3: configura più sessioni VNC su CentOS

15. Nel caso in cui sia necessario eseguire una nuova sessione VNC parallela con lo stesso utente, aprire una console Terminale, accedere con l'utente con cui si desidera avviare la nuova sessione VNC ed eseguire il comando seguente.

Al primo avvio del server ti verrà chiesto di fornire una nuova password per questa sessione. Tuttavia, tieni presente che questa sessione viene eseguita con le autorizzazioni dell'utente che ha effettuato l'accesso e indipendentemente dalla sessione del server VNC systemd avviata.

vncserver

16. Le nuove sessioni VNC apriranno le successive porte basate su VNC disponibili (visualizzazione 5900+3 in questo esempio). Per visualizzare le porte aperte, esegui il comando ss senza privilegi di root come illustrato nell'estratto seguente. Elencherà solo le sessioni VNC avviate dovute dal tuo utente.

ss -tlpn| grep Xvnc

17. Ora, connettiti in remoto al desktop CentOS utilizzando questa nuova sessione VNC e fornisci la combinazione IP:porta (192.168.1.23:5903) nel client VNC come illustrato nell'immagine seguente.

Per arrestare le istanze del server VNC avviate con queste autorizzazioni utente che hanno effettuato l'accesso, emettere il seguente comando senza alcun privilegio root. Questo comando distruggerà tutte le istanze VNC avviate di proprietà solo dell'utente che le ha dichiarate.

su - your_user
killall Xvnc

È tutto! Ora puoi accedere al tuo sistema CentOS ed eseguire attività amministrative utilizzando l'interfaccia utente grafica fornita dal sistema operativo.