Come installare e configurare TigerVNC su Arch Linux
TigerVNC è un’applicazione che consente agli utenti di interagire con applicazioni grafiche su macchine remote. TigerVNC è un’implementazione di Virtual Network Computing (VNC), che utilizza un modello client/server. Il livello di prestazioni offerto da TigerVNC è in grado di eseguire applicazioni 3D e giocare ai videogiochi. Per quanto riguarda la sicurezza, TigerVNC supporta la crittografia TLS e altri metodi di autenticazione avanzati. In questa guida, esamineremo l’installazione e la configurazione di tigervnc su Arch Linux 2018.01.01.
Componenti TigerVNC
Poiché TigerVNC è un’applicazione client-server, diamo un’occhiata alle applicazioni client e server installate sul tuo sistema operativo quando configuri TigerVNC.
Componenti lato server
Linux/Unix
Xvnc – Questo è il server VNC e X per TigerVNC.
vncserver – Questo è uno script wrapper utilizzato per gestire l’avvio del demone Xvnc
vncpasswd – Quando l’autenticazione VNC è abilitata, vncpasswd è responsabile della gestione delle password del server VNC.
vncconfig – Utilizzato per interagire con un’istanza che esegue Xvnc
x0vncserver – Questa è una demo di un semplice server VNC, interroga continuamente qualsiasi display X in modo che VNC possa controllarlo
Lato client TigerVNC
Qualsiasi versione delle applicazioni TigerVNC viene fornita con un visualizzatore TigerVNC multipiattaforma. Questo si connette al server VNC, consentendo di interagire con un desktop remoto visualizzato dal server VNC. vncviewer può essere utilizzato per connettersi a un server VNC in esecuzione su qualsiasi piattaforma (Linux, Unix o Windows)
Installazione di tigervnc su Arch (versione – 2018.01.01)
TigerVNC può essere installato su Arch scaricando il pacchetto binario dal repository della community e installandolo. Se cerchi tigervnc, otterrai risultati come:
$ sudo pacman -Ss tigervnc
community/tigervnc 1.8.0-3
Suite of VNC servers and clients. Based on the VNC 4 branch of TightVNC.
Per installare il pacchetto TigerVNC, eseguire:
$ sudo pacman -S tigervnc --noconfirm
L’installazione di questo pacchetto fornisce vncserver, x0vncserver e anche vncviewer.
Configurazione di TigerVNC
È bene notare che Vncserver offre due principali funzionalità di controllo remoto:
- Il server virtuale viene eseguito in modalità headless con console virtuale
- Controllo diretto delle sessioni X locali fisiche,
Esegui vncserver
Quando esegui vncserver per la prima volta, inizializzerà l’ambiente vncserver, genererà la configurazione di vncserver e aggiungerà le password per l’autenticazione dell’utente. Questo viene fatto eseguendo il comando:
$ 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 'dev.jmtai.com:1 (jmutai)' desktop is dev.jmtai.com:1
Creating default startup script /home/jmutai/.vnc/xstartup
Creating default config /home/jmutai/.vnc/config
Starting applications specified in /home/jmutai/.vnc/xstartup
Log file is /home/jmutai/.vnc/dev.jmtai.com:1.log
Questo ti chiederà di inserire la password utilizzata per accedere ai tuoi desktop, inserire e verificare. Se desideri impostare una password di sola visualizzazione, tocca si alla prossima richiesta.
Come visto dall’output, la configurazione generata verrà memorizzata sotto ~/.vnc/config e lo script di avvio viene generato e memorizzato nel file ~/.vnc/xstartup. Tutti i log di vncserver verranno archiviati in un file ~/.vnc/hostname:1.log.
Il :1 indica il numero di porta TCP su cui è in esecuzione il server virtuale virtuale. In questo caso :1 è effettivamente la porta TCP 5901 (5900+1). Se viene avviata un’altra istanza di vncserver, verrà eseguita sulla successiva più grande libera, ad es 5902 (5900+2) che terminerà in:2 come sopra. Non c’è limite al numero di server VNC che possono essere avviati su Linux, la memoria è l’unico fattore limitante.
Modifica del file di ambiente
~/.vnc/xstartup funzioni come .xinitrc e ha origine da vncserver quando viene avviato. Come minimo, gli utenti dovrebbero avviare un DE da questo file. Ad esempio, per avviare i3wm, devi modificare il file in:
$ cat ~/.vnc/xstartup
#!/bin/bash
exec i3 &>/dev/null
Il file dovrebbe essere eseguibile:
$ chmod +x ~/.vnc/xstartup
Arresto di vncserver
Per arrestare vncserver, utilizzare il comando:
$ vncserver -kill :1
Sostituire :1 con il relativo numero di istanza fornito al momento dell’avvio.
Aggiunta delle opzioni vncserver
Le opzioni del server supportate possono essere aggiunte modificando il file ~/.vnc/config. Le opzioni comuni sono:
$ cat ~/.vnc/config
securitytypes=vncauth,tlsvnc
desktop=sandbox
geometry=1200x700
dpi=96
localhost
alwaysshared
Modificali a tuo piacimento e salva.
Avvio e arresto di vncserver tramite systemd
Per controllare vncserver con systemd, creare prima il file unit systemd per l’utente,
$ cat /etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=jmutai
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=multi-user.target
Dove:1 è la variabile di ambiente $DISPLAY. Sostituire jmutai con il nome utente desiderato e 1440×900 con la risoluzione che desideri impostare.
Per avviare il servizio, eseguire
$ sudo systemctl start vncserver@:1.service
Per consentirne l’esecuzione all’avvio, eseguire:
$ sudo systemctl enable vncserver@:1.service
Controllo del display locale con vncserver
A tal fine, viene fornito il binario x0vncserver che consente il controllo diretto su una sessione X fisica. Evocalo così:
$ x0vncserver -display :0 -passwordfile ~/.vnc/passwd
Wed Jan 10 01:07:17 2018
Geometry: Desktop geometry is set to 1920x1080+0+0
Main: XTest extension present - version 2.2
Main: Listening on port 5900
L’unità systemd per lo stesso sarà simile a questa:
$ cat /etc/systemd/system/x0vncserver.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=foo
ExecStart=/usr/bin/sh -c '/usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/jmutai/.vnc/passwd &'
[Install]
WantedBy=multi-user.target
Connessione al server vnc
Qualsiasi numero di client può connettersi a un server vnc:
$ ip ad show dev wlp1s0
2: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether e4:a7:a0:ef:27:d9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.16/24 brd 192.168.0.255 scope global dynamic noprefixroute wlp1s0
valid_lft 595575sec preferred_lft 595575sec
inet6 fe80::557e:6563:6f86:f8b2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
$ vncviewer
Immettere l’indirizzo IP e fare clic su Connetti, quindi verrà richiesta una password, utilizzare quella impostata in precedenza.
Installazione di client basati su GUI per tigervnc su Arch
Sono disponibili numerose applicazioni GUI per la connessione a vncserver, tra cui:
Krdc:
$ sudo pacman -S krdc
Quando avvii krdc, inserisci vcn server ip su url e connettiti:
Rdesktop:
$ sudo pacman -S rdesktop
Remini
$ sudo pacman -S remmina
Per utilizzare una di queste applicazioni basate su GUI, avviala e fornisci i dettagli richiesti.