Távoli GUI hozzáférés egy Linux számítógéphez a Tightvnc és a systemd használatával
On január 13, 2022 by adminEz egy útmutató a TightVNC telepítéséhez a Raspberry Pi-n. A Raspbian legújabb verziója már tartalmazza a RealVNC-t, ami egy alternatív távoli asztali eszköz. Ha inkább a RealVNC-t szeretné használni, akkor az könnyen engedélyezhető a raspi-config eszközön keresztül, ez az útmutató hasznos lesz azok számára, akik meg akarják érteni, hogyan lehet más alkalmazásokat létrehozni az indításkor a systemd-n keresztül.
A parancssor nagyszerű módja egy távoli Linux számítógép kezelésének, ha nem bánja a parancsok begépelését, de néha szükség van arra, hogy egy GUI-t is láthasson. Egy nagyon hosszú kábel hiányában ennek egyik legjobb módja a VNC protokoll (Virtual Network Computing) használata.
TightVNC vs. Real VNC
A TightVNC szerver egy másik virtuális ablakot hoz létre, amelyet egy másik gépen a TightVNC kliens segítségével lemásolunk. Ez eltér a RealVNC-től, amely általában általában az alapértelmezett képernyőt visszhangozza.
Amikor a legtöbb embernek egy távoli asztali eszköz jut eszébe, akkor általában a RealVNC működésére gondol. Ebben az esetben, amikor mozgatja az egeret, vagy elindít egy alkalmazást, ugyanaz a kimenet jelenik meg a fizikailag csatlakoztatott képernyőn (általában HDMI) és a hálózaton keresztül egy távoli kliensen.
AightVNC akkor hasznos, ha valami mást szeretne futtatni, mint ami a fő képernyőn van. Például használhatja úgy, hogy a főképernyőn (HDMI-n keresztül) egy állapotjelzés jelenjen meg, és egy másik kijelzőt használjon a konfigurációhoz, amely egy laptopon jelenik meg.
A TightVNC további előnye, hogy INGYENES nyílt forráskódú szoftver. Mint ilyen, nincsenek felhasználási korlátozások, és megtekintheti és módosíthatja a forráskódot. A Real VNC a VNC kereskedelmi változata, és licencelni kell. A Real VNC ingyenesen használható személyes használatra a Raspberry Pi-n, de korlátozásokkal jár, ha más dolgokat szeretne vele csinálni, amihez kereskedelmi licencre lehet szükség. Ez magában foglalja a Raspbian Desktop image futtatását egy PC-n, mivel az nem tartalmazza a kereskedelmi szoftvert.
Elindítási szkript telepítése a Systemd használatával
A következőkben a Raspberry Pi (Debian alapú disztribúció) konfigurálására vonatkozó utasításokat találja. Hasonlónak kell lennie bármely más Debian alapú disztribúciónál (pl. Ubuntu), amely Systemd indítófájlokat használ. Néhány más disztribúció más szoftvertelepítő eszközöket és esetleg más init beállítási eszközöket használ.
Ha ezt az útmutatót a Raspberry Pi fej nélküli futtatásához Debian Linuxszal együtt használjuk, akkor a Raspberry Pi-t távoli elérésre lehet beállítani anélkül, hogy valaha is monitorhoz kellene csatlakoztatni.
A TightVNC
A VNC-t támogató szoftverek közül több is létezik. Azért választottam a TightVNC-t, mert ez egy ingyenes nyílt forráskódú szoftver (GPL2), tömörítést biztosít, hogy lassú hálózaton (interneten) is működjön, és könnyen elérhető a szoftvertárakból.
Kliens-kiszolgáló modell
A VNC a hagyományos kliens-kiszolgáló modellt követi. A szerverszoftver az elérendő állomáson fut, a kliensszoftver pedig azon a helyi gépen, amelyik a hosztot vezérelni kívánja. A kiszolgálónak és a kliensnek nem kell azonosnak lennie (pl. a kliens lehet RealVNC, ha a kiszolgáló TightVNC), de egyes funkciók csak akkor működhetnek, ha ugyanazt a klienst és kiszolgálót használják.
A TightVNC kiszolgálószoftver telepítése
Először frissítse a szoftvertár adatait asudo apt update
Ez különösen fontos, ha éppen most telepítette az operációs rendszert, mivel a tár információi hiányosak lehetnek.
Telepítse a kiszolgálószoftvert a tárolókból:sudo apt install tightvncserver
Kiszolgáló indítása és jelszó beállítása
A kiszolgáló első futtatásakor a rendszer jelszó beállítását kéri. Ezt a jelszót használja a távoli csatlakozáskor.
/usr/bin/tightvncserver
Nem szükséges csak a megtekintésre vonatkozó jelszót létrehozni, hacsak nincs rá különleges igénye.
A szerver indításakor közli, hogy melyik virtuális asztalt állította be. Ebben az esetben:New 'X' desktop is raspberrypi:1
azt írja, hogy az 1-es virtuális asztal. Ehhez úgy csatlakozhatunk, hogy az IP-cím végén a :1-et használjuk a kliensben, ezt fogjuk beállítani, hogy később automatikusan elinduljon.
Már több példányt is futtathatunk. A tightvncserver minden egyes indításkor a következő elérhető asztali gépet fogja használni, de a legtöbb esetben csak egyre lesz szükségünk.
A Tightvnc hozzáadása a systemd indításához
A Tightvnc automatikus indításához létre kell hoznunk egy új indítási fájlt, amelyet az /etc/systemd/system/ könyvtárban kell tárolni, és “.service” végződéssel kell végződnie. Én ezt tightvncserver.service-nek neveztem el. Ezt root felhasználóként kell létrehozni, tehát a sudosudo nano /etc/systemd/system/tightvncserver.service
-
-
Description=TightVNC remote desktop server
-
After=sshd.service
-
-
-
Type=dbus
-
ExecStart=/usr/bin/tightvncserver :1
-
User=pi
-
Type=forking
-
-
-
WantedBy=multi-user.target
használatával.
A 8. sorban a felhasználónév megváltoztatására lehet szükség. Jelenleg pi van beállítva, ami az alapértelmezett felhasználónév a Raspberry Pi Raspbian képen. Állítsa be ezt arra a felhasználónévre, amellyel be szeretne jelentkezni a TightVNC-be. Ne a root-ot tegye felhasználónak.
Változtassa meg a fájlt úgy, hogy a root tulajdonában legyensudo chown root:root /etc/systemd/system/tightvncserver.service
A fájlt futtathatóvá teszi asudo chmod 755 /etc/systemd/system/tightvncserver.service
Ezzel a ponttal érdemes tesztelni a szkriptet, nem pedig várni az újraindításig. Ez a következőkkel történik:sudo systemctl start tightvncserver.service
Ne aggódjon, ha a következő hibaüzenetet kapja, ez azért van, mert már elindította a tightvncA VNC server is already running as :1
Enable startup at boot usingsudo systemctl enable tightvncserver.service
TightVNC mostantól elindul az indításkor. Javaslom, hogy ezen a ponton indítsa újra, hogy megbizonyosodjon arról, hogy működik, de helyette egyszerűen leállíthatja és elindíthatja a szolgáltatást a systemctl paranccsal.
Megjegyezzük, hogy ez arra szolgál, hogy a TightVNC csak egy példányát futtassa a számítógépen. Ha a TightVNC egyes példányait szeretné elindítani és leállítani, akkor az indítószkriptet megfelelően módosítani kell.
A Tightvnc viewer (VNC kliens) telepítése Linux számítógépre
Linuxos számítógépre telepítheti a viewert asudo apt install xtightvncviewer
vagy ha ez nincs a tárolókban, próbálja ki:sudo apt-get install ssvnc
Ez csak Debian / Ubuntu alapú disztribúciókkal működik, más disztribúciókhoz használja a normál csomagkezelőt.
Megjegyezzük, hogy az ssvnc – ami az a verzió, amit a Kubuntu gépemre telepítettem – a tightvnc-re épül, de az ssh tunnelinget (lásd később) a GUI-n keresztül is képes konfigurálni.
Login usingxtightvncviewer 192.168.1.6:1
(helyettesítse a saját IP-címével, ha szükséges)
A Tightvnc nézet telepítése Windows számítógépen
A Windowsról vagy a TightVNC-ről letöltött Java kliens segítségével történő hozzáféréshez.com
A TightVNC védelme
A TightVNC lehetővé teszi, hogy bárki, aki ismeri a jelszót, bejelentkezzen a felhasználóként, aki alatt fut. Ezt ráadásul titkosítás nélkül teszi, így bárki beleshet a munkamenetbe. Szerencsére van biztonságos megoldás, ami nem más, mint a kapcsolat ssh (secure shell) bejelentkezésen keresztül történő alagútba helyezése.
Az első lépés az, hogy a Tightvnc-t csak a helyi számítógépre korlátozzuk. Ezt a tightvncserver indításakor a -localhost opció hozzáadásával érhetjük el. Ehhez szerkessze az /etc/systemd/system/tightvncserver.service fájl 7. sorát:>
ExecStart=/usr/bin/tightvncserver -localhost :1
Ezután indítsa újra a kiszolgálót.
Az ssh használatával történő bejelentkezéshez – először jelentkezzen be a gazdaszámítógépre az ssh használatávalssh [email protected] -L 5901:localhost:5901
A -L opció létrehozza az alagutat, az aktuális számítógép (alapértelmezett) 5901-es portjáról a gazdaszámítógép (mint localhost) 5901-es portjára. Az 5901-es port az alapértelmezett port az 1-es kijelzőhöz, az 5902-es a 2-es kijelzőhöz stb.
A tightvnc használatával történő csatlakozáshoz most használja a parancsotxtightvncviewer 127.0.0.1:1
Figyeljen arra, hogy az előző terminálja most be lesz jelentkezve a Raspberry Pi-be, így egy új terminált vagy lapot kell indítania a megjelenítő futtatásához.
Ha Windows-t használ, akkor az ssh alagutat létrehozhatja a PuTTY-n belül
Ezután csatlakozzon a vnc klienssel a 127.0.0.0.1:1 használatával.
Most már használhatja a GUI-t alkalmazások futtatására a Raspberry Pi-n anélkül, hogy monitorra vagy billentyűzetre lenne szüksége. Ha a routerén be van állítva a porttovábbítás, akkor ezt az interneten keresztül is megteheti.
Az ablakkezelő elindítása
A fenti utasítások elegendőek a Raspbian (Debian) rendszert futtató Raspberry Pi esetében. Más rendszereken további konfigurációs módosításra lehet szükséged a szokásos ablakkezelőd / alkalmazásindítód elindításához. Ha a csatlakozáskor üres képernyő jelenik meg, szerkessze meg a ~/.vnc/xstartup fájlt, és az /etc/X11/Xsession sort cserélje ki az alábbiak valamelyikére.
exec ck-launch-session startlxde#for an lxde sessionexec ck-launch-session gnome-session#for a gnome-sessionexec ck-launch-session openbox-session#for an openbox desktopexec ck-launch-session startxfce4#for an xfce desktopexec ck-launch-session icewm#for an icewm desktopexec ck-launch-session startkde#for a kde desktop
Az Ubuntu esetében például a gnome, a xubuntu esetében az xfce, a kubuntu esetében pedig a kde bejegyzést használja. A Raspberry Pi az lxde-et használja, de ez automatikusan elindul a Raspberry Pi-n, nem kell hozzáadni az xstartup fájlhoz.
Vélemény, hozzászólás?