Zoeken op website

Hoe VNC-server op Ubuntu te installeren en configureren


Virtual Network Computing (VNC) is een veelgebruikt grafisch systeem voor het delen van desktops waarmee gebruikersaccounts op afstand verbinding kunnen maken en de desktopinterface van de ene computer kunnen bedienen vanaf een andere computer of mobiel apparaat .

In dit artikel leggen we uit hoe u een VNC-server installeert en configureert op een Ubuntu 18.04 Desktop-editie via het tigervnc-server programma.

Omgeving testen

VNC Server: 192.168.56.108
VNC Client: 192.168.56.2

Installeer een bureaubladomgeving in Ubuntu

Zoals ik al zei, is VNC een systeem voor het delen van desktops, dus je moet een desktopomgeving op je Ubuntu-server hebben geïnstalleerd. U kunt de DE van uw keuze installeren door de juiste onderstaande opdrachten uit te voeren. Voor de doeleinden van dit artikel installeren we Ubuntu Gnome (officiële versie).

sudo apt-get install ubuntu-desktop		#Default Ubuntu desktop
sudo apt install ubuntu-gnome-desktop	        #Ubuntu Gnome (Official flavor)
sudo apt-get install xfce4			#LXDE
sudo apt-get install lxde			#LXDE
sudo apt-get install kubuntu-desktop		#KDE

Installeer en configureer een VNC in Ubuntu

Tigervnc-server is een snel, multi-platform VNC-programma dat een Xvnc-server draait en parallelle sessies van Gnome of een andere desktopomgeving op het VNC-bureaublad start.

Voer de volgende opdracht uit om de TigerVNC-server en andere bijbehorende pakketten in Ubuntu te installeren.

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension tigervnc-viewer

Start nu de VNC-server door de opdracht vncserver uit te voeren als een normale gebruiker. Met deze actie wordt de initiële configuratie aangemaakt die is opgeslagen in de map $HOME/.vnc en wordt u ook gevraagd een inlogwachtwoord in te stellen.

Voer een wachtwoord in (minimaal zes tekens lang) en bevestig/verifieer dit. Stel vervolgens desgewenst als volgt een alleen-lezen-wachtwoord in.

vncserver
ls -l ~/.vnc 

Vervolgens moeten we de DE configureren om met de VNC-server te werken. Stop dus de VNC-server met behulp van de volgende opdracht om enkele configuraties uit te voeren.

vncserver -kill :1

Om GNOME of welk bureaublad dan ook dat u heeft geïnstalleerd te configureren, maakt u met uw favoriete teksteditor een bestand met de naam xstartup onder de configuratiemap.

vi ~/.vnc/xstartup

Voeg de volgende regels toe aan het bestand. Deze opdrachten worden automatisch uitgevoerd wanneer u de TigerVNC-server start of opnieuw opstart. Houd er rekening mee dat de opdrachten kunnen variëren, afhankelijk van de DE die u hebt geïnstalleerd.

#!/bin/sh
exec /etc/vnc/xstartup
xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

Sla het bestand op en stel de juiste machtigingen voor het bestand in, zodat het kan worden uitgevoerd.

chmod 700 ~/.vnc/xstartup

Start vervolgens de VNC-server door de volgende opdracht uit te voeren als een normale gebruiker. Stel uw eigen waarden in voor de weergavegeometrie. Gebruik bovendien de vlag -localhost om alleen verbindingen vanaf de localhost toe te staan en, naar analogie, alleen van gebruikers die zijn geverifieerd op de server.

Bovendien gebruikt VNC standaard de TCP-poort 5900+N, waarbij N het weergavenummer is. In dit geval betekent :1 dat de VNC-server draait op displaypoortnummer 5901.

vncserver :1 -localhost -geometry 1024x768 -depth 32

Om VNC serversessies op uw systeem weer te geven, voert u de volgende opdracht uit.

vncserver -list

Zodra de VNC-server is gestart, controleert u de poort waarop deze draait met de opdracht netstat.

