W tym przewodniku wyjaśnimy, jak zainstalować i skonfigurować zdalny dostęp VNC w najnowszym wydaniu CentOS 7 i RHEL 7 Desktop edition za pomocą programu tigervnc-server.
VNC (Virtual Network Computing) jest protokołem serwer-klient, który pozwala kontom użytkowników na zdalne połączenie i kontrolowanie odległego systemu przy użyciu zasobów dostarczanych przez graficzny interfejs użytkownika.
W przeciwieństwie do innych dostępnych serwerów VNC, które łączą się bezpośrednio z pulpitem runtime, takich jak VNC X lub Vino, tigervnc-vncserver używa innego mechanizmu, który konfiguruje samodzielny wirtualny pulpit dla każdego użytkownika.
Wymagania
- Procedura instalacji CentOS 7
- Procedura instalacji RHEL 7
Krok 1: Zainstaluj i skonfiguruj VNC w CentOS 7
1. Tigervnc-server jest programem, który wykonuje serwer Xvnc i uruchamia równoległe sesje Gnome lub innego środowiska graficznego na pulpicie VNC.
Uruchomiona sesja użytkownika VNC może być dostępna dla tego samego użytkownika z wielu klientów VNC. Aby zainstalować serwer TigerVNC w CentOS 7, otwórz sesję Terminala i wydaj następujące polecenie z uprawnieniami roota.
$ sudo yum install tigervnc-server
2. Po zainstalowaniu programu, zaloguj się na użytkownika, na którym chcesz uruchomić program VNC i wydaj poniższe polecenie w terminalu w celu skonfigurowania hasła dla serwera VNC.
Uważaj, że hasło musi mieć co najmniej sześć znaków długości.
$ su - your_user # If you want to configure VNC server to run under this user directly from CLI without switching users from GUI$ vncpasswd
3. Następnie dodaj plik konfiguracyjny usługi VNC dla swojego użytkownika poprzez plik konfiguracyjny demona umieszczony w drzewie katalogów systemd. W celu skopiowania pliku szablonu VNC należy uruchomić poniższe polecenie z uprawnieniami roota.
Jeśli użytkownik nie posiada uprawnień sudo, należy przełączyć się bezpośrednio na konto roota lub uruchomić polecenie z konta z uprawnieniami roota.
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
4. W kolejnym kroku edytuj skopiowany plik konfiguracyjny szablonu VNC z katalogu /etc/systemd/system/ i zamień wartości tak, aby odzwierciedlały Twojego użytkownika, jak pokazano na poniższym przykładzie.
Wartość 1 po znaku @ reprezentuje numer wyświetlacza (port 5900+wyświetlacz). Ponadto, dla każdego uruchomionego serwera VNC, port 5900 będzie zwiększany o 1.
# vi /etc/systemd/system/vncserver@\:1.service
Dodaj następujące linie do pliku vncserver@:1.service.
Description=Remote desktop service (VNC)After=syslog.target network.targetType=forkingExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l my_user -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/my_user/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target
5. Po dokonaniu odpowiednich zmian w pliku usługi VNC przeładuj program inicjalizacyjny systemd, aby odebrać nowy plik konfiguracyjny vnc i uruchomić serwer TigerVNC.
Sprawdź również status 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żących do serwera VNC, uruchom polecenie ss, które jest używane w CentOS 7 do wyświetlania gniazd sieciowych. Ponieważ uruchomiłeś tylko jedną instancję serwera VNC, pierwszym otwartym portem jest 5901/TCP.
Ponownie, polecenie ss musi być wykonane z uprawnieniami roota. W przypadku, gdy uruchamiasz równolegle inne instancje VNC dla różnych użytkowników, wartość portu będzie wynosić 5902 dla drugiej, 5903 dla trzeciej itd. 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 połączenie się z serwerem VNC w systemie CentOS, należy upewnić się, że odpowiednie otwarte porty VNC są przepuszczane przez zaporę sieciową.
W przypadku, gdy uruchomiona jest tylko jedna instancja serwera VNC, wystarczy otworzyć pierwszy przydzielony port VNC: 5901/TCP, wydając poniższe polecenia, aby zastosować konfigurację zapory w trybie runtime.
# firewall-cmd --add-port=5901/tcp# firewall-cmd --add-port=5901/tcp --permanent
Krok 2: Łączenie się z pulpitem CentOS poprzez klienta VNC
8. Będąc protokołem niezależnym od platformy, zdalne połączenia VNC z graficznym interfejsem użytkownika mogą być wykonywane z prawie każdego systemu operacyjnego z GUI i wyspecjalizowanym klientem VNC.
Popularnym klientem VNC używanym w systemach operacyjnych opartych na Microsoft, w pełni kompatybilnym z linuksowym serwerem TigerVNC, jest RealVNC VNC Viewer.
Aby zdalnie połączyć się z CentOS Desktop z systemu Microsoft OS poprzez protokół VNC, należy otworzyć program VNC Viewer, dodać adres IP i numer portu serwera CentOS VNC i nacisnąć klawisz.
Po nawiązaniu połączenia VNC na ekranie powinno zostać wyświetlone ostrzeżenie, że połączenie nie jest szyfrowane, jak pokazano na poniższych zrzutach ekranu.
9. Aby ominąć ostrzeżenie, należy nacisnąć przycisk Continue, dodać hasło ustawione dla serwera VNC w punkcie 2 i powinno nastąpić zdalne połączenie z CentOS Desktop z użytkownikiem skonfigurowanym do uruchamiania instancji serwera VNC.
10. W przypadku, gdy na ekranie pojawi się nowy komunikat Authentication, a użytkownik nie ma uprawnień roota, wystarczy nacisnąć przycisk Cancel, aby kontynuować pracę z CentOS Desktop, 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ł. W celu zaszyfrowania i zabezpieczenia transferu danych VPN, należy najpierw skonfigurować bezpieczny tunel SSH i uruchomić każdy kolejny ruch VPN przez tunel SSH.
11. W celu zdalnego połączenia się z CentOS Desktop poprzez protokół VNC z innego CentOS Desktop, najpierw upewnij się, że pakiet vinagre jest zainstalowany w systemie, wydając poniższe polecenie.
$ sudo yum install vinagre
12. Aby otworzyć narzędzie vinagre, przejdź do Applications -> Utilities -> Remote Desktop Viewer, jak pokazano na poniższym zrzucie ekranu.
13. Aby zdalnie połączyć się z CentOS Desktop, kliknij na przycisk Connect, wybierz protokół VNC z listy i dodaj adres IP i port (5900+numer wyświetlacza) zdalnego serwera VNC. Należy również podać hasło dla użytkownika VNC, jak pokazano na poniższych zrzutach ekranu.
14. Innym popularnym klientem VNC dla platform opartych na Linuksie jest Remmina, jest to klient zdalnego pulpitu szczególnie używany w dystrybucjach opartych na Debianie, które posiadają środowisko graficzne GNOME.
Aby zainstalować klienta zdalnego pulpitu Remmina w dystrybucjach opartych na Debianie wydaj następujące polecenie.
$ sudo apt-get install remmina
Krok 3: Konfiguracja wielu sesji VNC w CentOS 7
15. W przypadku konieczności uruchomienia nowej równoległej sesji VNC pod tym samym użytkownikiem, otwórz konsolę Terminala, zaloguj się na użytkownika, z którym chcesz uruchomić 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 systemd VNC.
$ vncserver
16. Nowe sesje VNC otworzą następne dostępne porty oparte na VNC (w tym przykładzie 5900+3). Aby wyświetlić otwarte porty, wykonaj polecenie ss bez uprawnień roota, jak pokazano w poniższym fragmencie. Spowoduje to wyświetlenie listy tylko uruchomionych sesji VNC należących do twojego użytkownika.
$ ss -tlpn| grep Xvnc
17. Teraz, zdalnie połącz się z CentOS Desktop używając tej nowej sesji VNC, 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 tego zalogowanego użytkownika, wydaj następujące polecenie bez uprawnień roota. To polecenie zniszczy wszystkie uruchomione instancje VNC należące tylko do użytkownika, który je stwierdził.
$ su - your_user$ killall Xvnc
Read Also: Remotely Install CentOS 7 or RHEL 7 Using VNC Mode
To wszystko! Możesz teraz uzyskać dostęp do systemu CentOS 7 i wykonywać zadania administracyjne za pomocą graficznego interfejsu użytkownika dostarczanego przez system operacyjny.
.