V tomto návodu vysvětlíme, jak nainstalovat a nakonfigurovat vzdálený přístup VNC v nejnovější verzi systémů CentOS 7 a RHEL 7 Desktop edition pomocí programu tigervnc-server.
VNC (Virtual Network Computing) je protokol server-klient, který umožňuje uživatelským účtům vzdálené připojení a ovládání vzdáleného systému pomocí prostředků poskytovaných grafickým uživatelským rozhraním.
Na rozdíl od jiných dostupných serverů VNC, které se připojují přímo k běhové ploše, jako je VNC X nebo Vino, používá tigervnc-vncserver jiný mechanismus, který pro každého uživatele konfiguruje samostatnou virtuální plochu.
Požadavky
- Postup instalace systému CentOS 7
- Postup instalace systému RHEL 7
Krok 1: Instalace a konfigurace VNC v systému CentOS 7
1. Tigervnc-server je program, který spouští server Xvnc a spouští paralelní relace prostředí Gnome nebo jiného desktopového prostředí na ploše VNC.
K jedné spuštěné relaci VNC může stejný uživatel přistupovat z více klientů VNC. Chcete-li nainstalovat server TigerVNC v systému CentOS 7, otevřete relaci terminálu a zadejte následující příkaz s právy roota.
$ sudo yum install tigervnc-server
2. Poté, co jste program nainstalovali, přihlaste se pod uživatelem, pod kterým chcete program VNC spustit, a zadejte níže uvedený příkaz v terminálu, abyste nastavili heslo pro server VNC.
Uvědomte si, že heslo musí být dlouhé alespoň šest znaků.
$ 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. Dále přidejte konfigurační soubor služby VNC pro svého uživatele prostřednictvím konfiguračního souboru démona umístěného v adresářovém stromu systemd. Pro zkopírování souboru šablony VNC je třeba spustit následující příkaz s právy roota.
Pokud vašemu uživateli nejsou udělena práva sudo, přepněte se buď přímo na účet roota, nebo příkaz spusťte z účtu s právy roota.
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
4. V případě, že je váš uživatel oprávněn pracovat se službou VNC, spusťte následující příkaz. V dalším kroku upravte zkopírovaný konfigurační soubor šablony VNC z adresáře /etc/systemd/system/ a nahraďte hodnoty tak, aby odpovídaly vašemu uživateli, jak je uvedeno v následující ukázce.
Hodnota 1 za znakem @ představuje číslo displeje (port 5900+display). Také pro každý spuštěný server VNC bude port 5900 zvýšen o 1.
# vi /etc/systemd/system/vncserver@\:1.service
Přidejte následující řádky do souboru 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. V případě, že se jedná o server VNC, přidejte následující řádky. Po provedení příslušných změn v souboru služby VNC znovu načtěte inicializační program systemd, aby převzal nový konfigurační soubor vnc a spustil server TigerVNC.
Také zkontrolujte stav služby VNC a povolte démona VNC v celém systému zadáním níže uvedených příkazů.
# systemctl daemon-reload# systemctl start vncserver@:1# systemctl status vncserver@:1# systemctl enable vncserver@:1
6. Chcete-li zobrazit seznam otevřených portů ve stavu naslouchání, které vlastní server VNC, spusťte příkaz ss, který se v systému CentOS 7 používá k zobrazení síťových soketů. Protože jste spustili pouze jednu instanci serveru VNC, první otevřený port je 5901/TCP.
Příkaz ss musí být opět spuštěn s právy roota. V případě, že paralelně spouštíte další instance VNC pro různé uživatele, bude hodnota portu pro druhou instanci 5902, pro třetí 5903 atd. Porty 6000+ slouží k tomu, aby se aplikace X mohly připojit k serveru VNC.
# ss -tulpn| grep vnc
7. Aby se externí klienti VNC mohli připojit k serveru VNC v systému CentOS, je třeba zajistit, aby přes bránu firewall prošly správné otevřené porty VNC.
V případě, že je spuštěna pouze jedna instance serveru VNC, stačí otevřít první přidělený port VNC:
# firewall-cmd --add-port=5901/tcp# firewall-cmd --add-port=5901/tcp --permanent
Krok 2: Připojení k pracovní ploše systému CentOS prostřednictvím klienta VNC
8. Protože se jedná o protokol nezávislý na platformě, lze vzdálené připojení pomocí grafického uživatelského rozhraní VNC provádět téměř z jakéhokoli operačního systému s grafickým uživatelským rozhraním a specializovaným klientem VNC.
Oblíbeným klientem VNC používaným v operačních systémech založených na platformě Microsoft, který je plně kompatibilní se serverem Linux TigerVNC, je prohlížeč VNC RealVNC.
Chcete-li se vzdáleně připojit k pracovní ploše systému CentOS z operačního systému Microsoft prostřednictvím protokolu VNC, otevřete program VNC Viewer, přidejte IP adresu a číslo portu serveru CentOS VNC a stiskněte klávesu .
Po navázání připojení VNC by se na obrazovce mělo zobrazit upozornění, že připojení není šifrované, jak je znázorněno na níže uvedených snímcích obrazovky.
9. Na obrazovce se zobrazí upozornění, že připojení není šifrované. Abyste obešli varování, stiskněte tlačítko Pokračovat, přidejte nastavení hesla pro VNC server v bodě 2 a měli byste být vzdáleně připojeni k CentOS Desktop s uživatelem nastaveným pro spuštění instance VNC serveru.
10. V případě, že se na obrazovce objeví nová zpráva o ověřování a váš uživatel nemá práva roota, stačí stisknout tlačítko Zrušit a pokračovat na plochu CentOS, jak je znázorněno na následujícím snímku obrazovky.
Uvědomte si, že navázaná komunikace VNC mezi serverem a klientem a veškerá vyměňovaná data (kromě hesla) probíhají přes nešifrovaný kanál. Chcete-li šifrovat a zabezpečit přenos dat VPN, musíte nejprve nastavit zabezpečený tunel SSH a veškerý následný provoz VPN spouštět přes tento tunel SSH.
11. V případě, že je přenos dat VPN šifrován a zabezpečen, je třeba nastavit zabezpečený tunel SSH. Chcete-li se vzdáleně připojit k počítači CentOS prostřednictvím protokolu VNC z jiného počítače CentOS, nejprve se ujistěte, že je v systému nainstalován balíček vinagre, a to zadáním níže uvedeného příkazu.
$ sudo yum install vinagre
12. Chcete-li otevřít nástroj vinagre, přejděte do nabídky Aplikace -> Nástroje -> Prohlížeč vzdálené plochy, jak je znázorněno na níže uvedeném snímku obrazovky.
13. Chcete-li otevřít nástroj vinagre, přejděte do nabídky Aplikace -> Nástroje -> Prohlížeč vzdálené plochy. Chcete-li se vzdáleně připojit k pracovní ploše systému CentOS, stiskněte tlačítko Připojit, vyberte ze seznamu protokol VNC a přidejte adresu IP a port (5900+číslo zobrazení) vzdáleného serveru VNC. Zadejte také nastavení hesla pro uživatele VNC, jak je znázorněno na následujících snímcích obrazovky.
14. Zadejte heslo pro uživatele VNC. Dalším populárním VNC klientem pro platformy založené na Linuxu je Remmina, je klient vzdálené plochy je používán zejména v distribucích založených na Debianu, které používají desktopové prostředí GNOME.
Pro instalaci klienta vzdálené plochy Remmina v distribucích založených na Debianu vydejte následující příkaz.
$ sudo apt-get install remmina
Krok 3: Konfigurace více relací VNC v CentOS 7
15. V případě, že potřebujete spustit novou paralelní relaci VNC pod stejným uživatelem, otevřete terminálovou konzolu, přihlaste se pod uživatelem, pod kterým chcete spustit novou relaci VNC, a proveďte následující příkaz.
Při prvním spuštění serveru budete vyzváni k zadání nového hesla pro tuto relaci. Uvědomte si však, že tato relace bude spuštěna s právy vašeho přihlášeného uživatele a nezávisle na spuštěné relaci serveru systemd VNC.
$ vncserver
16. Při spuštění nové relace VNC je nutné zadat heslo. Nové relace VNC otevřou další dostupné porty založené na VNC (v tomto příkladu zobrazení 5900+3). Chcete-li zobrazit otevřené porty, spusťte příkaz ss bez práv roota, jak je znázorněno v následujícím úryvku. Zobrazí se pouze seznam spuštěných relací VNC, které vlastní váš uživatel.
$ ss -tlpn| grep Xvnc
17. Nyní se pomocí této nové relace VNC vzdáleně připojte k pracovní ploše CentOS a v klientovi VNC zadejte kombinaci IP:port (192.168.1.23:5903), jak je znázorněno na následujícím obrázku.
Chcete-li zastavit instance serveru VNC spuštěné s právy tohoto přihlášeného uživatele, zadejte následující příkaz bez práv roota. Tento příkaz zničí všechny spuštěné instance VNC, jejichž vlastníkem je pouze uživatel, který je uvedl.
$ su - your_user$ killall Xvnc
Přečtěte si také: To je vše: Vzdálená instalace systému CentOS 7 nebo RHEL 7 pomocí režimu VNC
To je vše! Nyní můžete přistupovat k systému CentOS 7 a provádět úlohy správy pomocí grafického uživatelského rozhraní poskytovaného operačním systémem.