Maybaygiare.org

Blog Network

Instalacja i konfiguracja serwera VNC na CentOS 7

13.07.2020

w tym przewodniku przyjrzymy się, jak zainstalować i skonfigurować serwer VNC na CentOS 7.x system operacyjny umożliwiający zdalne połączenia z dowolnymi klientami VNC, takimi jak TightVNC, RealVNC i inne. W szczególności zrobimy to za pomocą oprogramowania serwera TigerVNC, bezpłatnego narzędzia, które umożliwia korzystanie z samodzielnego pulpitu wirtualnego.

wprowadzenie

VNC (Virtual Network Computing) jest protokołem klient-serwer, który umożliwia komputerowi klienckiemu (z klientem VNC) podłączenie i sterowanie komputerem zdalnym (działającym na serwerze VNC). Oprogramowanie zostało opracowane przez Olivetti & Oracle research lab w Cambridge w Wielkiej Brytanii, a jego kod źródłowy jest nadal aktualny i dostępny na licencji General Public License (GNU).

w zależności od oprogramowania serwera klient VNC połączy się z aktywnym pulpitem (na przykład jako programy TeamViewer lub AnyDesk) lub samodzielnym pulpitem wirtualnym (takim jak protokół zdalnego pulpitu Windows RDP). Ten ostatni, być może bardziej wydajny i bezpieczny, zwłaszcza jeśli trzeba zarządzać komputerem serwera, ponieważ każda sesja będzie unikalnym środowiskiem, skonfigurowanym z uprawnieniami i prawami podłączonego użytkownika. Dlatego wybieramy TigerVNC, który uruchamia równoległe sesje środowiska graficznego komputera (GNOME, KDE lub inny GUI): oznacza to, że dla każdego połączenia zostanie utworzony wirtualny pulpit — dokładnie tego chcemy.

instalacja TigerVNC

teraz zobaczmy, jak możemy zainstalować i skonfigurować TigerVNC na CentOS. Pierwszą rzeczą do zrobienia jest zainstalowanie programu serwera TigerVNC poprzez otwarcie sesji terminala i wpisanie następującego polecenia z uprawnieniami roota:

$ sudo yum install tigervnc-server

natychmiast po tym, musisz utworzyć osobnego użytkownika VNC, z którego zostanie wykonane połączenie (z dedykowanym hasłem). Aby to zrobić, wpisz następujące:

$ sudo adduser vncuser
$ sudo passwd vncuser

ważne: nigdy nie rób tego jako użytkownik root — będzie to stanowić poważne zagrożenie dla bezpieczeństwa systemu. Najlepszym rozwiązaniem byłoby pozostawienie użytkownika root bez dostępu do VNC i utworzenie dedykowanego konta z ograniczonymi prawami.

Po utworzeniu vncuser i ustawieniu hasła do logowania, musisz również ustawić unikalne hasło VNC dla tego użytkownika. Polecenie do tego celu to:

$ su - vncuser
$ vncpasswd

(pierwsza linia może zostać pominięta, jeśli jesteśmy wcześniej zalogowani jako vncuser).

następną rzeczą do zrobienia jest utworzenie pliku konfiguracyjnego VNC dla vncuser. Najszybszym sposobem na to jest skopiowanie udostępnionego pliku szablonu VNC znajdującego się w folderze/lib/ systemd/system/, a następnie zmiana go:

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

liczba 1 dodana do nowej nazwy pliku jest numerem wyświetlania, który będzie używany dla tej konkretnej instancji usługi. Jest to ważne, aby wiedzieć, ponieważ określi również port TCP, który będzie używany przez nasz serwer VNC, równy 5900 + numer wyświetlacza . Pierwszym będzie 5901, następnie 5902 i tak dalej.

natychmiast po skopiowaniu należy edytować nowy plik za pomocą Vi, Nano lub innego edytora tekstu i zastąpić go nazwą użytkownika utworzonego ostatnio (w naszym przypadku vncuser). Tak powinien wyglądać plik po aktualizacji (z wyjątkiem długiej komentowanej części na początku):


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

gdy to zrobisz, możesz ponownie załadować demona VNC i uruchomić vncserver @ 1 za pomocą następujących poleceń:

$ systemctl daemon-reload
$ systemctl start vncserver@:1

zanim przejdziesz dalej, sprawdź, czy usługa jest uruchomiona, wprowadzając polecenie status systemctl:

$ systemctl status vncserver@:1

i utwórz dowiązanie symboliczne tak, aby zawsze działało przy starcie systemu za pomocą następującego polecenia:

$ systemctl enable vncserver@:1

