In­stal­lan­do un server VNC su Ubuntu 22.04 puoi accedere al tuo desktop Linux ovunque ti trovi. Non importa se lavori da casa, se sei in viaggio o se hai sem­pli­ce­men­te bisogno di spostarti da una stanza all’altra del tuo ufficio: con un server VNC puoi accedere fa­cil­men­te e in ogni momento al tuo ambiente di lavoro.

Quali sono i vantaggi di un server VNC su Ubuntu 22.04?

Lavorare con un server VNC su Ubuntu 22.04 presenta numerosi vantaggi che fa­ci­li­ta­no no­te­vol­men­te il lavoro quo­ti­dia­no e lo rendono più fles­si­bi­le. Con un server VNC puoi accedere al tuo desktop Ubuntu da qualsiasi parte del mondo, eli­mi­nan­do la necessità di essere fi­si­ca­men­te alla tua scrivania per gestire ap­pli­ca­zio­ni e dati. Questa fles­si­bi­li­tà è par­ti­co­lar­men­te utile per chi lavora da remoto, per chi viaggia per lavoro o per chi vuole sem­pli­ce­men­te lavorare da po­sta­zio­ni diverse. Con­fi­gu­ra­re un server VNC è semplice e intuitivo, rendendo il suo uso ac­ces­si­bi­le anche a chi non ha par­ti­co­la­ri co­no­scen­ze tecniche.

Una volta in­stal­la­to e con­fi­gu­ra­to, facilita la col­la­bo­ra­zio­ne fra team, per­met­ten­do l’accesso si­mul­ta­neo allo stesso desktop. In questo modo i membri del team possono col­la­bo­ra­re a progetti e risolvere problemi in tempo reale, in­di­pen­den­te­men­te da dove si trovano. Anche gli am­mi­ni­stra­to­ri di rete e l’as­si­sten­za tecnica possono in­ter­ve­ni­re fa­cil­men­te da remoto per risolvere problemi senza dover essere presenti sul posto, ri­spar­mian­do così tempo e costi legati alle trasferte. La maggior parte dei server VNC per Ubuntu 22.04 include opzioni avanzate di sicurezza, come con­nes­sio­ni crit­to­gra­fa­te e metodi di au­ten­ti­ca­zio­ne efficaci. Con una con­nes­sio­ne criptata solo gli utenti au­to­riz­za­ti possono accedere al sistema e le in­for­ma­zio­ni restano protette.

Requisiti necessari per in­stal­la­re un server VNC su Ubuntu 22.04

Prima di tutto, Ubuntu 22.04 deve essere in­stal­la­to e fun­zio­nan­te. La maggior parte dei server VNC è per­fet­ta­men­te com­pa­ti­bi­le con questa versione del sistema operativo. Tutti i pacchetti necessari, incluse le relative di­pen­den­ze, si trovano nei re­po­si­to­ry ufficiali di Ubuntu. Prima di procedere, as­si­cu­ra­ti che il sistema sia com­ple­ta­men­te ag­gior­na­to per evitare eventuali com­pli­ca­zio­ni durante il processo di in­stal­la­zio­ne. Per poter in­stal­la­re un server VNC su Ubuntu 22.04 è ne­ces­sa­rio sod­di­sfa­re i seguenti requisiti:

  • Ubuntu 22.04: deve essere in­stal­la­ta la versione più recente di Ubuntu 22.04.
  • Con­nes­sio­ne di rete: deve essere stata stabilita una con­nes­sio­ne ethernet o Wi-Fi stabile per con­sen­ti­re l’accesso remoto.
  • Permessi di root: per eseguire l’in­stal­la­zio­ne e la con­fi­gu­ra­zio­ne del server VNC sono richiesti permessi di root.
  • Pacchetti software: il software del server VNC (ad esempio TigerVNC, RealVNC o x11vnc) deve essere in­stal­la­to dai re­po­si­to­ry ufficiali di Ubuntu.
  • Ambiente desktop: deve essere in­stal­la­to l’ambiente desktop ne­ces­sa­rio (ad esempio GNOME o XFCE).
  • Con­fi­gu­ra­zio­ne del firewall: la porta 5900 deve essere aperta e il firewall deve essere con­fi­gu­ra­to in modo tale da con­sen­ti­re il traffico VNC.
Novità: offerta VPS
Il tuo server virtuale a prezzi im­bat­ti­bi­li

Prova il nostro VPS. I primi 30 giorni sono in omaggio e se allo scadere del periodo di prova non sarai convinto, ti rim­bor­se­re­mo tutte le spese sostenute.

