Virtual Network Computing (VNC) är ett grafiskt skrivbordsdelningssystem som låter dig använda tangentbordet och musen för att fjärrstyra en annan dator. Det är ett open source-alternativ till Microsofts fjärrskrivbordsprotokoll (RDP).
Den här artikeln förklarar hur man installerar och konfigurerar en VNC-server på Ubuntu 20.04. Vi visar dig också hur du säkert ansluter till VNC-servern via en SSH-tunnel.
Installera skrivbordsmiljö #
Ubuntu-servrar hanteras från kommandoraden och har ingen skrivbordsmiljö installerad som standard. Hoppa över det här steget om du kör desktopversionen av Ubuntu.
Det finns olika skrivbordsmiljöer tillgängliga i Ubuntu-arkiv. Ett alternativ är att installera Gnome, som är standardskrivbordsmiljön i Ubuntu 20.04. Ett annat alternativ är att installera Xfce . Det är en snabb, stabil och lätt skrivbordsmiljö, vilket gör den idealisk för användning på en fjärrserver.
I den här guiden installerar vi Xfce. Ange följande kommandon som en användare med sudo-behörigheter:
sudo apt uppdatering
sudo apt installera xfce4 xfce4-godsaker
Beroende på ditt system kan nedladdning och installation av Xfce-paket ta lite tid.
Installera VNC Server #
Det finns flera olika VNC-servrar tillgängliga i Ubuntu-arkiv, som TightVNC, TigerVNC och x11vnc . Varje VNC-server har olika styrkor och svagheter när det gäller hastighet och säkerhet.
Vi installerar TigerVNC. Det är en aktivt underhållen högpresterande VNC-server. Skriv följande kommando för att installera paketet:
sudo apt installera tigervnc-fristående server
Konfigurera VNC Access #
När VNC-servern har installerats är nästa steg att skapa den första användarkonfigurationen och ställa in lösenordet.
Ställ in användarlösenordet med vncpasswd
kommando. Använd inte sudo när du kör kommandot nedan:
vncpasswd
Du kommer att uppmanas att ange och bekräfta lösenordet och om du ska ställa in det som enbart visningslösenord. Om du väljer att ställa in ett visningslösenord kan användaren inte interagera med VNC-instansen med musen och tangentbordet.
Lösenord: Verifiera: Vill du ange ett visningslösenord (j / n)? n
Lösenordsfilen lagras i ~ /.vnc
katalog, som skapas om den inte finns.
Därefter måste vi konfigurera TigerVNC för att använda Xfce. För att göra det, skapa följande fil:
~ /.vnc / xstartupnano ~ /.vnc / xstartup
#!/ bin / sh avaktiverat SESSION_MANAGER avaktiverat DBUS_SESSION_BUS_ADDRESS exec startxfce4
Spara och stäng filen. Kommandona ovan körs automatiskt när du startar eller startar om TigerVNC-servern.
De ~ /.vnc / xstartup
filen måste också ha exekveringsbehörigheter. Använd chmod
kommando för att ställa in filbehörigheter:
chmod u + x ~ /.vnc / xstartup
Om du behöver skicka ytterligare alternativ till VNC-servern, skapa en fil med namnet konfigurera
och lägg till ett alternativ per rad. Här är ett exempel:
geometri = 1920x1080 dpi = 96
Du kan nu starta VNC-servern med vncserver
kommando:
vncserver
Ny server2.linuxize.com: 1 (linuxize) 'skrivbord vid: 1 på maskinserver2.linuxize.com Starta applikationer som anges i / home / linuxize /.vnc / xstartup-loggfilen är / home / linuxize /.vnc / server2.linuxize.com: 1.log Använd xtigervncviewer -SecurityTypes VncAuth -passwd / home / linuxize /.vnc / passwd: 1 för att ansluta till VNC-servern.
Notera : 1
efter värdnamnet i utgången ovan. Detta anger antalet visningsportar som vnc-servern körs på. I det här exemplet kör servern på TCP-port 5901
(5900 + 1). Om du skapar en andra instans med vncserver
den kommer att köras på nästa fria port i.e : 2
, vilket innebär att servern körs på port 5902
(5900 + 2).
Vad som är viktigt att komma ihåg är att när man arbetar med VNC-servrar, : X
är en visningsport som refererar till 5900 + X
.
Du kan få en lista över alla VNC-sessioner som för närvarande körs genom att skriva:
vncserver -list
TigerVNC-server sessioner: X DISPLAY # RFB PORT # PROCESS ID: 1 5901 5710
Innan du fortsätter med nästa steg, stoppa VNC-instansen med vncserver
kommando med en -döda
alternativet och servernumret som ett argument. I det här exemplet kör servern i port 5901 (: 1
), så vi slutar med:
vncserver -kill: 1
Dödar Xtigervnc-process ID 5710 ... framgång!
Skapa en Systemd-enhetsfil #
Istället för att manuellt starta VNC-sessionen, låt oss skapa en systemd-enhetsfil så att du startar, stoppar och startar om VNC-tjänsten efter behov.
Öppna din textredigerare och kopiera och klistra in följande konfiguration i den. Se till att ändra användarnamnet på rad 7 så att det matchar ditt användarnamn.
sudo nano / etc / systemd / system / vncserver @.service
/ etc / systemd / system / vncserver @.service[Enhet] Beskrivning = Fjärrskrivbordstjänst (VNC) After = syslog.målnätverk.target [Service] Typ = enkel användare = linuxize 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 -alltid delad -fg ExecStop = / usr / bin / vncserver -kill:% i [Installera] WantedBy = fleranvändare.mål
Spara och stäng filen.
Meddela systemd att en ny enhetsfil skapas:
sudo systemctl daemon-reload
Aktivera tjänsten att starta vid start:
sudo systemctl aktiverar vncserver @ 1.service
Numret 1
efter @
tecken definierar den visningsport som VNC-tjänsten ska köras på. Detta innebär att VNC-servern lyssnar på port 5901
, som vi diskuterade i föregående avsnitt.
Starta VNC-tjänsten genom att köra:
sudo systemctl starta vncserver @ 1.service
Kontrollera att tjänsten har startats med:
sudo systemctl status vncserver @ 1.service
● vncserver @ 1.tjänst - Fjärrskrivbordstjänst (VNC) laddad: laddad (/ etc / systemd / system / vncserver @.service; aktiverad; leverantörsförinställning: aktiverad) Aktiv: aktiv (igång) sedan fre 2021-03-26 20:00:59 UTC; För 3 år sedan ..
Ansluter till VNC-server #
VNC är inte ett krypterat protokoll och kan utsättas för paket sniffing. Det rekommenderade tillvägagångssättet är att skapa en SSH-tunnel och vidarebefordra trafik från din lokala maskin på port 5901 till servern på samma port.
Ställ in SSH Tunneling på Linux och macOS #
Om du kör Linux, macOS eller något annat Unix-baserat operativsystem på din dator kan du enkelt skapa en SSH-tunnel med följande kommando:
ssh -L 5901: 127.0.0.1: 5901 -N -f -l vagrant 192.168.33.10
Du kommer att uppmanas att ange användarlösenordet.
Se till att byta ut det Användarnamn
och server IP adress
med ditt användarnamn och IP-adressen till din server.
Ställ in SSH-tunnling på Windows #
Om du kör Windows kan du konfigurera SSH Tunneling med PuTTY SSH-klienten .
Öppna Putty och ange serverns IP-adress i Värdnamn eller IP-adress
fält.
Under Förbindelse
meny, ruta, expandera SSH
, och välj Tunnlar
. Ange VNC-serverporten (5901
) i Källport
fält och ange server_ip_adress: 5901
i Destination
och klicka på Lägg till
som visas i bilden nedan:
Gå tillbaka till Session
sidan för att spara inställningarna så att du inte behöver ange dem varje gång. Välj den sparade sessionen till fjärrservern och klicka på Öppna
knapp.
Ansluter med Vncviewer #
Nu när SSH-tunneln har skapats är det dags att öppna din Vncviewer och ansluta till VNC-servern på lokal värd: 5901
.
Du kan använda vilken VNC-tittare som helst som TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre och VNC Viewer för Google Chrome .
Vi använder TigerVNC. Öppna visaren, gå in lokal värd: 5901
, och klicka på Ansluta
knapp.
Ange ditt användarlösenord när du blir ombedd, och du bör se standard Xfce-skrivbordet. Det kommer att se ut så här:
Du kan börja interagera med fjärranslutet XFCE-skrivbord från din lokala dator med tangentbordet och musen.
Slutsats #
Vi har visat dig hur du installerar och konfigurerar en VNC-server igång på Ubuntu 20.04.
För att konfigurera din VNC-server för att starta en skärm för mer än en användare, skapa den ursprungliga konfigurationen och ställ in lösenordet med vncpasswd
kommando. Du måste också skapa en ny servicefil med en annan port.
Lämna gärna en kommentar om du har några frågor.