kolejnym testem, który możesz wykonać przed próbą połączenia z serwerem, jest sprawdzenie aktywnych gniazd sieciowych za pomocą thesscommand: jeśli wszystko działa poprawnie, powinieneś zobaczyć, że serwer VNC działa i używa portu TCP 5901. Wykonaj polecenie:

$ ss -tulpn| grep vnc

wynik powinien być następujący:

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))

Jeśli widzisz to, to wszystko jest poprawnie skonfigurowane.

konfiguracja zapory

ponieważ nasza usługa VNC nasłuchuje na porcie TCP 5901, musisz mieć pewność, że taki port jest otwarty i Dostępny dla klientów zewnętrznych. Dlatego, jeśli masz zainstalowaną zaporę sieciową, musisz utworzyć odpowiednią regułę, która pozwoli klientom VNC łączyć się.

Liczba portów do otwarcia zależy od liczby instancji serwera VNC, których potrzebujesz. W naszym scenariuszu zrobiliśmy tylko 1, więc wystarczy otworzyć pierwszy dedykowany port VNC: TCP 5901, jak już powiedzieliśmy. Polecenie otwarcia tego portu w Firewalld:

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

nie będzie zbędne wspominanie, że można również ograniczyć ten port do określonych grup, adresów IP, kart sieciowych lub innych prostych lub złożonych reguł zapory.

instalowanie graficznego interfejsu użytkownika (GUI)

Jeśli masz już zainstalowane środowiska graficzne GNOME, KDE lub inne, możesz pominąć ten krok. W przeciwnym razie musisz zainstalować jedną z nich: Serwer TigerVNC uruchomi równoległą instancję tego środowiska graficznego dla każdej sesji logowania, co oznacza, że musimy mieć przynajmniej jeden GUI.

GNOME

Jeśli chcesz mieć świetny, ale ciężki interfejs GNOME, wpisz poniżej:

$ sudo yum groupinstall "GNOME Desktop"

Xfce

Jeśli potrzebujesz lekkiej alternatywy, możemy zaoferować Xfce, bezpłatne, otwarte środowisko dla platform uniksopodobnych, które świetnie współpracuje z TigerVNC. GNOME działa również świetnie, ale jest dość zasobochłonne: jeśli chcesz oszczędzać zasoby na swoim serwerze, Xfce może być najlepszym wyborem. Aby go zainstalować, wpisz:

$ yum install epel-release
$ yum groupinstall xfce

dodatkowe ustawienia dla Xfce

Jeśli zdecydujesz się użyć Xfce, będziesz musiał również zmodyfikować plik, który został uruchomiony podczas uruchamiania sesji VNC. Aby to zrobić, Edytuj plik /home/<użytkownik>/.vnc/xstartup I zmienić wpis exec (Zwykle linia 4) z etc/X11/xinit/xinitrc na startxfce4, jak pokazano poniżej:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
vncserver -kill $DISPLAY

połączenie klienta VNC

teraz, gdy wszystko jest skonfigurowane, możemy spróbować połączyć się z naszą usługą VNC za pomocą klienta VNC, takiego jak TightVNC, UltraVNC lub RealVNC i zobacz, co się stanie. Pamiętaj, aby podać port TCP 5901 (jeśli postępujesz zgodnie z naszym przewodnikiem).

Możliwe problemy

Jeśli twój Klient nie może nawiązać działającego połączenia VNC, musisz sprawdzić, co następuje:

1. Problemy z połączeniem-konfiguracja zapory: jeśli widzisz wyskakujące błędy, których Klient nie może połączyć się ze zdalnym hostem, musisz sprawdzić konfigurację sieci i zapory, aby upewnić się, że nie ma problemów z blokowaniem, które mogłyby uniemożliwić klientowi łączenie się z portem serwera TCP 5901.

2. Czarny ekran z myszką-aktualizacja YUM lub ponowna instalacja GUI: jeśli widzisz czarny ekran z działającym kursorem myszy, prawdopodobnie oznacza to, że połączenie VNC działa dobrze, ale jest coś, co uniemożliwia prawidłowe uruchomienie GUI pulpitu. Do korekty:

  • Uruchom aktualizację yum, aby zainstalować najnowsze wersje TigerVNC i samego GUI. Pamiętaj, aby śledzić wszelkie problemy, które występują podczas fazy instalacji.
  • Odinstaluj i zainstaluj ponownie GUI za pomocą polecenia yum remove / Yum group remove i yum groupinstall ponownie. Jeśli nadal nic nie działa, możesz spróbować zainstalować inny GUI.
19703 Claymont 2093 Philadelphia Pike #2345, USA

+1 302 498-83-59

700 300

it Grad New York BV

19703 Claymont 2093 Philadelphia Pike #2345, USA

+1 302 498-83-59

700 300

it Grad Nowy Jork bw

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.