netstat -tlnp

Verbinding maken met VNC-server via VNC-client

In dit gedeelte laten we zien hoe u verbinding kunt maken met de VNC-server, maar voordat we daarop ingaan, moet u weten dat VNC standaard niet veilig is (het is geen gecodeerd protocol en kan onderhevig zijn aan packet sniffing). . Dit probleem kan worden opgelost door een tunnel te maken van de client-naar-server-verbinding via SSH.

Met behulp van SSH-tunneling kunt u verkeer van uw lokale machine op poort 5901 veilig doorsturen naar de VNC-server op dezelfde poort.

Open op een Linux-clientcomputer een nieuw terminalvenster en voer de volgende opdracht uit om een SSH-tunnel naar de VNC-server te maken.

ssh -i ~/.ssh/ubuntu18.04 -L 5901:127.0.0.1:5901 -N -f -l tecmint 192.168.56.108

Installeer vervolgens de vncviewer-client zoals TigerVNC Viewer als volgt (u kunt elke andere client van uw keuze installeren).

sudo apt install tigervnc-viewer		#Ubuntu/Debian
sudo yum install tigervnc-viewer		#CnetOS/RHEL
sudo yum install tigervnc-viewer		#Fedora 22+
sudo zypper install tigervnc-viewer	        #OpenSUSE
sudo pacman -S tigervnc			#Arch Linux

Zodra de installatie is voltooid, voert u uw VNC-client uit en geeft u als volgt het adres localhost:5901 op waarmee u verbinding wilt maken om 1 weer te geven.

vncviewer localhost:5901

U kunt het ook openen vanuit het systeemmenu, het bovenstaande adres invoeren en vervolgens op Verbinden klikken.

U wordt gevraagd het eerder aangemaakte VNC-inlogwachtwoord in te voeren, voer dit in en klik op OK om door te gaan.

Als het wachtwoord correct is, komt u terecht in de inloginterface van uw bureaublad. Voer uw wachtwoord in om toegang te krijgen tot het bureaublad.

Let op: als u zich bewust bent van de beveiliging, is het u misschien opgevallen dat de VNC-viewer 'verbinding niet gecodeerd' weergeeft, ook al hebben we dit ingeschakeld SSH-tunneling.

Dit komt omdat het is ontworpen om andere specifieke beveiligingsschema's dan SSH-tunneling te gebruiken bij pogingen om zich bij de server te authenticeren. De verbinding is echter veilig zodra u SSH-tunneling hebt ingeschakeld.

Een Systemd Unit-bestand maken voor TigerVNC Server

Om de VNC-server onder systemd te beheren, d.w.z. de VNC-service te starten, stoppen en opnieuw te starten indien nodig, moeten we er een eenheidsbestand voor maken onder de map /etc/systemd/system/, met rootrechten.

sudo vim /etc/systemd/system/[email 

Voeg vervolgens de volgende regels toe aan het bestand:

[Unit] 
Description=Remote desktop service (VNC) 
After=syslog.target network.target 

[Service] 
Type=simple 
User=tecmint 
PAMName=login 
PIDFile=/home/%u/.vnc/%H%i.pid 
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1024x768 
ExecStop=/usr/bin/vncserver -kill :%i 

[Install] 
WantedBy=multi-user.target

Sla het bestand op en sluit het.

Laad vervolgens de systemd manager-configuratie opnieuw om het nieuw gemaakte unit-bestand als volgt te lezen.

sudo systemctl daemon-reload

Start vervolgens de VNC-service, schakel deze in om automatisch te starten bij het opstarten van het systeem en controleer de status zoals weergegeven.


sudo systemctl start vncserver@1
sudo systemctl enable vncserver@1
sudo systemctl status vncserver@1

Dat is alles! In dit artikel hebben we uitgelegd hoe u de VNC-server op de Ubuntu Linux-distributie installeert en configureert. Deel uw vragen of gedachten met ons via het onderstaande feedbackformulier.