VNC è un'applicazione di condivisione desktop (Virtual Network Computing) per connettere e controllare il desktop di un computer (remoto o locale) tramite una connessione di rete.
Tuttavia, sui sistemi Linux, molte applicazioni server VNC consentono solo di connettersi a un desktop virtuale e non a quello effettivo. Questo howto ti offre una soluzione, per connetterti tramite il server TigerVNC alla sessione attiva effettiva sul tuo desktop Linux.
Requisiti
- Un ambiente desktop linux completamente funzionale
- privilegio di root (per installare il server TigerVNC)
- conoscenza di base della shell linux
Per ottenere i pacchetti più recenti, potresti voler aggiornare.
[email protetta]:~$ sudo apt-get update
Questo howto è stato testato su Debian/GNU Linux 9.5 (stretch) e Ubuntu 18.04
Installa TigerVNC
Per prima cosa, devi installare il server TigerVNC.
[email protetta]:~$ sudo apt-get install tigervnc-scraping-server
Nota che sulla maggior parte dei sistemi basati su Debian, c'è un piccolo pacchetto chiamato tigervnc-scraping-server, che devi installare. Non è necessario installare il server TigerVNC principale (nome pacchetto:tigervnc-standalone-server) per avere la funzionalità per connettersi alla sessione desktop in esecuzione, solo se si preferisce connettersi anche a un desktop virtuale.
Il server TigerVNC fornisce un'applicazione più piccola (x0vncserver) per concedere l'accesso alla sessione attiva.
Quindi, crea una directory .vnc nella tua home:
[email protetta]:~$ mkdir -p ~/.vnc
Crea una password per la tua sessione vnc:
[email protected]:~$ vncpasswd
Password:
Verify:
Vuoi inserire una password di sola visualizzazione (s/n)? n
Avvio del server VNC
Una breve descrizione di x0vncserver:
x0tigervncserver è un server TigerVNC che rende qualsiasi display X accessibile in remoto tramite VNC, TigerVNC o visualizzatori compatibili. A differenza di Xvnc(1), non crea un display virtuale. Invece, condivide semplicemente un server X esistente (in genere, quello connesso allo schermo fisico).
Ora che hai installato correttamente il server TigerVNC sul tuo computer, creato una password con il comando vncpasswd, possiamo iniziare ad avviare il nostro server vnc. Assicurati di essere nella sessione attiva e scrivi (come utente):
[email protected]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0
Wed Oct 10 22:17:16 2018
Geometria:la geometria del desktop è impostata a 1920x1080+0+0
Principale:estensione XTest presente - versione 2.2
Principale:Ascolto sulla porta 5900
L'opzione -passwordfile ~/.vnc/passwd legge il file della password creato in precedenza con vncpasswd comando. La seconda opzione -display :0 significa che vuoi connetterti alla sessione sul display :0, che di solito è la sessione attiva.
Ora puoi accedere al tuo desktop effettivo con qualsiasi applicazione di visualizzazione vnc sulla porta vnc predefinita 5900.
Puoi interrompere questo processo quando vuoi premendo Ctrl-c.
Se desideri eseguirlo in background, digita:
[email protetta]:~$ x0vncserver -passwordfile ~/.vnc/passwd -display :0>/dev/null 2>&1 &
Ora tutto l'output standard e gli errori di output vengono reindirizzati a /dev/null e con il &alla fine, verrà eseguito in background. Tuttavia, non sarai più in grado di arrestare il server vnc premendo Ctrl-c, invece devi terminare il suo ID processo (vedi sotto la sezione "Arresto del server vnc").
Per ulteriori opzioni e sintassi, controlla il manuale di x0vncserver.
Arresto del server VNC
Se il tuo server vnc viene eseguito in background, devi conoscere l'ID del processo per interromperlo.
[email protetta]:~$ ps -fu utente | grep [x]0vncserver
utente 1328 1 0 23:11 pts/2 00:00:00 /usr/bin/x0vncserver -display :0 -passwordfile /home/user/.vnc/passwd -rfbport 5900
L'output sarà così, quindi nota il pid 1328. Per fermare il server vnc, dobbiamo "terminare" questo processo.
[email protetta]:~$ kill -9 1328
L'opzione -9 per il comando kill invierà il segnale KILL all'id del processo per assicurarsi che si interrompa.
Script per eseguire il server VNC
C'è uno script per avviare e fermare l'applicazione x0vncserver su github. A scopo di test, scarichi anche il pacchetto psmisc:
[email protetta]:~$ sudo apt-get install git psmisc
Quindi, scarica lo script startvnc usando il comando git:
[email protected]:~$ git clone https://github.com/sebestyenistvan/runvncserver
Cloning in 'runvncserver'...
remote:enumerazione degli oggetti:77, fatto.
/>remoto:conteggio oggetti:100% (77/77), fatto.
remoto:compressione oggetti:100% (57/57), fatto.
remoto:totale 77 (delta 25), riutilizzato 60 (delta 18), pack-reused 0
Disimballaggio degli oggetti:100% (77/77), fatto.
Il tuo output sarà simile a quello sopra.
Copia lo script startvnc dalla directory runvncserver a casa tua:
[email protetta]:~$ cp ~/runvncserver/startvnc ~
Modifica i permessi in eseguibile, per eseguire lo script:
[email protetta]:~$ chmod +x ~/startvnc
Quindi, esegui lo script.
[email protetta]:~$ ./startvnc
Utilizzo:./startvnc start|stop|restart|status
Questo script funzionerà solo se hai una directory .vnc nella tua home e hai creato un vncpasswd (verifica il file ~/.vnc/passwd). Abbiamo già creato la directory .vnc e la password in precedenza.
Per avviare il server vnc sul display effettivo, digita semplicemente:
[email protetta]:~$ ./startvnc start
Avvio del server VNC visualizzato :0 [ok]
Puoi testare, se il tuo server vnc è in esecuzione con l'opzione:
[email protetta]:~$ ./startvnc status
Stato del server VNC:[in esecuzione] (pid:1328)
Alcuni esempi:
Oppure controllando la porta 5900 TCP sul tuo sistema con il comando fuser (dal pacchetto psmisc):
[email protected]:~$ fuser -vn tcp 5900
USER PID ACCESS COMMAND
5900/tcp: user 1328 F.... x0 />>Otterrai un output come questo se il server vnc è in esecuzione sulla porta 5900.
Ulteriori istruzioni per questo script sono disponibili nel file readme:
[email protetta]:~$ meno runvncserver/README.mdLo script creerà un file di registro, in cui è archiviato l'output. Se qualcosa va storto o non riesci ad avviare o arrestare x0vncserver, dai un'occhiata al file di log in ~/.vnc/logfile
Avvia automaticamente il server VNC
Se vuoi accedere automaticamente alla sessione desktop attiva, devi modificare il file .xsessionrc nella tua home directory.
[email protetta]:~$ echo "/home/user/startvnc start>/dev/null 2>&1">> ~/.xsessionrcSostituisci utente con il tuo nome utente e verrà eseguito automaticamente all'avvio della sessione X. Lo script registra la sua attività in ~/.vnc/logfile, se qualcosa va storto, puoi controllare il file di registro lì.
Note
Questo tutorial non riguarda la configurazione di un desktop virtuale VNC.
Sicurezza
Tieni presente che x0vncserver non utilizza la crittografia per impostazione predefinita, quindi usala con attenzione su Internet. Se vuoi usarlo in remoto, puoi eseguirne il tunneling tramite ssh. Tuttavia, ci sono altri howto in cui puoi trovare una soluzione per crittografare la tua sessione VNC.
Oppure puoi dare un'occhiata al pacchetto ssvnc.
Visualizzatori VNC
Se stai cercando visualizzatori VNC, ce ne sono molti, ad esempio:
- visualizzatore gvnc
- visualizzatore di tigervnc
- xtightvncviewer
- xvnc4viewer
Geometria
Il server x0vnc sul display effettivo utilizzerà la stessa geometria del desktop in esecuzione sul display :0. Quindi, se imposti l'opzione -geometry su una dimensione inferiore, non verrà ridimensionata, vedrai solo una frazione delle dimensioni del desktop.
Feedback
Sentiti libero di scrivere un feedback. Se hai testato questo tutorial o anche lo script su un altro sistema.