Portál AbcLinuxu, 30. dubna 2025 10:10
xvnc a x11vnc. Pojmy, které vypadají tak podobně, ale každý z nich umí něco jiného. Jak to s nimi je?
VNC
Virtual Network Computing (VNC) je dle zápisu ve wikipedii systém grafického sdílení desktopu, které umožňuje vzdáleně kontrolovat jiný počítač. Tato kontrola ovšem v podání obou programů vypadá poněkud jinak. Podívejme se na ně blíže.
xVNC
xvnc
, které je součástí balíku xorg-x11-vnc
(součást X serveru), vytváří virtuální obrazovky, ke kterým se lze přihlásit ze vzdáleného počítače a na něm tak pracovat jako by tento počítač měl více obrazovek, přičemž každá by mohla být pro jiného uživatele. Typickým příkladem využití takovéhoto rozložení je síť, kde jeden centrální počítač slouží jiným, mnohem slabším, jako nástroj pro provádění například výpočtů, které by na slabších klientech trvaly příliš dlouhou dobu. Vlastnosti takovéhoto virtuálního desktopu lze ušít na míru klientovi - rozlišením, barevnou hloubkou, a řadou dalších nastavení.
Jak xvnc
získat je závislé na distribuci, někdo napíše své emerge, jiný apt-get někdo využije grafického rozhraní. Jelikož patřím mezi línější část uživatelů, použil jsem YaST2 a nainstaloval jsem přímo distribuční verze. Spojení probíhalo mezi stroji se SuSE 10.0 x86_64 a openSUSE 10.2 i386. Zprovoznění bylo překvapivě jednoduché a komunikace mezi aplikacemi bez problémů. Nejprve je třeba pomocí programu vncpasswd
pod rootem vytvořit heslo pro uživatele, který se připojuje. Zde mne poněkud zklamalo, že heslo může mít maximální délku 8 znaků, ale pri zadání hesla, které mělo 5 znaků program prohlásil, že heslo je příliš krátké. Se šesti již byl spokojen. Jako druhý krok je třeba otevřít v iptables
porty 5801 a výš (dle počtu virtuálních obrazovek) a 5901 a výš (taktéž). Pro otevření lze použít buď distribuční nástroj nebo můj oblíbený guarddog
.
x11vnc
x11vnc
naproti tomu umožňuje připojení k již existující fyzické obrazovce. Lze se tak připojit ke svému PC z jiného a kontrolovat jej, případně si z něj odeslat nějaká data. Jiný případem využití může být školství - pomocí x11vnc
lze snadno kontrolovat děje na obrazovkách žáků z kantorského PC a dohlížet nad jejich aktivitami.
Zprovoznění x11vnc
je navlas shodné s xvnc
pouze s tím rozdílem, že otevírané porty v iptables
jsou 5800 5900. Oba programy je tedy možné provozovat paralelně.
Použití
Připojení k oběma programům probíhá stejně - buďto pomocí vncviewer < server > :< cislo_obrazovky >
, nebo pomocí libovolného prohlížeče, který podporuje Javu. Do řádku pro adresu pak stačí zadat http://< server >:< port >, s porty 5800 a výš. 5800 pro obrazovku :0 a výš pro další. Aby se x11vnc
spustilo s podporou http a běželo i po odpojení uživatele, je třeba jej spouštět následovně:
x11vnc -rfbauth /root/.vnc/passwd -shared -http -forever -display :0
Bohužel se mi nepodařilo nějakým rozumným způsobem x11vnc
rozběhat pod běžným uživatelem či vyřešit nějak rozumně jeho automatické spouštění po rootem při startu systému, vypadá to tedy, žže je třeba jej spouštět ručně. Pokud se někomu podařilo tento problém vyřešit, rád toto řešení vyzkouším.
Nyní klady a zápory obou aplikací. Hlavním kladem je to, že lze jednoduchým způsobem rozchodit zpřístupnění prostředků nějakého PC jiným. Toto zpřístupnění může být ušito na míru klientům tak, aby nedošlo k problémům s jejich různými omezeními. Klientem může být jakýkoliv operační systém, na kterém funguje webový prohlížeč s Javou, což je také velice příjemné. Není tedy třeba instalovat žádný dodatečný nástroj na připojení ke vzdálenému PC.
Záporem je fakt, že vzdálené připojení není příliš svižné. Veškeré odezvy jsou delší než kdyby se akce děly přímo na PC, na kterém člověk pracuje. To lze ale na druhou stranu očekávat a kompenzace, která vzniká využitím vyššího výpočetního výkonu druhého PC tuto nevýhodu potlačuje. Není ale problém na vzdáleném PC dosáhnout využití CPU 30% pouze spuštěním xmms
, což způsobí vysoká obnovovací frekvence vizualizace. Asi největší nevýhodou (alespoň pro mne) je ale fakt, že pro velmi podobnou funkci jsou dvě aplikace, které nelze zaměnit, je tedy třeba předem vědět, kterou z nich je třeba zvolit, než se člověk pokusí VNC zprovoznit.
Tiskni
Sdílej:
Jen nevím, jestli se jde nějak připojit k aktivní relaci Xek..Ano, jde. Pomoci VNC
x11vnc -rfbauth /root/.vnc/passwd -shared -http -forever -display :0
a melo by vse chodit.
x11vnc
se da zabezpečit přidáním přepínače -ssl
(viz man x11vnc
), což je ovšem už věcí každého uživatele, zda to vyžaduje. Mě to při experimentování příliš netrápilo, tak jsem se domu nevěnoval.
vncserver :3
a kdyz dam vncviewer 3
, tak:
Nes:~ # vncserver :3
A VNC server is already running as :3
Nes:~ # vncviewer :3
Error: Can't open display:
Nes:~ # vncserver :4
New 'X' desktop is Nes:4
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/Nes:4.log
Nes:~ # vncviewer :4
Error: Can't open display:
Nes:~ # vncviewer :3
Pritom pred tim mi to noproblemo fungovalo.... - z jineho pocitace mi to funguje pres tightvnc taky bez problemu..... Kde muze byt ten pes zakopany?
Diky !!!!
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.