Wyszukiwanie w witrynie

Jak zainstalować i skonfigurować serwer VNC w CentOS i RHEL


W tym przewodniku wyjaśnimy, jak zainstalować i skonfigurować Dostęp zdalny VNC na komputerze stacjonarnym CentOS 7/8 i RHEL 9/8/7 wydanie za pośrednictwem programu tigervnc-server, aby uzyskać dostęp do komputerów zdalnych.

VNC (Virtual Network Computing) to protokół serwer-klient, który umożliwia kontom użytkowników zdalne łączenie się i kontrolowanie odległego systemu przy użyciu zasobów udostępnianych przez graficzny interfejs użytkownika.

W przeciwieństwie do innych dostępnych serwerów VNC, które łączą się bezpośrednio z pulpitem wykonawczym, takich jak VNC X lub Vino, tigervnc-vncserver wykorzystuje inny mechanizm, który konfiguruje samodzielny wirtualny pulpit dla każdego użytkownika.

Wymagania

  • Instalacja CentOS 8 ze zrzutami ekranu
  • Procedura instalacji CentOS 7
  • Jak zainstalować RHEL 9 za darmo
  • Jak zainstalować RHEL 8 za darmo
  • Procedura instalacji RHEL 7

Krok 1: Zainstaluj i skonfiguruj VNC na CentOS

1. Tigervnc-server to program, który uruchamia serwer Xvnc i rozpoczyna równoległe sesje Gnome lub innego komputera stacjonarnego środowiskach na pulpicie VNC.

Dostęp do rozpoczętej sesji użytkownika VNC może uzyskać ten sam użytkownik z wielu klientów VNC. Aby zainstalować serwer TigerVNC w CentOS/RHEL, otwórz sesję terminalową i wydaj następującą komendę yum z uprawnieniami roota.

sudo yum install tigervnc-server

2. Po zainstalowaniu programu zaloguj się jako użytkownik, dla którego chcesz uruchomić program VNC i wydaj poniższe polecenie w terminalu, aby skonfigurować hasło do serwera VNC.

Pamiętaj, że hasło musi mieć co najmniej sześć znaków.

su - your_user
vncpasswd

3. Następnie dodaj plik konfiguracyjny usługi VNC dla swojego użytkownika poprzez plik konfiguracyjny demona umieszczony w drzewie katalogów systemd. Aby skopiować plik szablonu VNC, musisz uruchomić następującą komendę cp z uprawnieniami roota.

Jeśli Twojemu użytkownikowi nie przyznano uprawnień sudo, przełącz się bezpośrednio na konto root lub uruchom polecenie z konta z uprawnieniami root.