Guida all’in­stal­la­zio­ne di un server VNC su Ubuntu 22.04

Esistono numerosi server VNC e al­tret­tan­ti ambienti desktop fra cui scegliere. In questa guida ti spie­ghia­mo come in­stal­la­re l’ambiente desktop XFCE e il pacchetto TigerVNC, entrambi di­spo­ni­bi­li nel re­po­si­to­ry ufficiale di Ubuntu. XFCE è un ambiente desktop leggero e TigerVNC è un server VNC ef­fi­cien­te. Entrambi consumano poche risorse e hanno buone pre­sta­zio­ni, il che significa che la con­nes­sio­ne sarà fluida e stabile anche in presenza di con­nes­sio­ni internet più lente.

Primo passaggio: ag­gior­na­re i pacchetti

Prima di avviare l’in­stal­la­zio­ne as­si­cu­ra­ti che il sistema sia ag­gior­na­to. Esegui i seguenti comandi nel terminale per in­stal­la­re tutti gli ag­gior­na­men­ti di­spo­ni­bi­li:

sudo apt update
sudo apt upgrade
bash

Secondo passaggio: in­stal­la­re l’ambiente desktop

Il server VNC ha bisogno di un ambiente desktop, poiché mette a di­spo­si­zio­ne il desktop at­tra­ver­so la rete. Ubuntu 22.04 dispone di GNOME, l’ambiente desktop di sistema. In al­ter­na­ti­va puoi in­stal­la­re altri ambienti desktop, ad esempio XFCE che è par­ti­co­lar­men­te leggero e offre pre­sta­zio­ni elevate.

sudo apt install xfce4 xfce4-goodies
bash

Il pacchetto xfce4-goodies presente nel comando qui sopra dispone di ulteriori strumenti e plugin utili per XFCE.

Terzo passaggio: creare un nuovo utente

Dopo aver in­stal­la­to l’ambiente desktop, per uti­liz­za­re il server VNC devi creare un nuovo utente. Per motivi di sicurezza ti con­si­glia­mo di non usare i dati dell’utente root. Nell’esempio qui sotto creiamo un nuovo utente chiamato “john” e gli as­se­gnia­mo i permessi necessari per eseguire il server VNC da questo account.

Iniziamo creando l’utente “john” e as­se­gnan­do­gli una password. Questo il comando che dovrai digitare nel terminale:

sudo useradd -m -s /bin/bash john
sudo passwd john
bash

Il comando sudo useradd -m -s /bin/bash john crea un nuovo utente chiamato “john”, im­po­stan­do una directory home e con­fi­gu­ran­do la shell pre­de­fi­ni­ta su /bin/bash. Dopo aver creato l’utente, utilizza il comando sudo passwd john per impostare una password per questo account. As­si­cu­ra­ti di scegliere una password sicura per garantire la sicurezza dell’utente.

Suc­ces­si­va­men­te è im­por­tan­te ag­giun­ge­re “john” al gruppo sudo, in modo che possa eseguire comandi am­mi­ni­stra­ti­vi. Puoi farlo con il seguente comando:

sudo usermod -aG sudo john
bash

Questo comando consente all’utente “john” di eseguire ope­ra­zio­ni con i privilegi estesi offerti da sudo.

Per ve­ri­fi­ca­re se “john” dispone delle au­to­riz­za­zio­ni corrette, accedi come “john” e prova a con­trol­la­re i permessi di root. A tal proposito usa il seguente comando:

su - john
sudo su
bash

Con su - john passi all’utente “john”, mentre uti­liz­zan­do sudo su ottieni i permessi di root, sempre che tu abbia inserito la password cor­ret­ta­men­te. Se l’au­ten­ti­ca­zio­ne è andata a buon fine comparirà un prompt come root@hostname, che conferma il possesso dei permessi di root.

Quarto passaggio: in­stal­la­re il software del server VNC

Per questa guida usiamo TigerVNC: si tratta di un’opzione server VNC am­pia­men­te usata e ben sup­por­ta­ta. Per in­stal­la­re TigerVNC digita il seguente comando nel terminale:

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-tools
bash

Questo comando installa il software del server VNC nonché tutti i pacchetti necessari per il fun­zio­na­men­to del server.

Quinto passaggio: creare un’istanza del server VNC

Prima di poter avviare il server VNC dovrai impostare una password, che ti servirà per accedere al server VNC. Digita il seguente comando nel terminale:

vncserver
bash

