Wyszukiwanie w witrynie

Jak zainstalować i skonfigurować serwer VNC na Ubuntu


Virtual Network Computing (VNC) to szeroko stosowany graficzny system udostępniania pulpitu, który umożliwia kontom użytkowników zdalne łączenie się i kontrolowanie interfejsu pulpitu jednego komputera z innego komputera lub urządzenia mobilnego .

W tym artykule wyjaśnimy, jak zainstalować i skonfigurować serwer VNC na wersji Ubuntu 18.04 Desktop za pomocą programu tigervnc-server.

Środowisko testowe

VNC Server: 192.168.56.108
VNC Client: 192.168.56.2

Zainstaluj środowisko pulpitu w Ubuntu

Jak powiedziałem, VNC to system współdzielenia pulpitu, dlatego na serwerze Ubuntu musisz mieć zainstalowane środowisko pulpitu. Możesz zainstalować wybrany DE, uruchamiając odpowiednie polecenia poniżej. Na potrzeby tego artykułu zainstalujemy Ubuntu Gnome (wersja oficjalna).

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

Zainstaluj i skonfiguruj VNC w Ubuntu

Tigervnc-server to szybki, wieloplatformowy program VNC, który uruchamia serwer Xvnc i uruchamia równoległe sesje Gnome lub innego środowiska graficznego na pulpicie VNC.

Aby zainstalować serwer TigerVNC i inne powiązane pakiety w Ubuntu, uruchom następujące polecenie.

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

Teraz uruchom serwer VNC, uruchamiając polecenie vncserver jako zwykły użytkownik. Ta czynność utworzy początkową konfigurację zapisaną w katalogu $HOME/.vnc i wyświetli monit o ustawienie hasła logowania.

Wprowadź hasło (które musi mieć co najmniej sześć znaków) i potwierdź je/zweryfikuj. Następnie ustaw hasło tylko do przeglądania, jeśli chcesz, w następujący sposób.

vncserver
ls -l ~/.vnc 

Następnie musimy skonfigurować DE do współpracy z serwerem VNC. Zatrzymaj więc serwer VNC za pomocą następującego polecenia, aby przeprowadzić pewne konfiguracje.

vncserver -kill :1

Aby skonfigurować GNOME lub inny zainstalowany pulpit, utwórz plik o nazwie xstartup w katalogu konfiguracji, używając swojego ulubionego edytora tekstu.

vi ~/.vnc/xstartup

Dodaj następujące wiersze w pliku. Polecenia te będą automatycznie wykonywane przy każdym uruchomieniu lub ponownym uruchomieniu serwera TigerVNC. Pamiętaj, że polecenia mogą się różnić w zależności od zainstalowanego DE.

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

Zapisz plik i ustaw odpowiednie uprawnienia dla pliku, aby można było go wykonać.

chmod 700 ~/.vnc/xstartup

Następnie uruchom serwer VNC, uruchamiając następujące polecenie jako zwykły użytkownik. Ustaw własne wartości geometrii wyświetlacza. Dodatkowo użyj flagi -localhost, aby zezwolić na połączenia tylko z localhost i analogicznie tylko od użytkowników uwierzytelnionych na serwerze.

Ponadto VNC domyślnie korzysta z portu TCP 5900+N, gdzie N to wyświetlany numer. W tym przypadku :1 oznacza, że serwer VNC będzie działał na porcie wyświetlacza o numerze 5901.

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

Aby wyświetlić listę sesji serwera VNC w swoim systemie, uruchom następujące polecenie.

vncserver -list

Po uruchomieniu serwera VNC sprawdź port, na którym działa, za pomocą polecenia netstat.

netstat -tlnp

Łączenie z serwerem VNC poprzez klienta VNC

W tej sekcji pokażemy, jak połączyć się z serwerem VNC, ale zanim do tego przejdziemy, musisz wiedzieć, że domyślnie VNC nie jest domyślnie bezpieczny (nie jest to protokół szyfrowany i może podlegać podsłuchiwaniu pakietów) . Ten problem można rozwiązać, tworząc tunel łączący klienta z serwerem za pośrednictwem protokołu SSH.

Korzystając z tunelowania SSH, możesz bezpiecznie przekazywać ruch z komputera lokalnego na porcie 5901 do serwera VNC na tym samym porcie.

Na komputerze klienckim z systemem Linux otwórz nowe okno terminala i uruchom następujące polecenie, aby utworzyć tunel SSH do serwera VNC.

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

Następnie zainstaluj klienta vncviewer, takiego jak TigerVNC Viewer w następujący sposób (możesz zainstalować dowolnego innego wybranego klienta).

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

Po zakończeniu instalacji uruchom klienta VNC i podaj adres localhost:5901, z którym chcesz się połączyć, aby wyświetlić 1 w następujący sposób.

vncviewer localhost:5901

Możesz też otworzyć je z menu systemowego, wpisać powyższy adres i kliknąć Połącz.

Zostaniesz poproszony o podanie utworzonego wcześniej hasła logowania VNC, wprowadź je i kliknij OK, aby kontynuować.

Jeśli hasło jest prawidłowe, wylądujesz w interfejsie logowania na swoim pulpicie. Wprowadź hasło, aby uzyskać dostęp do pulpitu.

Uwaga: jeśli zależy Ci na bezpieczeństwie, być może zauważyłeś, że przeglądarka VNC pokazuje „połączenie nieszyfrowane”, mimo że włączyliśmy Tunelowanie SSH.

Dzieje się tak, ponieważ podczas próby uwierzytelnienia na serwerze zaprojektowano go do stosowania określonych schematów zabezpieczeń innych niż tunelowanie SSH. Jednak połączenie jest bezpieczne po włączeniu tunelowania SSH.

Tworzenie pliku jednostki systemowej dla serwera TigerVNC

Aby zarządzać serwerem VNC w systemd, tj. uruchamiać, zatrzymywać i ponownie uruchamiać usługę VNC w razie potrzeby, musimy utworzyć dla niego plik jednostkowy w katalog /etc/systemd/system/ z uprawnieniami roota.

sudo vim /etc/systemd/system/[email 

Następnie dodaj następujące linie w pliku:

[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

Zapisz plik i zamknij go.

Następnie załaduj ponownie konfigurację menedżera systemowego, aby odczytać nowo utworzony plik jednostkowy w następujący sposób.

sudo systemctl daemon-reload

Następnie uruchom usługę VNC, włącz jej automatyczne uruchamianie przy starcie systemu i sprawdź jej status, jak pokazano.


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

To wszystko! W tym artykule wyjaśniliśmy, jak zainstalować i skonfigurować serwer VNC w dystrybucji Ubuntu Linux. Podziel się z nami swoimi pytaniami lub przemyśleniami, korzystając z poniższego formularza opinii.