cp /lib/systemd/system/[email  /etc/systemd/system/vncserver@:1.service

4. W następnym kroku edytuj skopiowany plik konfiguracyjny szablonu VNC z katalogu /etc/systemd/system/ i zamień poniższe wartości, aby odzwierciedlały Twojego użytkownika, jak pokazano poniżej próbka.

Wartość 1 po znaku @ reprezentuje numer wyświetlacza (port 5900+display). Ponadto dla każdego uruchomionego serwera VNC port 5900 zostanie zwiększony o 1.

vi /etc/systemd/system/vncserver@\:1.service

Dodaj następujące wiersze do pliku vncserver@:1.service.

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

[Service]
Type=forking
User=tecmint
Group=tecmint
WorkingDirectory=/home/tecmint
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/tecmint/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

5. Po wprowadzeniu odpowiednich zmian w pliku usługi VNC załaduj ponownie program inicjujący systemd, aby pobrać nowy plik konfiguracyjny vnc i uruchomić serwer TigerVNC.

Sprawdź także stan usługi VNC i włącz demona VNC w całym systemie, wydając poniższe polecenia.

systemctl daemon-reload
systemctl start vncserver@:1
systemctl status vncserver@:1
systemctl enable vncserver@:1

6. Aby wyświetlić listę otwartych portów w stanie nasłuchiwania należącym do serwera VNC, uruchom polecenie ss, które służy do wyświetlania gniazd sieciowych. Ponieważ uruchomiłeś tylko jedną instancję serwera VNC, pierwszym otwartym portem jest 5901/TCP.

Ponownie, polecenie ss musi zostać wykonane z uprawnieniami roota. Jeśli uruchomisz równolegle inne instancje VNC dla różnych użytkowników, wartość portu będzie wynosić 5902 dla drugiego, 5903 dla trzeciego i tak dalej. Porty 6000+ służą do umożliwienia aplikacjom X łączenia się z serwerem VNC.

ss -tulpn| grep vnc

7. Aby umożliwić zewnętrznym klientom VNC łączenie się z serwerem VNC, musisz się upewnić, że odpowiednie otwarte porty VNC mogą przechodzić przez zaporę ogniową.

W przypadku uruchomienia tylko jednej instancji serwera VNC wystarczy otworzyć pierwszy przydzielony port VNC: 5901/TCP, wydając poniższe polecenia, aby zastosować konfigurację zapory ogniowej w czasie wykonywania.

firewall-cmd --add-port=5901/tcp
firewall-cmd --add-port=5901/tcp --permanent

Krok 2: Łączenie się z komputerem stacjonarnym CentOS za pośrednictwem klienta VNC

8. Ponieważ jest to protokół niezależny od platformy, zdalne połączenia Graficznego interfejsu użytkownika VNC można wykonywać z niemal każdego systemu operacyjnego z graficznym interfejsem użytkownika i wyspecjalizowanym klientem VNC.

Popularnym klientem VNC używanym w systemach operacyjnych opartych na Microsoft, w pełni kompatybilnym z serwerem Linux TigerVNC, jest RealVNC VNC Viewer.

Aby zdalnie połączyć się z CentOS Desktop z systemu operacyjnego Microsoft za pomocą protokołu VNC, otwórz program VNC Viewer, dodaj adres IP i numer portu serwera CentOS VNC oraz naciśnij klawisz [enter].

Po nawiązaniu połączenia VNC na ekranie powinno wyświetlić się ostrzeżenie informujące, że połączenie nie jest szyfrowane, jak pokazano na poniższych zrzutach ekranu.

9. Aby ominąć ostrzeżenie, naciśnij przycisk Kontynuuj, dodaj konfigurację hasła dla serwera VNC w punkcie 2 i powinieneś być zdalnie połączony z CentOS Desktop za pomocą użytkownik skonfigurowany do uruchamiania instancji serwera VNC.

10. Jeśli na ekranie pojawi się nowy komunikat Uwierzytelnianie, a użytkownik nie ma uprawnień roota, po prostu naciśnij przycisk Anuluj, aby przejść do CentOS Pulpit, jak pokazano na poniższym zrzucie ekranu.

Należy pamiętać, że ustanowiona komunikacja VNC pomiędzy serwerem a klientem oraz wszelkie wymieniane dane (z wyjątkiem hasła) przebiegają przez niezaszyfrowany kanał. Aby zaszyfrować i zabezpieczyć transfer danych VPN, należy najpierw skonfigurować bezpieczny tunel SSH i uruchamiać wszelki kolejny ruch VPN przez tunel SSH.

11. Aby zdalnie połączyć się z CentOS Desktop za pomocą protokołu VNC z innych komputerów CentOS, najpierw upewnij się, że w Twoim systemie jest zainstalowany pakiet vinagre, wydając poniższe polecenie.

sudo yum install vinagre

12. Aby otworzyć narzędzie vinagre, przejdź do Aplikacje -> Narzędzia -> Podgląd pulpitu zdalnego, jak pokazano na poniższym zrzucie ekranu.

13. Aby zdalnie połączyć się z komputerem stacjonarnym CentOS, naciśnij przycisk Połącz, wybierz z listy protokół VNC i dodaj adres IP i port (5900+numer wyświetlacza) zdalnego serwera VNC. Podaj także konfigurację hasła dla użytkownika VNC, jak pokazano na poniższych zrzutach ekranu.

14. Innym popularnym klientem VNC dla platform opartych na systemie Linux jest Remmina, klient zdalnego pulpitu, który jest szczególnie używany w dystrybucjach opartych na Debianie, w których działa środowisko graficzne GNOME.

Aby zainstalować klienta Remmina Remote Desktop w dystrybucjach opartych na Debianie, wydaj następujące polecenie.

sudo apt-get install remmina

Krok 3: Skonfiguruj wiele sesji VNC w CentOS

15. Jeśli chcesz uruchomić nową równoległą sesję VNC w ramach tego samego użytkownika, otwórz konsolę terminala, zaloguj się jako użytkownik, od którego chcesz rozpocząć nową sesję VNC, i wykonaj poniższe polecenie.

Przy pierwszym uruchomieniu serwera zostaniesz poproszony o podanie nowego hasła dla tej sesji. Należy jednak pamiętać, że ta sesja działa z uprawnieniami zalogowanego użytkownika i niezależnie od uruchomionej sesji serwera systemowego VNC.

vncserver

16. Nowe sesje VNC otworzą kolejne dostępne porty oparte na VNC (w tym przykładzie wyświetlają się 5900+3). Aby wyświetlić otwarte porty, wykonaj polecenie ss bez uprawnień roota, jak pokazano w poniższym fragmencie. Wyświetli listę tylko rozpoczętych sesji VNC należnych od Twojego użytkownika.

ss -tlpn| grep Xvnc

17. Teraz połącz się zdalnie z CentOS Desktop za pomocą nowej sesji VNC i podaj kombinację IP:port (192.168.1.23:5903) w kliencie VNC, jak pokazano na poniższym obrazku.

Aby zatrzymać instancje serwera VNC uruchomione z uprawnieniami zalogowanego użytkownika, wydaj następujące polecenie bez żadnych uprawnień roota. To polecenie zniszczy wszystkie uruchomione instancje VNC, których właścicielem jest wyłącznie użytkownik, który je określił.

su - your_user
killall Xvnc

To wszystko! Możesz teraz uzyskać dostęp do systemu CentOS i wykonywać zadania administracyjne, korzystając z graficznego interfejsu użytkownika udostępnianego przez system operacyjny.