Una volta eseguito questo comando, ti verrà chiesto di inserire una password e di con­fer­mar­la. Questa password protegge l’accesso al server VNC. Durante la con­fi­gu­ra­zio­ne puoi anche impostare una password di sola vi­sua­liz­za­zio­ne, utile se desideri con­sen­ti­re ad altri utenti di vi­sua­liz­za­re il tuo schermo senza che lo possano con­trol­la­re.

Alla prima at­ti­va­zio­ne del server si crea un nuovo display, so­li­ta­men­te iden­ti­fi­ca­to come :1. L’output del terminale ti indicherà il numero esatto del display che potrai uti­liz­za­re.

Di seguito il nostro esempio:

New 'X' desktop is your-machine-name:1
bash

Ricordati il numero del display (in questo caso :1), poiché ti servirà per col­le­gar­ti con il client VNC.

Sesto passaggio: con­fi­gu­ra­re l’istanza del server VNC

Per garantire che XFCE sia caricato au­to­ma­ti­ca­men­te all’avvio del server VNC è ne­ces­sa­rio creare un file di con­fi­gu­ra­zio­ne chiamato xstartup nella directory ~/.vnc. Ad esempio il file ~/.vnc/xstartup può contenere il seguente codice:

#!/bin/sh
# Start up the standard system desktop
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/usr/bin/startxfce4
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
x-window-manager &
bash

Uti­liz­zan­do il seguente comando il file diventa ese­gui­bi­le:

chmod +x ~/.vnc/xstartup
bash

Settimo passaggio: eseguire il server VNC come servizio di sistema

Impostare il server VNC come servizio systemd ti permette di gestirlo fa­cil­men­te, proprio come qualsiasi altro servizio. Inoltre, puoi usare i comandi systemd per con­sen­ti­re al server VNC di avviarsi au­to­ma­ti­ca­men­te all’ac­cen­sio­ne del sistema.

Prima di tutto, apri un editor di testo a tua scelta e crea un nuovo file:

nano /etc/systemd/system/vncserver@.service
bash

Inserisci nel file il seguente contenuto:

