GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configura il desktop Xfce sul server Ubuntu 16.10 remoto e accedi ad esso tramite VNC

Desktop in esecuzione su server remoto

Di solito si usa il terminale ssh quando si lavora su un server Linux remoto. Ma ci possono essere momenti in cui è necessario eseguire un'app GUI sul server e mantenerla in esecuzione per un po' di tempo.

Recentemente ho dovuto fare qualcosa di simile e quindi ho configurato un server Ubuntu con desktop e vi ho effettuato l'accesso tramite VNC.

L'idea è semplice. Installa qualsiasi ambiente desktop di tua scelta sul server. In questo tutorial useremo Xfce, poiché ha un ingombro ridotto rispetto a quelli più grandi come Gnome e KDE.

Quindi usa il server vnc per avviare l'ambiente desktop e creare una sessione di visualizzazione X a cui accederemo dal nostro computer desktop locale tramite un client vnc.

Installa l'ambiente desktop e il server VNC

Xfce è un desktop leggero e ideale per l'utilizzo su un server remoto. Per prima cosa installa i pacchetti xfce e il server tightvnc. Sarebbe una buona idea aggiornare la cache del pacchetto prima di eseguire l'installazione effettiva.

sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver

Nota che questo installerà solo i pacchetti e non avvierà nulla. Inizieremo autonomamente vncserver con impostazioni specifiche, più avanti in questa guida.

Se il processo dpkg si chiude in modo imprevisto, potrebbe essere necessario eseguire il comando seguente -

# sudo dpkg --configure -a

Crea un nuovo utente per vnc

La prossima cosa da fare è creare un utente unix che verrà utilizzato durante le sessioni vnc. Il nome utente può essere qualsiasi cosa. Usa il comando adduser.

