i den här guiden kommer vi att titta på hur du installerar och konfigurerar en VNC-server på CentOS 7.X operativsystem för att tillåta fjärranslutningar från alla VNC-klienter, såsom TightVNC, RealVNC och andra. I synnerhet kommer vi att göra detta med TigerVNC-serverprogramvaran, ett gratis verktyg som tillåter att använda ett fristående virtuellt skrivbord.
introduktion
VNC (Virtual Network Computing) är ett klient-serverprotokoll som tillåter en klientdator (som kör en VNC-klient) att ansluta och styra en fjärrdator (som körs på en VNC-server). Programvaran har utvecklats av Olivetti & Oracle research lab i Cambridge, Storbritannien, och dess källkod är fortfarande aktuell och tillgänglig under General Public License (GNU).
beroende på serverprogramvaran kommer VNC-klienten att ansluta till det aktiva skrivbordet (till exempel som TeamViewer-eller AnyDesk-program) eller ett fristående virtuellt skrivbord (som Windows RDP remote desktop protocol). Den senare, kanske mer kraftfull och säker, särskilt om du behöver hantera serverdatorn eftersom varje session kommer att vara en unik miljö, konfigurerad med behörigheter och rättigheter för den anslutna användaren. Därför väljer vi TigerVNC, som kör parallella sessioner i datorns skrivbordsmiljö (GNOME, KDE eller en annan GUI): det betyder att ett virtuellt skrivbord skapas för varje anslutning — det är precis vad vi vill ha.
installera TigerVNC
låt oss nu se hur vi kan installera och konfigurera TigerVNC på CentOS. Det första du behöver göra är att installera TigerVNC-serverprogrammet genom att öppna en terminalsession och ange följande kommando med root-privilegier:
$ sudo yum install tigervnc-server
omedelbart efter det måste du skapa en separat VNC-användare från vilken anslutningen kommer att göras (med ett dedikerat lösenord). För att göra detta, ange följande:
$ sudo adduser vncuser
$ sudo passwd vncuser
viktigt: gör aldrig detta som en root — användare-detta kommer att utgöra ett allvarligt hot mot säkerheten i ditt system. Den bästa lösningen skulle vara att lämna root-användaren utan tillgång till VNC och skapa ett dedikerat konto med begränsade rättigheter.
När du har skapat vncuser och ställt in ett lösenord för inloggning måste du också ange ett unikt VNC-lösenord för den här användaren. Kommandot för att göra detta är:
$ su - vncuser
$ vncpasswd
(den första raden kan utelämnas om vi redan är inloggade som vncuser i förväg).
nästa sak att göra är att skapa en VNC-konfigurationsfil för vncuser. Det snabbaste sättet att göra detta är att kopiera den delade VNC-mallfilen som finns i mappen/lib/systemd/ system/och sedan ändra den:
$ cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
numret 1 som vi har lagt till i det nya filnamnet är visningsnumret som kommer att användas för denna speciella instans av tjänsten. Detta är viktigt att veta eftersom det också bestämmer TCP-porten som kommer att användas av vår VNC-server, lika med 5900 + visningsnummer. Den första kommer att vara 5901, sedan 5902 och så vidare.
omedelbart efter kopiering måste du redigera den nya filen med Vi, Nano eller annan textredigerare och ersätta med namnet på den användare som skapats nyligen (i vårt fall vncuser). Så här ska filen se efter uppdateringen (förutom den långa kommenterade delen i början):
Description=Remote desktop service (VNC)
After=syslog.target network.target
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i -geometry 1280x720"
PIDFile=/home/vncuser/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
WantedBy=multi-user.target
När du har gjort det kan du ladda om VNC-demonen och köra vncserver @ 1 med följande kommandon:
$ systemctl daemon-reload
$ systemctl start vncserver@:1
innan du fortsätter, kontrollera att tjänsten körs genom att ange kommandot systemctl status:
$ systemctl status vncserver@:1
och skapa en symbolisk länk så att den alltid körs vid systemstart med följande kommando:
$ systemctl enable vncserver@:1
ett annat test som du kan utföra innan du försöker ansluta till servern är att titta på de aktiva nätverksuttagen med thesscommand: om allt fungerar korrekt bör du se att VNC-servern fungerar och använder TCP-port 5901. Kör kommandot:
$ ss -tulpn| grep vnc
resultatet ska vara enligt följande:
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=38344,fd=9))
tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=38344,fd=6))
tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=38344,fd=10))
tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=38344,fd=5))
om du ser detta är allt korrekt inställt.
Brandväggsinställning
eftersom vår VNC-tjänst lyssnar på TCP-port 5901 måste du vara säker på att en sådan port är öppen och tillgänglig för externa klienter. Om du har en brandvägg installerad måste du därför skapa en lämplig regel som tillåter VNC-klienter att ansluta.
hur många portar som ska öppnas beror på hur många VNC-serverinstanser du behöver. I vårt scenario gjorde vi bara 1, Så du behöver bara öppna den första dedikerade VNC-porten: TCP 5901, som vi redan sa. Kommandot för att öppna den här porten på Firewalld:
# firewall-cmd --add-port = 5901 / tcp
# firewall-cmd --add-port = 5901 / tcp --permanent
det är inte överflödigt att nämna att du också kan begränsa den här porten till vissa grupper, IP-adresser, nätverkskort eller andra enkla eller komplexa brandväggsregler.
installera det grafiska användargränssnittet (GUI)
om du redan har GNOME, KDE eller andra installerade skrivbordsmiljöer kan du hoppa över det här steget. Annars måste du installera en av dem: TigerVNC-servern startar en parallell instans av denna skrivbordsmiljö för varje inloggningssession, vilket innebär att vi måste ha minst en GUI.
GNOME
om du vill ha ett bra, men tungviktigt GNOME-gränssnitt, ange följande:
$ sudo yum groupinstall "GNOME Desktop"
Xfce
om du behöver en lätt alternativ, kan vi erbjuda Xfce, en fri, öppen källkod miljö för Unix-liknande plattformar som fungerar bra med TigerVNC. GNOME fungerar också bra, men det är ganska resurskrävande: om du vill spara resurser på din servermaskin kan Xfce vara det bästa valet. För att installera det, ange följande:
$ yum install epel-release
$ yum groupinstall xfce
ytterligare inställningar för Xfce
om du väljer att använda Xfce måste du också ändra filen som kördes när VNC-sessionen startade. För att göra detta, redigera filen /home/<användare>/.VNC/xstartup och ändra exec-posten (vanligtvis rad 4) från etc/X11/xinit/xinitrc till startxfce4, som visas nedan:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
vncserver -kill $DISPLAY
VNC-klientanslutning
Nu när allt är inställt kan vi försöka ansluta till vår VNC-tjänst med en VNC-klient, till exempel TightVNC, UltraVNC eller RealVNC, och se vad som händer. Kom ihåg att ange TCP-port 5901 (om du följde vår guide).
möjliga problem
om din klient inte kan upprätta en fungerande VNC-anslutning måste du kontrollera följande:
1. Anslutningsproblem-brandväggskonfiguration: om du ser popup-fel som klienten inte kan ansluta till fjärrvärden måste du kontrollera nätverks-och brandväggskonfigurationen för att se till att det inte finns några blockeringsproblem som kan hindra klienten från att ansluta till TCP-serverport 5901.
2. Svart skärm med musen-uppdatera YUM eller installera om GUI: om du ser en svart skärm med en fungerande muspekare betyder det förmodligen att din VNC-anslutning fungerar bra, men det finns något som hindrar GUI från att starta korrekt skrivbord. För korrigering:
- kör yum update för att installera de senaste versionerna av TigerVNC och GUI själv. Var noga med att hålla reda på eventuella problem som uppstår under installationsfasen.
- avinstallera och installera om GUI med kommandot yum remove / yum group remove och yum groupinstall igen. Om det fortfarande inte fungerar kan du försöka installera en annan GUI.
+1 302 498-83-59
IT-GRAD NL B. V.
+1 302 498-83-59
It-grad nl B. V.