Většinu času jako správce systému Linux spravujete své servery přes síť. Je velmi vzácné, že budete potřebovat fyzický přístup k některému z vašich spravovaných serverů. Ve většině případů vše, co potřebujete, je vzdálené SSH pro provádění vašich administrativních úkolů. V tomto článku nakonfigurujeme GUI alternativu ke vzdálenému přístupu k vašemu RHEL serveru, což je VNC. VNC vám umožňuje otevřít vzdálenou relaci grafického uživatelského rozhraní na vašem serveru a poskytnout vám tak plné grafické rozhraní dostupné z libovolného vzdáleného umístění.
V tomto tutoriálu se naučíte:
- Jak nainstalovat požadované balíčky VNC
- Jak nastavit a spustit server VNC na RHEL
- Jak se vzdáleně připojit ke grafické relaci
- Jak spouštět grafické programy v relaci xterm
Připojení VNC k RHEL
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Red Hat Enterprise Linux |
Software | TigerVNC |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Instalace a nastavení serveru VNC
Existuje mnoho správců oken, které můžeme použít se serverem VNC, ale pro účely tohoto tutoriálu nastavíme jednoduchou relaci xterm, jako xterm
je v základních úložištích Red Hat Enterprise Linux. Ukážeme však, že tento jednoduchý výchozí bod poskytuje plnou funkčnost pomocí jednoduchého triku. Všimněte si také, že existují mnohem sofistikovanější správci oken, jako je xfce
, ale to je mimo rozsah tohoto tutoriálu.
- Nejprve musíme nainstalovat požadované balíčky pro serverovou aplikaci:
# dnf install tigervnc-server xterm
- Dále musíme pro službu otevřít bránu firewall. Abychom zjistili, jaké služby jsou aktuálně povolené, uvádíme seznam povolených služeb:
# firewall-cmd --list-services cockpit dhcpv6-client ssh
Otevřete
vnc-server
služba:# firewall-cmd --permanent --zone=public --add-service vnc-server success
Použijte změnu konfigurace:
# firewall-cmd --reload
A znovu uveďte služby pro ověření:
# firewall-cmd --list-services cockpit dhcpv6-client ssh vnc-server
UPOZORNĚNÍ
Neotvírejte službu VNC vašeho počítače veřejnosti! Výše uvedené pravidlo brány firewall se provádí v omezeném prostředí a slouží pouze pro demonstrační účely. Než cokoli otevřete na internetovém serveru nebo dokonce na počítači, ujistěte se, že rozumíte rizikům. - Musíme nastavit prostředí, kde bude server běžet. V tomto příkladu je naším cílem provozovat server se zadaným uživatelem
testuser
kdo nemároot
privilegia. Upozorňujeme, že tento krok se provádí s uživatelem, který bude spouštět server, nikoliroot
. Nastavili jsme heslo, které umožní připojení (které nemá nic společného s heslem uživatele používaným sssh
):$ vncpasswd Password: Verify: Would you like to enter a view-only password (y/n)? n
V tomto příkladu nepotřebujeme mít přihlášení pouze pro zobrazení. Dále upravíme
/home/testuser/.vnc/xstartup
textový soubor pomocí textového editoru, jako jenano
. Soubor by měl být po instalaci prázdný a pro spuštěníxterm
přidáme jen minimální obsah relace na připojení. Do prázdného souboru přidáme následující řádek:xterm -geometry 1044x810+10+10 &
Upravte parametry geometrie tak, aby odpovídaly vaší obrazovce. Nyní můžeme spustit server:
$ vncserver New 'rhel8beta.lab:1 (testuser)' desktop is rhel8beta.home.hu:1 Starting applications specified in /home/testuser/.vnc/xstartup Log file is /home/testuser/.vnc/rhel8beta.lab:1.log
Jak naznačuje výstup, můžeme sledovat protokoly poskytnuté serverem v souborech protokolů pod
/home/<username>/.vnc/<hostname>:1.log
, toto jméno souboru se změní, pokud běží více než jeden VNC server (stejně jako port, který potřebujete připojit). Soubor protokolu také říká, na jakém portu server naslouchá:
vncext: Listening for VNC connections on all interface(s), port 5901
Což je výchozí port VNC.
- Pro připojení k právě spuštěnému serveru můžeme použít mnoho klientů VNC.
Remmina
je klient standardně dodávaný s nejnovějšími desktopy Gnome a dokáže zpracovávat relace SSH, RDP a VNC. Potřebujeme zadat název hostitele nebo IP adresu hostitele, na kterém běží server VNC, a také port. Níže uvedený příklad používá192.168.1.14
jako adresu a výchozí port5901
jsme našli v logfile serveru v předchozím kroku. Musíme vybrat „VNC“ jako protokol vedle pole adresy a zadat heslo, které jsme zadali pomocívncpasswd
dříve.Pokud vše funguje podle očekávání, jsme připojeni k serveru VNC a běží
xterm
, přijímání a poskytování obsahu schránky, chráněné před selháním sítě.top
příklad níže poběží bez přerušení, pokud se odpojíme od relace a znovu se připojíme později. - I když tyto kroky v podstatě ukazují, jak nastavit server VNC a připojit se k němu, nedává příliš smysl spouštět
top
na vzdálenémxterm
session, protože bychom to mohli udělat s mnohem menším úsilím s ssh a session serverem jakoscreen
. Chcete-li vidět sílu takového jednoduchého nastavení xterm, jednoduše napištegedit
na vzdálené konzole xterm (za předpokladu, že je nainstalována plocha Gnome).
Spouštění grafických programů v rámci xterm
V gedit se zobrazí prázdný dokument, stejně jako jakýkoli grafický program, když se spustí z příkazového řádku. Všimněte si, že dokument, který je upravován vzdáleně, a program, který jej drží otevřený, jsou také chráněny relací VNC. Výpadek sítě to neovlivní, můžeme se jednoduše znovu připojit a pokračovat v práci na textu, i když na našem klientském počítači dojde k neodstranitelné chybě a my jsme zapomněli uložit svou práci na posledních několik hodin. Server VNC přirozeně nechrání před selháním počítače, na kterém běží.
Odstraňování problémů
Pokud se zobrazí chyba „připojení odmítnuto“, je to pravděpodobně problém s nastavením brány firewall. Ujistěte se, že jste nakonfigurovali přístup pro VNC pomocí následujících příkazů:
# firewall-cmd --permanent --zone=public --add-service vnc-server # firewall-cmd --reload
V opačném případě to může být zařízení mezi dvěma systémy, které blokuje připojení, nebo jen problém se směrováním v síti.
Pokud se pokusíte připojit k serveru VNC a skončíte pouze s černou obrazovkou, je to pravděpodobně proto, že pro VNC neexistuje žádný správce oken. Ve výše uvedených pokynech ukazujeme, jak nakonfigurovat xterm
pro tento účel. Můžete také použít plnohodnotného správce oken jako GNOME nebo XFCE, ale musíte něco nastavit. Ujistěte se, že je xterm nakonfigurován jako správce oken VNC podle výše uvedených pokynů.