Vzdálené připojení k počítačům je stejně staré jako počítačové sítě. Přístup ke grafickému rozhraní (GUI) je pohodlný způsob práce na vzdálené ploše. Můžeme nechat naše grafické programy spuštěné a funkční a nemusíme mít relaci otevřenou – jednoduše se znovu připojíme, když budeme chtít.
VNC server je známý grafický relační server umožňující vzdálená připojení, která můžeme provozovat s neprivilegovaným uživatelem. Tímto způsobem může mnoho uživatelů přistupovat ke své vlastní ploše na stejném počítači vzdáleně a nebudou se vzájemně blokovat (kromě možná spotřebovávání zdrojů odstraněného počítače).
V tomto tutoriálu se naučíte:
- Jak nainstalovat požadované balíčky.
- Jak nastavit a spustit server VNC na RHEL 8.
- Jak se vzdáleně připojit ke grafické relaci.
- Jak spouštět grafické programy v relaci xterm.
Připojení VNC k RHEL8 s Remminou.
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Red Hat Enterprise Linux 8 |
Software | Server Tigervnc 1.9 |
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 |
Jak nainstalovat vnc server na RHEL 8 krok za krokem
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 repozitářích Red Hat Enterprise Linux 8. 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í uživatelem, který bude spouštět server, nikoli uživatelemroot
. 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. Připojování k tigervnc pomocí Remmina.Pokud vše funguje podle očekávání, jsme připojeni k serveru VNC a běží
Spuštění bez přerušení na dálku.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ěží.