Úvod
Virtual Network Computing (VNC) je systém připojení, který umožňuje používat klávesnici a myš k interakci s grafickým prostředím na vzdáleném serveru. Usnadňuje správu souborů, softwaru a nastavení na vzdáleném serveru uživatelům, kteří ještě nejsou s příkazovým řádkem spokojeni
V této příručce nastavíte server VNC na serveru Debian 10 a připojíte se k němu bezpečně přes tunel SSH. Použijete rychlý a lehký balíček dálkového ovládání TightVNC. Tato volba zajistí, že naše připojení VNC bude hladké a stabilní i při pomalejším připojení k internetu.
Krok 1 – Instalace pracovního prostředí a serveru VNC
Na serveru aktualizujte seznam balíčků:$ sudo apt update
Nainstalujte si na svůj počítač desktopové prostředí Xfce:$ sudo apt install xfce4 xfce4-goodies
Po dokončení instalace nainstalujte TightVNC server:$ sudo apt install tightvncserver
K dokončení počáteční konfigurace serveru VNC po instalaci použijte příkaz vncserver
k nastavení zabezpečeného hesla a vytvoření počátečních konfiguračních souborů:$ vncserver
Budete vyzváni k zadání a ověření hesla pro vzdálený přístup k vašemu vps serveru:Výstup
You will require a password to access your desktops.
Password:
Verify:
Heslo musí být dlouhé od šesti do osmi znaků.
Hesla více než 8 znaků budou automaticky zkrácena.
Po ověření hesla budete mít možnost vytvořit heslo pouze pro zobrazení. Uživatelé, kteří se přihlásí pomocí hesla pouze pro zobrazení, nebudou moci ovládat instanci VNC pomocí myši nebo klávesnice.
Toto je užitečná možnost, pokud chcete něco ukázat ostatním lidem, kteří používají váš VNC server, ale to není nutné.Výstup
Would you like to enter a view-only password (y/n)? n
xauth: file /home/jakub/.Xauthority does not exist
New 'X' desktop is vas_hostname:1
Creating default startup script /home/jakub/.vnc/xstartup
Starting applications specified in /home/jakub/.vnc/xstartup
Log file is /home/jakub/.vnc/vas_hostname:1.log
Nyní nakonfigurujeme server VNC.
Krok 2 – Konfigurace VNC serveru
VNC server musí vědět, které příkazy se mají spustit při spuštění. Konkrétně VNC potřebuje vědět, ke které grafické ploše by se měl připojit.
Tyto příkazy jsou umístěny v konfiguračním souboru nazvaném xstartup
ve složce .vnc
ve vašem domovském adresáři. Spouštěcí skript byl vytvořen, když jste v předchozím kroku spustili příkaz vncserver
, ale vytvoříme si vlastní, abychom spustili plochu Xfce.
$ vncserver -kill :1
Výstup by měl vypadat takto, i když uvidíte jiný PID:Výstup
Killing Xtightvnc process ID 17648
Před úpravou souboru xstartup
zálohujte originál:$ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
Nyní vytvořte nový soubor xstartup
a otevřete jej v textovém editoru:$ nano ~/.vnc/xstartup
Příkazy v tomto souboru jsou prováděny automaticky při každém spuštění nebo restartování VNC serveru. Potřebujeme VNC, abychom spustili naše desktopové prostředí, pokud ještě nebylo spuštěno. Přidejte do souboru tyto příkazy:#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
Aby se zajistilo, že server VNC bude schopen tento nový spouštěcí soubor správně používat, musíme jej spustit.$ sudo chmod +x ~/.vnc/xstartup
Nyní restartujte VNC server:$ vncserver
Uvidíte výstup podobný tomuto:Výstup
New 'X' desktop is your_hostname:1
Starting applications specified in /home/jakub/.vnc/xstartup
Log file is /home/jakub/.vnc/vas_hostname:1.log
Když je konfigurace hotová, připojme se k serveru z našeho místního počítače.
Krok 3 – Bezpečné připojení VNC plochy
Samotný VNC při připojení nepoužívá zabezpečené protokoly. K bezpečnému připojení k našemu serveru použijeme tunel SSH a potom řekneme našemu klientovi VNC, aby tento tunel používal spíše než přímé připojení.
Vytvořte připojení SSH na místním počítači, které bezpečně přepne na připojení localhost pro VNC. Můžete to provést prostřednictvím terminálu v systému Linux nebo MacOS pomocí následujícího příkazu:
$ ssh -L 5901:127.0.0.1:5901 -C -N -l jakub ip_vašeho_vps
Nyní se můžeme připojit k VNC.
Připojíme se za pomocí aplikace VeNCrypt Viewer.
Host: ip_vašeho_vps:5901
Heslo: krok 1
Pokud Vám nebude fungovat, zkuste povolit ještě firewall,ufw allow 5901
ufw allow vnc
Snad Vám návod pomohl, pokud máte nějaké připomínky nebo problém, klidně mě kontaktujte.
– Jakub Šarm