TigerVNC

Da Guide@Debianizzati.Org.
Versione del 30 dic 2024 alle 13:45 di Wtf (discussione | contributi) (→‎Avvio diretto)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca
Debian-swirl.png 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
Info.png 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à

Warning.png ATTENZIONE
TigerVNC server può essere avviato solo su macchine in cui sia stato installato un ambiente grafico basato ancora sul vecchio Xorg, non su Wayland (come GNOME).

Diversamente ad ogni tentativo di connettersi sul client verrà semplicemente mostrato uno schermo nero.


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
Info.png 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.

Info.png Importante
Per funzionare il server deve essere avviato da un utente che si sia già autenticato direttamente al computer, ovvero lo schermo del PC DEVE mostrare che la sua sessione è stata avviata. La sessione può successivamente essere bloccata, ma mai chiusa.


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.

Warning.png 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.

Info.png Importante
Non è infatti possibile avviare questo server usando un'utenza che è già stata usata per autenticarsi materialmente alla macchina remota (cioè quando il display della macchina mostra una sessione attiva). In un simile caso bisogna prima disconnettere l'utente dalla sessione attiva sulla macchina.


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.

Bulb.png 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;
Warning.png 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 esempio plasma.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
Info.png 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
...
Info.png 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

  • man tigervncserver, HTML
  • man x0tigervncserver, HTML

Sitografia




Guida scritta da: Wtf (discussioni) 12:02, 29 dic 2024 (UTC) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized