Virtual Network Computing (VNC) je grafický systém pro sdílení pracovní plochy, který vám umožňuje používat klávesnici a myš k dálkovému ovládání jiného počítače. Je to open source alternativa k Microsoft remote desktopprotocol (RDP).
Tento článek vysvětluje, jak nainstalovat a nakonfigurovat server VNC na Ubuntu 20.04. Ukážeme vám také, jak se bezpečně připojit k serveru VNC prostřednictvím tunelu SSH.
Instalace desktopového prostředí #
Servery Ubuntu jsou spravovány z příkazového řádku a ve výchozím nastavení nemají nainstalované desktopové prostředí. Pokud používáte desktopovou verzi Ubuntu, tento krok přeskočte.
V repozitářích Ubuntu jsou k dispozici různá desktopová prostředí. Jednou z možností je nainstalovat Gnome, což je výchozí desktopové prostředí v Ubuntu 20.04. Další možností je nainstalovat Xfce. Jedná se o rychlé, stabilní a lehké desktopové prostředí, díky kterému je ideální pro použití na vzdáleném serveru.
V této příručce nainstalujeme Xfce. Zadejte následující příkazy jako uživatel s právy sudo:
sudo apt updatesudo apt install xfce4 xfce4-goodies
V závislosti na vašem systému může stahování a instalace balíčků Xfce nějakou dobu trvat.
Instalace serveru VNC #
V úložištích Ubuntu je k dispozici několik různých serverů VNC, jako jsou TightVNC, TigerVNC a x11vnc. Každý server VNC má různé silné a slabé stránky, pokud jde o rychlost a zabezpečení.
Nainstalujeme TigerVNC. Jedná se o aktivně udržovaný vysoce výkonný VNC server. Pro instalaci balíčku zadejte následující příkaz:
sudo apt install tigervnc-standalone-server Konfigurace přístupu VNC #
Jakmile je server VNC nainstalován, dalším krokem je vytvoření počáteční uživatelské konfigurace a nastavení hesla.
Nastavte uživatelské heslo pomocí vncpasswd příkaz. Při spouštění níže uvedeného příkazu nepoužívejte sudo:
vncpasswd Budete vyzváni k zadání a potvrzení hesla a zda jej chcete nastavit jako heslo pouze pro prohlížení. Pokud se rozhodnete nastavit heslo pouze pro zobrazení, uživatel nebude moci komunikovat s instancí VNC pomocí myši a klávesnice.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
Soubor s hesly je uložen v ~/.vnc adresář, který se vytvoří, pokud není přítomen.
Dále musíme nakonfigurovat TigerVNC pro použití Xfce. Chcete-li tak učinit, vytvořte následující soubor:
~/.vnc/xstartupnano ~/.vnc/xstartup #!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
Uložte a zavřete soubor. Výše uvedené příkazy se automaticky provádějí při každém spuštění nebo restartu serveru TigerVNC.
~/.vnc/xstartup soubor také musí mít oprávnění ke spuštění. Použijte chmod příkaz pro nastavení oprávnění k souboru:
chmod u+x ~/.vnc/xstartup
Pokud potřebujete předat serveru VNC další možnosti, vytvořte soubor s názvem config a přidejte jednu možnost na řádek. Zde je příklad:
geometry=1920x1080
dpi=96
Nyní můžete spustit VNC server pomocí vncserver příkaz:
vncserver New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com
Starting applications specified in /home/linuxize/.vnc/xstartup
Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.
Všimněte si :1 za názvem hostitele ve výstupu výše. Toto označuje číslo portu zobrazení, na kterém běží server vnc. V tomto příkladu server běží na portu TCP 5901 (5900+1). Pokud vytvoříte druhou instanci pomocí vncserver poběží na dalším volném portu, tj. :2 , což znamená, že server běží na portu 5902 (5900+2).
Je důležité si pamatovat, že při práci se servery VNC :X je zobrazovací port, který odkazuje na 5900+X .
Seznam všech aktuálně spuštěných relací VNC získáte zadáním:
vncserver -list TigerVNC server sessions:
X DISPLAY # RFB PORT # PROCESS ID
:1 5901 5710
Než budete pokračovat dalším krokem, zastavte instanci VNC pomocí vncserver příkaz s -kill volba a číslo serveru jako argument. V tomto příkladu server běží na portu 5901 (:1 ), takže to zastavíme pomocí:
vncserver -kill :1 Killing Xtigervnc process ID 5710... success!
Vytvoření souboru jednotky Systemd #
Namísto ručního spouštění relace VNC vytvořte soubor systemd unit, abyste mohli spouštět, zastavovat a restartovat službu VNC podle potřeby.
Otevřete textový editor a zkopírujte a vložte do něj následující konfiguraci. Nezapomeňte změnit uživatelské jméno na řádku 7 tak, aby odpovídalo vašemu uživatelskému jménu.
sudo nano /etc/systemd/system/[email protected] /etc/systemd/system/[email protected][Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=linuxize
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target Uložte a zavřete soubor.
Informujte systemd, že je vytvořen nový soubor jednotky:
sudo systemctl daemon-reload Povolte spuštění služby při spuštění:
sudo systemctl enable [email protected]
Číslo 1 za @ znak definuje zobrazovací port, na kterém poběží služba VNC. To znamená, že VNC server bude naslouchat na portu 5901 , jak jsme diskutovali v předchozí části.
Spusťte službu VNC spuštěním:
sudo systemctl start [email protected] Ověřte, zda je služba úspěšně spuštěna pomocí:
sudo systemctl status [email protected] ● [email protected] - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-03-26 20:00:59 UTC; 3s ago
...
Připojování k serveru VNC #
VNC není šifrovaný protokol a může být předmětem sniffování paketů. Doporučený přístup je vytvořit tunel SSH a bezpečně přesměrovat provoz z vašeho místního počítače na portu 5901 na server na stejném portu.
Nastavit tunelování SSH v systémech Linux a macOS #
Pokud na svém počítači používáte Linux, macOS nebo jakýkoli jiný operační systém založený na Unixu, můžete snadno vytvořit tunel SSH pomocí následujícího příkazu:
ssh -L 5901:127.0.0.1:5901 -N -f -l vagrant 192.168.33.10 Budete vyzváni k zadání uživatelského hesla.
Nezapomeňte nahradit username a server_ip_address s vaším uživatelským jménem a IP adresou vašeho serveru.
Nastavit tunelování SSH v systému Windows #
Pokud používáte Windows, můžete nastavit SSH Tunneling pomocí klienta PuTTY SSH.
Otevřete Putty a zadejte IP adresu vašeho serveru do Host name or IP address pole.
V části Connection nabídka, pole, rozbalte SSH a vyberte Tunnels . Zadejte port serveru VNC (5901 ) v Source Port a zadejte server_ip_address:5901 v Destination a klikněte na Add tlačítko, jak je znázorněno na obrázku níže:
Vraťte se do Session pro uložení nastavení, takže je nemusíte pokaždé zadávat. Na vzdálený server vyberte uloženou relaci a klikněte na Open tlačítko.
Připojování pomocí Vncviewer #
Nyní, když je vytvořen SSH tunel, je čas otevřít váš Vncviewer a připojit se k VNC serveru na localhost:5901 .
Pro Google Chrome můžete použít jakýkoli prohlížeč VNC, jako je TigerVNC, TightVNC, RealVNC, UltraVNC, Vinagre a VNC Viewer.
Budeme používat TigerVNC. Otevřete prohlížeč, zadejte localhost:5901 a klikněte na Connect tlačítko.
Po výzvě zadejte své uživatelské heslo a měli byste vidět výchozí plochu Xfce. Bude to vypadat nějak takto:
Můžete začít komunikovat se vzdálenou plochou XFCE z místního počítače pomocí klávesnice a myši.