[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=<your-username>
PAMName=login
PIDFile=/home/<your-username>/.vnc/%H:%i.pid
ExecStart=/usr/bin/vncserver %i
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=multi-user.target
bash

So­sti­tui­sci <your-username> con il tuo nome utente effettivo. Carica il nuovo file di servizio e attiva il servizio con i seguenti comandi:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@:1
bash

Il comando sudo systemctl enable vncserver@1.service attiva il servizio del server VNC per il display :1, di modo tale che questo si avvii au­to­ma­ti­ca­men­te al suc­ces­si­vo riavvio del sistema. A tal proposito si usa il file di servizio systemd vncserver@.service, in cui %i viene so­sti­tui­to con 1. In questo modo, configuri il server VNC per il display :1 as­si­cu­ran­do­ti che venga avviato a ogni ac­cen­sio­ne del sistema. Il comando crea anche le scor­cia­to­ie ne­ces­sa­rie per includere il servizio nel processo di avvio ap­pro­pria­to.

Ottavo passaggio: con­fi­gu­ra­re il firewall

Se sul tuo server Ubuntu è attivato un firewall, devi aprire la porta VNC in modo da con­sen­ti­re le con­nes­sio­ni remote. Per im­po­sta­zio­ne pre­de­fi­ni­ta il server VNC usa la porta 5900, seguita dal numero del display. Per il display :1 la porta sarà quindi 5901.

Ora apri la porta con ufw:

sudo ufw allow 5901/tcp
bash

Verifica le regole del firewall per con­trol­la­re che la porta sia aperta:

sudo ufw status
bash

Di seguito un esempio di un possibile output:

Status: active
To                              Action          From
--                               ------          ----
22/tcp                           ALLOW            Anywhere
80/tcp                           ALLOW            Anywhere
443/tcp                          ALLOW           Anywhere
5901/tcp                        ALLOW            Anywhere
22/tcp (v6)                     ALLOW            Anywhere (v6)
80/tcp (v6)                     ALLOW            Anywhere (v6)
443/tcp (v6)                    ALLOW            Anywhere (v6)
5901/tcp (v6)                   ALLOW           Anywhere (v6)
bash

Nono passaggio: creare un col­le­ga­men­to con il server VNC

Per con­net­ter­ti al server VNC hai bisogno di un client VNC sul tuo computer locale. I client VNC più diffusi sono RealVNC, TigerVNC Viewer e TightVNC Viewer. Per garantire una con­nes­sio­ne VNC più sicura puoi uti­liz­za­re una con­nes­sio­ne criptata tramite SSH. Questo protegge le co­mu­ni­ca­zio­ni tra il client VNC e il server.

Qui di seguito ti mostriamo come stabilire la con­nes­sio­ne al server VNC via SSH, inol­tran­do la porta VNC:

ssh -L 59000:localhost:5901 -C -N -l <your-username>@<server-ip>
bash
  • ssh: comando per stabilire una con­nes­sio­ne sicura a un server remoto tramite SSH, il pro­to­col­lo che cripta i dati prima di tra­smet­ter­li.
  • -L 59000:localhost:5901: abilita l’inoltro della porta locale. At­tra­ver­so il tunnel SSH, il traffico di dati viene inoltrato dalla porta 59000 sul computer locale alla porta 5901 del server remoto. localhost si riferisce al server remoto su cui è in ese­cu­zio­ne il server VNC.
  • C: abilita la com­pres­sio­ne del traffico SSH, che può mi­glio­ra­re le pre­sta­zio­ni, so­prat­tut­to su con­nes­sio­ni lente, riducendo l’utilizzo della larghezza di banda.
  • N: impedisce l’ese­cu­zio­ne di comandi sul server remoto. Questo modulo è utile quando si vuole solo creare il tunnel SSH senza aprire una shell sul server remoto.
  • -l <your-username>: specifica il nome utente che utilizzi per con­net­ter­ti al server remoto.
  • <server-ip>: questo è l’indirizzo IP o il nome host del server remoto a cui desideri con­net­ter­ti tramite SSH.
N.B.

So­sti­tui­sci <your-username> con il tuo nome utente e <ip server> con l’indirizzo IP del tuo server.

Collegati alla porta locale 5901 che hai inoltrato tramite il tunnel SSH, inserendo localhost:5901 nel vi­sua­liz­za­to­re VNC.

Questo metodo assicura che la con­nes­sio­ne VNC venga stabilita mediante un tunnel SSH criptato, ga­ran­ten­do maggiore sicurezza durante l’accesso remoto.

Decimo passaggio: con­trol­la­re il server VNC

Per arrestare o riavviare il server VNC, puoi uti­liz­za­re i seguenti comandi:

Arrestare il server VNC:

vncserver -kill :1
bash

Riavviare il server VNC:

vncserver :1
bash

Terminare il server VNC (con systemd):

sudo systemctl stop vncserver@:1
bash

Ve­ri­fi­ca­re lo status:

sudo systemctl status vncserver@1
bash

Di seguito ti pre­sen­tia­mo un possibile output:

vncserver@1.service - Start TigerVNC server at startup
      Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
      Active: active (running) since Mon 2024-07-29 16:57:26 UTC; 20s ago
     Process: 97088 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
     Process: 97092 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :1 (code=exited, status=0/SUCCESS)
    Main PID: 97103 (Xtigervnc)
        Tasks: 77 (limit: 4665)
      Memory: 146.7M
          CPU: 4.459s
      CGroup: /system.slice/system-vncserver.slice/vncserver@1.service
. . .
bash

Un­di­ce­si­mo passaggio: ri­so­lu­zio­ne dei problemi

In caso di problemi con il server VNC, verifica i seguenti punti:

  • File di log: i file di log del server VNC si trovano nella directory ~/.vnc. Controlla questi file per in­di­vi­dua­re eventuali messaggi di errore o possibili problemi.
  • Con­nes­sio­ni di rete: as­si­cu­ra­ti che il firewall o altre re­stri­zio­ni di rete non blocchino l’accesso alla porta VNC.
  • File di con­fi­gu­ra­zio­ne: verifica che il file ~/.vnc/xstartup non contenga errori di con­fi­gu­ra­zio­ne dell’ambiente desktop.

Ora hai la pos­si­bi­li­tà di gestire co­mo­da­men­te i tuoi file e programmi nonché le im­po­sta­zio­ni del sistema tramite un server VNC. Se pre­fe­ri­sci usare Windows, ti con­si­glia­mo di leggere la nostra guida su come in­stal­la­re un server VNC su Windows.

Server dedicati
Per­for­man­ce e in­no­va­zio­ne
  • Pro­ces­so­ri al­l'a­van­guar­dia di ultima ge­ne­ra­zio­ne
  • Hardware dedicato ad alte pre­sta­zio­ni
  • Data center cer­ti­fi­ca­ti ISO
Vai al menu prin­ci­pa­le