GNU/Linux >> Linux Esercitazione >  >> Linux

Come avviare un server vnc per la visualizzazione effettiva (scraping) con TigerVNC

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.md

Lo 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">> ~/.xsessionrc

Sostituisci 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.


Linux
  1. Come scoprire qual è il dominio per la connessione con Samba?

  2. Come faccio a far funzionare in background il mio server web Golang?

  3. come avviare il server Tomcat in Linux?

  4. Come posso specificare il file chiave per sshfs?

  5. Come visualizzare i parametri della riga di comando del kernel Linux forniti per l'avvio corrente?

Come ospitare autonomamente più siti WordPress sullo stesso server con Docker

Come distribuire il server per conferenze Jitsi Meet con Ubuntu 22.04

Come modificare il nome host del server in Ubuntu

Come modificare il fuso orario su Ubuntu 18.04 Server?

Come proteggere SSH con Fail2Ban

Come installare e configurare il firewall CSF per Linux