# adduser mike
Adding user `mike' ...
Adding new group `mike' (1001) ...
Adding new user `mike' (1001) with group `mike' ...
Creating home directory `/home/mike' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for mike
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
#

Il server vnc avvierà l'ambiente desktop con questo utente Unix. Ciò significa che sarai questo utente quando lavori sul desktop remoto

Imposta la "password vnc" per l'utente

Il server vnc mantiene una password separata che viene utilizzata per accedere al server vnc tramite client vnc. Questa password è diversa dalla password utente unix. Viene configurato utilizzando il comando vncpasswd.

Innanzitutto passa all'utente "mike" creato nel passaggio precedente e imposta la password del server vnc.

# su - mike

Quindi usa il comando vncpasswd

$ vncpasswd
Using password file /home/mike/.vnc/passwd
VNC directory /home/mike/.vnc does not exist, creating.
Password:
Verify:
Would you like to enter a view-only password (y/n)?
[email protected]:~$

Nota che il file passwd non esisteva ed è stato creato per la prima volta in questo passaggio.

Se hai già eseguito il comando vncserver in precedenza, avrebbe creato i file. Quando esegui vncserver per la prima volta, crea uno script di avvio predefinito

$ vncserver
You will require a password to access your desktops.
Password:
Password too short
[email protected]:~$ vncserver
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
New 'X' desktop is desktop:1
Creating default startup script /home/enlightened/.vnc/xstartup
Starting applications specified in /home/enlightened/.vnc/xstartup
Log file is /home/enlightened/.vnc/desktop:1.log

Tuttavia, non è necessario eseguire il comando vncserver. Verrà avviato automaticamente utilizzando gli script di avvio.

Crea lo script xstartup

Il prossimo file importante è lo script xstartup. Contiene le istruzioni su quali app X avviare. L'ambiente desktop è l'applicazione X che dobbiamo avviare.

Per prima cosa fai un backup del file se esiste già

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

Ora modificalo usando nano

[email protected]:~$ nano .vnc/xstartup

Nota:si trova all'interno della home directory dell'utente vnc, ovvero /home/mike/.vnc/xstartup

Inserisci le seguenti righe nello script xstartup

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

Il comando startxfce4 avvierà il desktop xfce. Salva il file e chiudilo.

Rendi eseguibile il file xstartup. Ciò è necessario affinché vncserver possa eseguire questo file.

$ chmod +x ~/.vnc/xstartup

Crea file di servizio vnc

Il passaggio successivo consiste nel creare un file di servizio vnc in modo da poter avviare il server vnc utilizzando il comando service e non è necessario eseguire il comando vncserver ogni volta.

Assicurati di inserire il nome utente corretto nella variabile USER. Questo è l'utente che il server vnc utilizzerà per avviare la sessione desktop.

[email protected]:~# sudo nano /etc/init.d/vncserver

Incolla il seguente script

#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="mike"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
. /lib/lsb/init-functions

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

restart)
$0 stop
$0 start
;;
esac
exit 0

Salva il file e chiudilo. Rendilo eseguibile

# chmod +x /etc/init.d/vncserver

Avvia il servizio

Ora si legge tutto. È ora di eseguire il server vnc e testare il nostro passaggio.

Prima ricarica systemctl in modo che possa utilizzare lo script di avvio di vncserver.

systemctl daemon-reload

Ora avvia vncserver. Avvia un server sulla porta 5901

# service vncserver start

Controlla che sia in esecuzione

[email protected]:~# service vncserver status
● vncserver.service
   Loaded: loaded (/etc/init.d/vncserver; bad; vendor preset: enabled)
   Active: active (exited) since Thu 2017-03-02 05:36:42 UTC; 6s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 24877 ExecStart=/etc/init.d/vncserver start (code=exited, status=0/SUCCESS)
Mar 02 05:36:40 bintu systemd[1]: Starting vncserver.service...
Mar 02 05:36:40 bintu vncserver[24877]:  * Starting vncserver for user 'vnc' on localhost:1...
Mar 02 05:36:40 bintu su[24885]: Successful su for vnc by root
Mar 02 05:36:40 bintu su[24885]: + ??? root:vnc
Mar 02 05:36:40 bintu su[24885]: pam_unix(su:session): session opened for user vnc by (uid=0)
Mar 02 05:36:42 bintu vncserver[24877]: New 'X' desktop is bintu:1
Mar 02 05:36:42 bintu vncserver[24877]: Starting applications specified in /home/vnc/.vnc/xstartup
Mar 02 05:36:42 bintu vncserver[24877]: Log file is /home/vnc/.vnc/bintu:1.log
Mar 02 05:36:42 bintu systemd[1]: Started vncserver.service.
$ cat ~/.vnc/*.pid
18577
18731
# ps -ef | grep tightvnc
vnc      24574     1  0 05:32 ?        00:00:00 Xtightvnc :1 -desktop X -auth /home/vnc/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 120000 -rfbauth /home/vnc/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb
root     24744 10412  0 05:33 pts/0    00:00:00 grep --color=auto tightvnc
[email protected]:~#

Controlla le porte aperte del server vnc. È necessario il numero di porta corretto quando ci si connette dal client vnc

# netstat -nlp | grep vnc
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      24574/Xtightvnc
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      24574/Xtightvnc
unix  2      [ ACC ]     STREAM     LISTENING     5225386  24574/Xtightvnc     /tmp/.X11-unix/X1

Il server Vnc può anche essere avviato chiamando direttamente lo script.

# /etc/init.d/vncserver start
[ ok ] Starting vncserver (via systemctl): vncserver.service.
[email protected]:~#

Per fermare vncserver

# service vncserver stop

Installa il client vncviewer sul desktop

Ora che abbiamo il server vnc attivo e funzionante con l'ambiente desktop gui, è il momento di installare un client vnc e accedere al desktop remoto.

Installa xtightvncviewer su Ubuntu.

$ sudo apt-get install xtightvncviewer

Ora connettiti al server vnc remoto usando il comando vncviewer.

$ vncviewer -quality 5 -encodings "copyrect tight hextile zlib corre rre raw" -compresslevel 5 IPADDR:5901

Usiamo codifiche di compressione e qualità inferiore per comprimere i dati dell'immagine trasferiti e renderlo più veloce.

L'utilizzo di altri visualizzatori vnc come KRDC potrebbe essere più lento.

Risorse

Per ulteriori letture, controlla questi link utili -

http://tightvnc.com/vncviewer.1.htmlhttps://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-16-04

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-14-04
https://www.digitalocean.com/community/tutorials /come-impostare-vnc-per-ubuntu-12


Ubuntu
  1. Ubuntu Remote Desktop:come configurare e connettersi ad esso

  2. Installa il server VNC su Ubuntu 13.04 / Ubuntu 12.10

  3. Come configurare il server VNC (Linux Remote Desktop Access) su CentOS/RHEL e Fedora

  4. Come configurare il server X11VNC su Ubuntu e LinuxMint

  5. Installa server e client vnc su Ubuntu

Come installare e configurare RabbitMQ su Ubuntu 16.04

Installa e configura il server VNC su Ubuntu 16.04

Installa e configura VNC su Ubuntu 20.04

Come installare (e disinstallare) XFCE su Ubuntu

Come installare e configurare il server VNC su Ubuntu 20.04 LTS

Una guida per principianti alla gestione degli utenti su desktop e server Ubuntu