← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-tunnel / use-cases
Vykreslení klienta VNC v prohlížeči
Server Virtual Network Computer (VNC) poskytuje uživatelům vzdálený přístup k desktopovému prostředí počítače. Cloudflare dokáže vykreslit terminál VNC v prohlížeči bez nutnosti jakéhokoli softwaru nebo konfigurace na straně klienta.
VNC vykreslované v prohlížeči vyžaduje připojení VNC serveru ke Cloudflare a směrování provozu přes veřejný hostname. Pro přístup k VNC serveru uživatelé přejdou na URL adresu veřejného hostname a přihlásí se přes Cloudflare Access pomocí vámi nakonfigurovaného poskytovatele identity. Cloudflare použije vaše Zásady Access a v případě, že je uživateli povolen přístup, vykreslí klienta VNC v jeho prohlížeči.
Předpoklady
- aktivní doména na Cloudflare.
- Doména používá buď plné nastavení nebo částečné (
CNAME) nastavení.
1. Nastavte server VNC
Pro účely demonstrace vytvoříme server TightVNC na virtuálním stroji (VM) Ubuntu hostovaném v Google Cloud Project (GCP). Server VNC nakonfigurujeme tak, aby běžel XFCE, odlehčené desktopové prostředí vhodné pro vzdálený přístup. Pokud už server VNC máte nainstalovaný, můžete tento krok přeskočit a přejděte na krok 2.
-
Otevřete okno terminálu pro svůj virtuální počítač s Ubuntu.
-
Nainstalujte XFCE a TightVNC spuštěním následujícího příkazu:
sudo apt update sudo apt install xfce4 xfce4-goodies dbus-x11 tightvncserver -yTento příkaz nainstaluje desktopové prostředí, několik užitečných nástrojů a software serveru VNC.
-
Chcete-li inicializovat server VNC:
-
Vytvořte instanci serveru VNC:
vncserver -
Zobrazí se výzva k nastavení hesla. Toto heslo se použije k připojení k vašemu serveru VNC. Je omezeno na 8 znaků.
TightVNC nyní vytvoří konfigurační soubory a spustí relaci VNC na displeji
:1(který používá port5901). -
Budete dotázáni, zda chcete vytvořit heslo pouze pro čtení. Můžete stisknout
npro ne. -
Ukončete tuto počáteční relaci, abyste mohli upravit její konfiguraci:
vncserver -kill :1
-
-
Nakonfigurujte VNC pro spuštění plochy XFCE:
- Vytvořte adresář konfigurace VNC, pokud chybí:
mkdir -p ~/.vnc- Otevřete
xstartupsoubor pomocí textového editoru. Například,
vim ~/.vnc/xstartup- Aktualizujte soubor podle následující konfigurace:
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS startxfce4- Nastavte soubor jako spustitelný:
chmod +x ~/.vnc/xstartup -
Znovu spusťte server VNC:
vncserver -localhost :1-localhostpříznak zajišťuje, že server VNC naslouchá pouze připojením z daného virtuálního počítače, nikoli z veřejného internetu. Server VNC nyní běží na portu5901, ale je přístupná pouze zlocalhost(127.0.0.1) uvnitř VM. -
(Doporučeno) Otestujte server VNC pomocí existujícího klienta VNC a ověřte, zda nechybí nějaké balíčky nebo změny konfigurace. Pokud chcete například otestovat server VNC hostovaný na GCP:
-
Otevřete terminál na klientském počítači.
-
Připojení k serveru VNC přes SSH s přesměrováním místního portu
5901na naslouchací port serveru VNC:gcloud compute ssh [YOUR_VM_NAME] --zone=[YOUR_ZONE] -- -L 5901:localhost:5901 -
Otevřete preferovanou aplikaci prohlížeče VNC.
-
V prohlížeči VNC se připojte na adresu
localhost:5901a zadejte heslo svého serveru VNC.
Měli byste vidět plochu Ubuntu VM.
-
-
(Volitelné) Nakonfigurujte server VNC tak, aby se spouštěl při startu systému:
-
Najděte úplnou cestu k
vncserverpříkaz:which vncserver/usr/bin/vncserver -
Vytvořte nový konfigurační soubor služby:
sudo vim /etc/systemd/system/[email protected]-
Zkopírujte a vložte následující obsah. Nahraďte
[YOUR_USERNAME]s uživatelem serveru VNC. V případě potřeby aktualizujte/usr/bin/vncserverdo vašehovncservercesta.[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=[YOUR_USERNAME] WorkingDirectory=/home/[YOUR_USERNAME] PIDFile=/home/[YOUR_USERNAME]/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -localhost :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target- Znovu načtěte
systemda načíst nový soubor služby:
sudo systemctl daemon-reload- Povolte spouštění služby při startu systému:
sudo systemctl enable [email protected]1proměnná konfiguruje službu VNC tak, aby používala displej:1(který běží na portu5901).- Standardně
systemduživatelské služby běží pouze tehdy, když je daný uživatel přihlášen. Aby se vaše služba VNC spustila při startu systému (ještě před přihlášením), povolte pro svého uživatele linger:
sudo loginctl enable-linger [YOUR_USERNAME]- Spusťte službu:
sudo systemctl start [email protected]- Zkontrolujte jeho stav:
sudo systemctl status [email protected]Server VNC se nyní spustí automaticky při každém spuštění virtuálního stroje.
- Znovu načtěte
-
2. Připojte server k Cloudflare
-
Vytvořte Cloudflare Tunnel podle průvodce nastavením dashboardu.
-
Přejděte na Sítě > Tunnels, poté vyberte svůj tunel.
Přejděte na Tunnels ↗ -
Na Trasy kartě vyberte Přidat trasu, pak vyberte Publikovaná aplikace.
-
Vyberte doménu z rozevírací nabídky a zadejte libovolnou subdoménu (například
vnc.example.com). -
Pro Služba, vyberte TCP a zadejte
localhost:<5901>. Pokud se server VNC nachází na jiném počítači, než na kterém jste nainstalovali tunel, zadejte<SERVER_IP>:5901.Nahraďte
5901s naslouchacím portem vašeho serveru VNC. Naslouchací port VNC zjistíte spuštěnímsudo ss -lnpta vyhledejtevncv seznamu procesů. -
Uložte trasu.
Váš server VNC je nyní připravený přijímat příchozí požadavky od Cloudflare.
3. Vytvořte aplikaci Access pro VNC
Vytvořte aplikaci Cloudflare Access, ke které se uživatelé dostanou přes prohlížeč:
-
V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Aplikace.
-
Vyberte Vytvořit novou aplikaci.
-
Vyberte Vlastní hosting a soukromé.
-
Vyberte Přidejte veřejný hostname a zadejte hostitelský název publikované aplikace (
vnc.example.com). -
Zapněte Povolit přístup prostřednictvím relací RDP, SSH nebo VNC v prohlížeči, pak vyberte VNC.
-
V části Zásady Access, přidejte existující zásadu nebo vytvořit novou zásadu řídit, kdo se může připojit k vaší aplikaci. Všechny aplikace Access ve výchozím nastavení odmítají přístup (deny by default): uživatel musí nejprve odpovídat zásadě Allow, aby mu byl přístup udělen.
-
Vyberte Vytvořit.
4. Připojte se jako uživatel
Uživatelé nyní mají přístup ke vzdálenému desktopovému prostředí přímo ve webovém prohlížeči bez nutnosti instalovat jakýkoli software klienta VNC.
Chcete-li se připojit k serveru VNC:
- Otevřete prohlížeč a přejděte na veřejnou URL adresu hostname (například
https://vnc.example.com). - Přihlaste se do Cloudflare Access pomocí nakonfigurovaného poskytovatele identity.
- Zadejte heslo serveru VNC.
Ve svém prohlížeči byste měli vidět vykreslenou plochu vzdáleného VNC serveru. Všechna připojení jsou zabezpečena prostřednictvím sítě Cloudflare a přístup řídí vaše zásady Access.