TigerVNC
Versioni Compatibili Debian 12 "bookworm" |
Introduzione
Dall'omonima pagina di Wikipedia inglese:
TigerVNC is an open source Virtual Network Computing (VNC) server and client software, started as a fork of TightVNC in 2009.[2] The client supports Windows, Linux and macOS. The server supports Linux.
Client
Installazione
Da terminale digitare:
# apt install tigervnc-viewer
Nota Ovviamente il server di TigerVNC accetta connessioni da qualsiasi client, non solo da client TigerVNC. |
Utilizzo
All'avvio dell'applicativo è sufficiente inserire l'indirizzo della macchina remota nel formato AAA.BBB.CCC.DDD:porta
, ad esempio:
192.168.0.1:5901
Server, generalità
Creazione password
Per ogni utente che deve poter avviare un server VNC deve essere prima stata creata una password, quindi per ciascuno di tali utenti bisogna eseguire il seguente comando:
~$ vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? n A view-only password is not used
Nota La password deve essere lunga almeno sei caratteri e può essere lunga a piacere, ma in realtà solo i primi otto caratteri vengono considerati. |
La password viene salvata in ~/.vnc/passwd
in formato offuscato con schema permessi 600
, ma risulta comunque banale per chiunque possa leggere tale file ricavarne il vero valore.
Autenticazione
Un server VNC per permettere l'accesso chiede solo la password e non anche il nome utente, questo perché l'utente usato è sempre quello di chi ha materialmente avviato il server VNC.
Server X condiviso
Questo server è utile quando ci si vuole connettere ad una macchina dotata di schermo e che si usa abitualmente di persona.
Installazione
Da terminale digitare:
# apt install tigervnc-scraping-server tigervnc-xorg-extension tigervnc-tools
Utilizzo
L'eseguibile da lanciare per avviare direttamente il server è x0tigervncserver
, ad esempio il comando:
$ x0tigervncserver -rfbport 5901 -localhost no
avvierà il server mettendolo in ascolto sulla porta 5901
e sarà raggiungibile da qualunque IP. Molti parametri sono gli stessi della versione indipendente, cui si rimanda per maggiori informazioni.
ATTENZIONE L'opzione -localhost no è accettabile solo se ci si connette ad una macchina all'interno della propria LAN domestica o piccolo ufficio, certamente MAI se la macchina remota è raggiungibile solo attraverso una rete insicura come internet, a meno che naturalmente la connessione non sia obbligata a transitare attraverso una VPN o tunnel SSH.
|
Server X indipendente
Questo server è utile quando si ha bisogno di connettersi a macchine remote senza schermo fisico, o che ragionevolmente non hanno quasi mai un utente fisico che le usi.
Installazione
Da terminale digitare:
# apt install tigervnc-standalone-server tigervnc-tools
Utilizzo
TigerVNC server può essere avviato sia direttamente da qualsiasi utente senza bisogno di avere privilegi di amministratore, oppure tramite systemd
con i privilegi di amministratore.
Suggerimento Durante il primo avvio e configurazione si consiglia caldamente di usare la modalità diretta, solo dopo aver concluso le prove con successo provare l'avvio tramite systemd .
|
Avvio diretto
Questa modalità è più conveniente se si intende gestire la macchina remota principalmente tramite terminale, ma soprattutto se c'è un solo utente che avvierà il server VNC.
L'eseguibile da lanciare per avviare direttamente il server è tigervncserver
, ad esempio il comando:
$ tigervncserver -rfbport 5901 -localhost no -- plasma -geometry 1280x720 --depth 32 -desktop Prova -autokill no
comporta quanto segue:
- -rfbport, la porta su cui è in ascolto il server VNC è la 5901;
- -localhost, il server accetta connessioni da qualsiasi IP, non solo da localhost;
ATTENZIONE Questa opzione è accettabile solo se ci si connette ad una macchina all'interno della propria LAN domestica o piccolo ufficio, certamente MAI se la macchina remota è raggiungibile solo attraverso una rete insicura come internet, a meno che naturalmente la connessione non sia obbligata a transitare attraverso una VPN o tunnel SSH. |
- --, la sessione (ambiente grafico) da usare è plasma. Chiaramente bisogna specificare un ambiente grafico realmente installato, altrimenti si riceverà un errore simile a
vncserver: Warning: No X session desktop file or command for plasma
.
- È possibile conoscere quali nomi si sessioni sono ammissibili digitando semplicemente
ls -hl /usr/share/xsessions/*
, infatti il nome di una sessione si ricava semplicemente rimuovendo dal nome dei file mostrati l'estensione.desktop
, ad esempioplasma.desktop
-->plasma
.
- -geometry, imposta la risoluzione predefinita a 1280x720.
- -depth, imposta la profondità del colore a 32, cioè il massimo (il valore predefinito è 24, mentre quello minimo 16).
- -desktop, nel bordo superiore della finestra del client sarà mostrato Prova invece che miohost.small.lan:1 (nome_utente).
- -autokill, il server VNC non si chiuderà automaticamente alla disconnessione dell'utente. Con disconnessione si intende proprio il comando di disconnessione, non la semplice chiusura della finestra del client.
In generale ogni volta che si avvia il server VNC viene stampato a video qualcosa di simile a:
New Xtigervnc server 'miohost.small.lan:1 (nome_utente)' on port 5901 for display :1. Use xtigervncviewer -SecurityTypes VncAuth,TLSVnc -passwd /tmp/tigervnc.VYhfS_/passwd miohost.small.lan:1 to connect to the VNC server.
Per visualizzare l'elenco dei server avviati dall'utente corrente:
$ tigervncserver --list
che stamperà a video qualcosa di simile a:
TigerVNC server sessions: X DISPLAY # RFB PORT # RFB UNIX PATH PROCESS ID # SERVER 1 5901 3281 Xtigervnc
Per terminare un server è sufficiente digitare
$ tigervncserver -kill :numero_display
cioè ad esempio tigervncserver -kill :1
.
File config
È possibile salvare tutti i parametri di avvio nel file ~/.vnc/config
in modo da poter avviare il server semplicemente digitando tigervncserver
.
Considerando l'esempio fatto poco sopra il contenuto del file sarebbe:
rfbport=5901 localhost=no session=gnome geometry=1280x720 depth=32 desktop=Prova autokill=no
Nota L'unico parametro parametro veramente necessario è session , tutti gli altri possono essere omessi se all'utente vanno bene i valori predefiniti.
|
Disabilitare avvio automatico ambiente grafico
Se si prevede di collegarsi raramente tramite client VNC alla macchina remota è possibile disabilitare l'avvio automatico dell'ambiente grafico all'accensione o riavvio della macchina fisica in modo che l'ambiente grafico venga caricato solo quando si avvia il server VNC.
Editare in primis il file /etc/default/grub
sostituendo a
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
questo
GRUB_CMDLINE_LINUX_DEFAULT="text"
Fatto ciò digitare
# systemctl set-default multi-user
e quindi riavviare.
Per riabilitare l'avvio automatico dell'ambiente grafico è sufficiente ripristinare il valore iniziale di /etc/default/grub
e dare il seguente comando
# systemctl set-default graphical
Avvio con systemd
Si richiede innanzitutto di assegnare ad ogni utente del PC un numero di schermo. Editare quindi il file /etc/tigervnc/vncserver.users
ed aggiungere in coda una riga per ogni utente formattata nel seguente modo:
:1=utente_linux_C :2=utente_linux_A :3=utente_linux_B ...
Per ciascuno degli utenti dichiarati deve essere anche creata una password come descritto più sopra. Fatto questo è possibile abilitare i vari server con i seguenti comandi:
# systemctl enable tigervncserver@:1 # systemctl enable tigervncserver@:2 # systemctl enable tigervncserver@:3 ...
Parametri Quanto già descritto per i file di configurazione nel caso del metodo di avvio diretto può essere applicato in modo del tutto identico all'avvio tramite systemd .
|
Si noti infine che se si lascia attiva l'opzione autokill
il server si arresterà anche in questo caso con la disconnessione dell'utente, pertanto sarà necessario riavviare eventualmente il server col comando
# systemctl start tigervncserver@:#
dove #
è banalmente il numero del server desiderato.
Risoluzione problemi
Connection refused (111)
L'errore completo è:
Unable to connect to socket: Connection refused (111)
Compare tipicamente quando si tenta la connessione ad un server VNC per cui non sia stato dichiarato -localhost no
. L'unica soluzione è dichiarare tale parametro, tenendo però a mente le implicazioni sulla sicurezza già discusse.
KDE (network-manager)
Può capitare che collegandosi al PC remoto compaia sistematicamente una finestra che chiede di inserire le credenziali di root perché l'applicazione starebbe tentando di modificare le impostazioni di rete. Se avete già configurato la rete con /etc/network/interfaces
la soluzione è semplicemente disinstallare completamente network-manager
.
Approfondimenti
Manpages
Sitografia
Guida scritta da: Wtf (discussioni) 12:02, 29 dic 2024 (UTC) | Debianized 20% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |