VNC je systém, který umožňuje vzdáleně ovládat jiný počítač. Umožňuje vám předávat vstupy z myši a klávesnice, jako byste fyzicky seděli před systémem, i když ve skutečnosti můžete být na druhém konci světa.
V této příručce projdeme kroky k nastavení serveru VNC na vašem systému Ubuntu 20.04. Až budeme hotovi, budete moci přistupovat ke svému systému vzdáleně odkudkoli za předpokladu, že váš klientský systém a server VNC mají připojení k internetu.
V tomto tutoriálu se naučíte:
- Jak nainstalovat a nakonfigurovat TightVNC Server
- Jak nainstalovat a nakonfigurovat správce plochy XFCE
- Jak se připojit k našemu VNC serveru pomocí TightVNC Viewer
- Jak tunelovat připojení VNC přes SSH
- Jak spravovat více počítačů VNC pomocí skriptu Systemd
Připojení k serveru VNC
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | Nainstalováno nebo upgradováno Ubuntu 20.04 Focal Fossa |
Software | TightVNC Server, správce plochy XFCE, prohlížeč TightVNC |
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 serveru VNC
Nejprve budeme muset nainstalovat několik balíčků. Existuje několik možností pro software serveru VNC, ale v tomto tutoriálu budeme používat server TightVNC Server. Spolu s VNC potřebujeme také grafickou plochu. XFCE je dobrá volba, takže to je to, co zde pokryjeme.
- Začněte otevřením terminálu a zadáním následujícího příkazu pro instalaci serveru TightVNC a základních souborů správce desktopů XFCE:
$ sudo apt install tightvncserver XFCE4 XFCE4-goodies
- Po dokončení instalace balíčků musíme nakonfigurovat uživatelské jméno a heslo, které bude klient používat pro připojení k serveru VNC. Vytvořte heslo pomocí tohoto příkazu:
$ vncpasswd
- Dále nakonfigurujeme VNC tak, aby spustilo desktopové prostředí XFCE, když se připojí klient. Použijte nano nebo textový editor podle vašich preferencí (např. Atom, Sublime) k vytvoření následujícího souboru:
$ nano ~/.vnc/xstartup
- Vložte následujících několik řádků a poté uložte změny a ukončete soubor:
konfigurační soubor xstartup#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS startxfce4 &
- Po provedení těchto změn upravte oprávnění souboru tak, aby byl spustitelný:
$ chmod +x ~/.vnc/xstartup
Spustit server VNC
VNC běží jako služba na vašem systému. Aby se klienti mohli připojit, musí VNC server samozřejmě běžet a naslouchat pokusům o příchozí připojení. Po dokončení konfigurace jsme připraveni spustit VNC server pomocí následujícího příkazu:
$ vncserver
Pokud váš terminál vrací nějaký výstup jako na obrázku níže, váš VNC server běží správně.
Spusťte VNC server
VNC použije nový port pro každou vytvořenou vzdálenou plochu. V tomto okamžiku by váš systém měl naslouchat na portu 5901
pro příchozí spojení VNC. Můžete to vidět sami pomocí ss -ltn
příkaz:
$ ss -ltnVNC naslouchající na portu 5901
Pokud máte povolenou bránu firewall UFW, budete muset otevřít port 5901
takže neblokuje příchozí připojení VNC:
$ sudo ufw allow from any to any port 5901 proto tcp Rule added Rule added (v6)
Připojte se k serveru VNC
Existuje mnoho možností pro klienty VNC a každý z nich by měl být schopen připojení k vašemu nově spuštěnému serveru VNC. Pokud ještě nemáte preferovaného klienta, který byste mohli použít, následujte s námi pokyny pro připojení k serveru VNC pomocí prohlížeče TightVNC Viewer.
- Začněte instalací
xtightvncviewer
balíček na vašem klientském systému Ubuntu:$ sudo apt install xtightvncviewer
- Jakmile je klient VNC nainstalován, můžete použít
vncviewer
příkaz, za kterým následuje buď název hostitele nebo IP adresa serveru VNC, abyste se k němu mohli připojit.$ vncviewer linuxconfig.org:1
Zadejte své heslo, které jsme vytvořili dříve při nastavování serveru VNC. Pokud vše proběhlo v pořádku, zobrazí se vám desktopová relace XFCE spuštěná na vzdáleném serveru VNC systému Ubuntu:
Připojte se k serveru VNC
Vytunelovat VNC přes SSH
Pro další zabezpečení můžete tunelovat připojení VNC přes SSH na vašem serveru VNC. Samozřejmě za předpokladu, že máte přístup SSH na serveru VNC. Pokud chcete větší zabezpečení, postupujte podle těchto kroků:
- Pokud ještě nemáte nainstalované SSH, je to docela zřejmý předpoklad, aby to fungovalo:
$ sudo apt install ssh
- Dále vytvořte tunel SSH na místním portu 5901 vedoucí ke vzdálenému portu 5901 na vašem serveru VNC. V následujícím příkazu se ujistěte, že jste nahradili
user1
alinuxconfig
s uživatelským jménem a názvem hostitele vašeho serveru VNC:$ ssh -L 5901:127.0.0.1:5901 -N -f -l user1 linuxconfig
Výše uvedený příkaz otevře místní port
5901
na síťovém rozhraní zpětné smyčky localhost127.0.0.1
:$ ss -ltn State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 128 127.0.0.1:6010 0.0.0.0:* LISTEN 0 128 127.0.0.1:6011 0.0.0.0:* LISTEN 0 128 0.0.0.0:38299 0.0.0.0:* LISTEN 0 128 127.0.0.1:5901 0.0.0.0:*
- Dále použijte místní port
5901
pro připojení ke vzdálenému serveru VNC přes tunel SSH:$ vncviewer localhost:1
Spouštěcí skript systému serveru VNC
Zatímco tato konfigurace funguje, můžete mít scénář, kdy potřebujete spravovat více relací plochy VNC. V takovém případě to může usnadnit vytvoření spouštěcího skriptu systemd.
Pomocí nano nebo jiného textového editoru vytvořte následující soubor:
$ sudo nano /etc/systemd/system/[email protected]
Po otevření souboru vložte následující řádky a nahraďte user1
uživatelské jméno s uživatelským jménem vašeho uživatele VNC na řádku 7 a řádku 10. Volitelně změňte nastavení rozlišení obrazovky a použijte jiný vncserver
možnosti nebo argumenty:
[Unit]
Description=Systemd VNC server startup script for Ubuntu 20.04
After=syslog.target network.target
[Service]
Type=forking
User=user1
ExecStartPre=-/usr/bin/vncserver -kill :%i &> /dev/null
ExecStart=/usr/bin/vncserver -depth 24 -geometry 800x600 :%i
PIDFile=/home/user1/.vnc/%H:%i.pid
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Spouštěcí soubor Systemd Poté znovu načtěte Systemd, aby se změny projevily:
$ sudo systemctl daemon-reload
Spuštění plochy VNC 1
, zadejte:
$ sudo service vncserver@1 start
Zastavení plochy VNC 1
, proveďte:
$ sudo service vncserver@1 stop
Následující linuxový příkaz povolí plochu VNC 1
spustit po restartu:
$ sudo systemctl enable vncserver@1
Spuštění plochy VNC 2
, zadejte:
$ sudo service vncserver@2 start
A tak dále…
Závěr
V této příručce jsme viděli, jak nainstalovat a nakonfigurovat TightVNC Server na Ubuntu 20.04 Focal Fossa. Nainstalovali jsme správce plochy XFCE pro naše klienty VNC, aby je mohli používat, když se připojují.
Také jsme se naučili, jak používat TightVNC Viewer pro vzdálené připojení k našemu VNC serveru. Kromě toho jsme se také zabývali tím, jak tunelovat připojení VNC přes SSH pro vyšší zabezpečení, a používat vlastní spouštěcí skript Systemd k efektivní správě více připojení VNC desktopu.