Hogyan telepítsük és konfiguráljuk a VNC távoli hozzáférést a GNOME asztalhoz a CentOS 7 rendszeren

Bevezetés

A VNC vagy Virtual Network Computing egy platformfüggetlen protokoll, amely lehetővé teszi a felhasználók számára, hogy egy távoli számítógépes rendszerhez csatlakozzanak és annak erőforrásait grafikus felhasználói felületről (GUI) használják.

Ez olyan, mint egy alkalmazás távvezérlése: a kliens számítógép billentyűleütései vagy egérkattintásai a hálózaton keresztül továbbításra kerülnek a távoli számítógépre. A VNC lehetővé teszi a vágólap megosztását is a két számítógép között. Ha a Microsoft Windows kiszolgálói háttérrel rendelkezik, a VNC nagyjából olyan, mint a Remote Desktop Service, csakhogy OS X, Linux és más operációs rendszerekhez is elérhető.

Mint minden más a hálózati világban, a VNC is a kliens-kiszolgáló modellre épül: A VNC-kiszolgáló egy távoli számítógépen – a Dropleten – fut, amely kiszolgálja a bejövő ügyfélkéréseket.

Célok

Ebben a bemutatóban megtanuljuk, hogyan kell telepíteni és konfigurálni egy VNC-kiszolgálót a CentOS 7 rendszeren. Telepíteni fogjuk a TigerVNC szervert, amely szabadon elérhető a TigerVNC GitHub repositoryból.

A VNC működésének bemutatására a GNOME desktopot is telepítjük a CentOS szerverre. Létrehozunk két felhasználói fiókot, és beállítjuk számukra a VNC hozzáférést. Ezután tesztelni fogjuk a távoli asztallal való kapcsolatukat, végül pedig megtanuljuk, hogyan lehet a távoli kapcsolatot SSH-alagúton keresztül biztosítani.

Előfeltételek

A bemutatóban bemutatott parancsokat, csomagokat és fájlokat a CentOS 7 minimális telepítésén teszteltük. A következőket javasoljuk:

  • Distro: CentOS 7, 64 bites
  • Erőforrásigény: Droplet 2 GB RAM-mal
  • A bemutató követéséhez sudo felhasználót kell használnia. A sudo jogosultságok működésének megértéséhez tekintse meg ezt a DigitalOcean oktatóanyagot

Figyelmeztetés: Ebből az oktatóanyagból származó parancsokat, lekérdezéseket vagy konfigurációkat nem szabad futtatni egy produktív Linux-kiszolgálón. Ez biztonsági problémákat és leállást eredményezhet.

1. lépés – Két felhasználói fiók létrehozása

Először két felhasználói fiókot hozunk létre. Ezek a fiókok fognak távolról csatlakozni a CentOS 7 szerverünkhöz a VNC kliensekről.

  • joevnc
  • janevnc

Futtassuk a következő parancsot a joevnc felhasználói fiókjának hozzáadásához:

sudo useradd -c "User Joe Configured for VNC Access" joevnc

Majd futtassuk a passwd parancsot a joevnc jelszavának módosításához:

sudo passwd joevnc

A kimenet kérni fogja az új jelszót. Ha megadtuk, a fiók készen áll a bejelentkezésre:

Changing password for user joevnc.New password:Retype new password:passwd: all authentication tokens updated successfully.

A következőkben hozzunk létre egy fiókot a janevnc számára:

sudo useradd -c "User Jane Configured for VNC Access" janevnc

Adjuk meg a jelszót a janevnc számára:

sudo passwd janevnc

2. lépés – A GNOME desktop telepítése

Most telepítjük a GNOME desktopot. A GNOME egy közös munka: szabad és nyílt forráskódú szoftverek gyűjteménye, amelyek egy nagyon népszerű asztali környezetet alkotnak. Vannak más asztali környezetek is, mint például a KDE, de a GNOME népszerűbb. A VNC-felhasználóink a GNOME-ot fogják használni a kiszolgálóval való interakcióra az asztalról:

sudo yum groupinstall -y "GNOME Desktop"

A hálózat sebességétől függően ez néhány percet vehet igénybe.

A csomagcsoport telepítése után indítsuk újra a szervert:

sudo reboot

Hibaelhárítás – A szerver elakadt a boot fázisban

A szerver beállításától függően előfordulhat, hogy a gép indításkor a boot fázisban marad, és egy ehhez hasonló üzenetet mutat:

Initial setup of CentOS Linux 7 (core)1) License information (Licence not accepted)Please make your choice from above :

Ezeken túljutáshoz nyomjuk meg az 1 (licenc olvasása), majd a 2 (licenc elfogadása), majd a C (folytatás) gombot. Előfordulhat, hogy kétszer vagy többször kell megnyomnia a C gombot. Az alábbi képen ez látható:

Ha nem látja ezt a hibát, és a bootolási folyamat zökkenőmentes, annál jobb – továbbléphet a következő lépésre.

3. lépés – TigerVNC Server telepítése

A TigerVNC az a szoftver, amely lehetővé teszi számunkra a távoli asztali kapcsolat létrehozását.

Telepítsük a Tiger VNC szervert:

sudo yum install -y tigervnc-server

Ezzel a következő kimenetet kell megjelenítenünk:

Loaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile. . .Running transaction Installing : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1 Verifying : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1Installed: tigervnc-server.x86_64 0:1.2.80-0.30.20130314svn5065.el7Complete!

Most már telepítve van a VNC szerver és a GNOME desktop. Létrehoztunk két felhasználói fiókot is a VNC-n keresztüli csatlakozáshoz.

4. lépés – VNC szolgáltatás beállítása két kliens számára

A VNC szerver nem indul el automatikusan az első telepítéskor. Ennek ellenőrzéséhez futtassa a következő parancsot:

sudo systemctl status vncserver@:.service

A kimenet így fog kinézni:

vncserver@:.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled) Active: inactive (dead)

Ezt a parancsot is futtathatja:

sudo systemctl is-enabled [email protected]

Az eredménynek így kell kinéznie:

disabled

Miért van letiltva? Azért, mert minden felhasználó külön példányt indít a VNC szolgáltatás démonjából. Más szóval a VNC nem egyetlen folyamatként fut, amely minden felhasználói kérést kiszolgál. Minden VNC-n keresztül csatlakozó felhasználónak el kell indítania a démon egy új példányát (vagy a rendszergazda automatizálhatja ezt).

AentOS 7 a systemd démont használja más szolgáltatások indítására. Minden olyan szolgáltatásnak, amely natívan a systemd alatt fut, van egy szolgáltatásegység-fájlja, amelyet a yum telepítő a /lib/systemd/system könyvtárba helyez el. A rendszerindításkor automatikusan induló folyamatok a /etc/systemd/system/ könyvtárban elhelyezett linket kapnak erre a szolgáltatásegység-fájlra.

Egy általános szolgáltatásegység-fájlt a mi esetünkben a /lib/systemd/system/ könyvtárban hoztunk létre, de a /etc/systemd/system/ alatt nem készült link. Ennek teszteléséhez futtassuk a következő parancsokat:

sudo ls -l /lib/systemd/system/vnc*

Az alábbiakat kell látnunk:

-rw-r--r--. 1 root root 1744 Jun 10 16:15 /lib/systemd/system/[email protected]

Ezután ellenőrizzük a /etc/systemd/system/ alatt:

sudo ls -l /etc/systemd/system/*.wants/vnc*

Ez nem létezik:

ls: cannot access /etc/systemd/system/*.wants/vnc*: No such file or directory

Az első lépés tehát, hogy két új VNC szerver példányt indítunk a két felhasználónk számára. Ehhez két másolatot kell készítenünk az általános VNC szolgáltatási egységfájlból a /etc/system/system alatt. Az alábbi kódrészletben két másolatot készítünk két különböző névvel:

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:4.servicesudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:5.service

Miért tettünk két számot (a kettőspont mellett) a másolt fájlnevekbe?

Ez megint csak az egyedi VNC szolgáltatások koncepciójához vezet vissza. A VNC önmagában az 5900-as porton fut. Mivel minden felhasználó saját VNC-kiszolgálót fog futtatni, minden felhasználónak külön porton keresztül kell csatlakoznia. A szám hozzáadása a fájlnévben azt mondja a VNC-nek, hogy az adott szolgáltatást a 5900 alportjaként futtassa. Esetünkben tehát a joevnc VNC-szolgáltatása az 5904-es porton (5900 + 4), a janevnc-é pedig az 5905-ös porton (5900 + 5) fog futni.

Ezután szerkesszük meg a szolgáltatásegység-fájlt minden ügyfél számára. Nyissuk meg a /etc/systemd/system/vncserver@:4.service fájlt a vi szerkesztővel:

sudo vi /etc/systemd/system/vncserver@:4.service

A “Gyors útmutató” részből kiderül, hogy az első lépést már elvégeztük. Most a fennmaradó lépéseken kell végigmennünk. A megjegyzésekből az is kiderül, hogy a VNC nem megbízható kapcsolat. Erről majd később beszélünk.

Előre szerkesszük meg a fájl szakaszát, és a <USER> példányait cseréljük le joevnc-re. Továbbá a ExecStart paraméter végére illesszük be a -geometry 1280x1024 záradékot. Ez csak azt mondja meg a VNC-nek, hogy milyen képernyőméretről induljon. Összesen két sort fog módosítani. Így kell kinéznie a szerkesztett fájlnak (vegye figyelembe, hogy a teljes fájl nem látható):

# The vncserver service unit file## Quick HowTo:# 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service# 2. Edit <USER> and vncserver parameters appropriately# ("runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2")# 3. Run `systemctl daemon-reload`# 4. Run `systemctl enable vncserver@:<display>.service`#. . .Description=Remote desktop service (VNC)After=syslog.target network.targetType=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l joevnc -c "/usr/bin/vncserver %i -geometry 1280x1024" PIDFile=/home/joevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target

Mentse el a fájlt, és lépjen ki a vi-ből.

Hasonlóképpen nyissa meg a /etc/systemd/system/vncserver@:5.service fájlt a vi-ban, és végezze el a módosításokat a janevnc felhasználó számára:

sudo vi /etc/systemd/system/vncserver@:5.service

Itt csak a rész van a módosításokkal jelölve:

Type=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l janevnc -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/janevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

A következőkben futtassa a következő parancsokat a systemd démon újratöltéséhez, valamint annak biztosítására, hogy a VNC két felhasználó számára is elinduljon a rendszerindításkor.

sudo systemctl daemon-reload

Enable the first server instance:

sudo systemctl enable vncserver@:4.service

Output:

ln -s '/etc/systemd/system/vncserver@:4.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:4.service'

Enable the second server instance:

sudo systemctl enable vncserver@:5.service

Output:

ln -s '/etc/systemd/system/vncserver@:5.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:5.service'

Most már két VNC szerver példányt konfigurált.

5. lépés – A tűzfal konfigurálása

A következőkben úgy kell beállítanunk a tűzfalat, hogy a VNC forgalmat csak az 5904-es és 5905-ös portokon keresztül engedje. A CentOS 7 a dinamikus tűzfalat a firewalld démonon keresztül használja; a szolgáltatásnak nem kell újraindulnia ahhoz, hogy a módosítások hatályba lépjenek.

A firewalld szolgáltatásnak automatikusan el kell indulnia a rendszerindításkor, de mindig jó ellenőrizni:

sudo firewall-cmd --state

Az állapotnak azt kell mutatnia:

running

Ha az állapot bármilyen okból “nem fut”, akkor a következő parancsot futtatva győződjön meg róla, hogy fut:

sudo systemctl start firewalld

Most add hozzá a szabályokat az 5904 és 5905 portokhoz:

sudo firewall-cmd --permanent --zone=public --add-port=5904-5905/tcp

Kimenet:

success

Töltsd vissza a tűzfalat:

sudo firewall-cmd --reload

Kimenet:

success

6. lépés – VNC jelszavak beállítása

Egy lépésre vagyunk a VNC működésének megtekintésétől. Ebben a lépésben a felhasználóknak be kell állítaniuk a VNC jelszavaikat. Ezek nem a felhasználók Linux jelszavai, hanem a VNC munkamenetekbe való bejelentkezéshez szükséges jelszavak.

Nyissunk egy újabb terminálkapcsolatot a CentOS 7 szerverhez, és ezúttal jelentkezzünk be joevnc néven.

ssh joevnc@your_server_ip

Végezze el a következő parancsot:

vncserver

Amint az alábbi kimenet mutatja, a szerver megkéri a joevnc-t a VNC jelszó beállítására. A jelszó beírása után a program azt is mutatja, hogy a felhasználó home könyvtárában több fájl is létrejön:

You will require a password to access your desktops.Password:Verify:xauth: file /home/joevnc/.Xauthority does not existNew 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1Creating default startup script /home/joevnc/.vnc/xstartupStarting applications specified in /home/joevnc/.vnc/xstartupLog file is /home/joevnc/.vnc/localhost.localdomain:1.log

Nézzük meg a New 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1 sort. példánkban a localhost.localdomain volt a szerver neve, az Ön esetében ez más lehet. Figyeljük meg a szerver neve utáni számot: (1, kettősponttal elválasztva). Ez nem a joevnc szervizegység-fájljában szereplő szám (ami 4 volt). Ez azért van, mert ez az a megjelenítési szám, amelyen a joevnc munkamenete fut ezen a szerveren, nem pedig magának a szolgáltatásnak a portszáma (5904).

A következő lépésben nyissunk egy új terminál munkamenetet, és jelentkezzünk be janevnc-ként. Itt is indítsa el a VNC-kiszolgálót, és állítson be jelszót a janevnc-nek:

vncserver

Hasonló kimenetet kell látnia, ami azt mutatja, hogy a janevnc munkamenete a 2-es kijelzőn fog futni.

Végül töltse újra a szolgáltatásokat a fő terminál munkamenetből:

sudo systemctl daemon-reloadsudo systemctl restart vncserver@:4.servicesudo systemctl restart vncserver@:5.service

7. lépés – Csatlakozás távoli asztali gépekhez VNC klienssel

Ezért a bemutatóért feltételezzük, hogy a joevnc és janevnc felhasználók a CentOS 7 szerverhez próbálnak csatlakozni a Windows számítógépükről.

A távoli asztali gépre való bejelentkezéshez mindkettőjüknek szüksége lesz egy Windows VNC kliensre. Ez a kliens olyan, mint egy terminál kliens, mint a PuTTY, kivéve, hogy grafikus kimenetet jelenít meg. Többféle VNC-kliens is elérhető, de az általunk használt a RealVNC, amely itt érhető el. A VNC Viewer for Mac OS X letölthető ugyanerről az oldalról, és a Mac-es verzió meglehetősen hasonló a windowsoshoz.

A VNC Viewer indításakor egy ilyen párbeszédpanel jelenik meg:

A VNC Server mezőben adjuk meg a CentOS 7 szerver IP-címét. A szerver IP címe után adja meg az 5904-es portszámot, kettősponttal (:) elválasztva. Azért használtuk az 5904-et, mert ez a joevnc VNC szolgáltatás portja.

Azt is eldöntöttük, hogy a VNC Viewer válassza ki a titkosítási módszert. Ez a beállítás csak a hálózaton keresztül küldött jelszót titkosítja. Minden további kommunikáció a kiszolgálóval titkosítatlan lesz. (Az utolsó lépésben biztonságos SSH-alagutat állítunk be.)

A figyelmeztető üzenet valójában éppen ezt mutatja:

Előre fogadjuk el a figyelmeztetést. Megjelenik egy jelszókérés:

Adja meg a joevnc korábban beállított VNC jelszavát.

Egy új ablak nyílik meg, amely a távoli CentOS-kiszolgálónk GNOME-asztalát mutatja:

Az alapértelmezett üdvözlő üzenetet fogadja el.

Most a janevnc elindíthat egy grafikus eszközt, például a GNOME számológépet:

Ezt az asztali kapcsolatot nyitva hagyhatjuk.

Most a janevnc egy másik VNC munkamenetet is indíthat a CentOS szerverrel. Az IP-cím ugyanaz, a port pedig 5905:

Amikor a janevnc bejelentkezik a VNC Vieweren keresztül, egy üres desktop jelenik meg egy üdvözlő üzenettel, ugyanúgy, mint a joevnc esetében. Más szóval a két felhasználó nem osztozik az asztali példányokon. joevnc asztalán továbbra is a számológépnek kell megjelennie.

A távoli asztali munkamenet bezárásához elegendő egyszerűen bezárni az ablakot. Ez azonban nem állítja le a felhasználó VNC szolgáltatását a háttérben a kiszolgálón. Ha a szolgáltatás nincs leállítva vagy újraindítva, és a gépen nem volt újraindítás, akkor a következő bejelentkezéskor ugyanaz az asztali munkamenet jelenik meg.

A VNC Viewer ablakok bezárása a joevnc és janevnc esetében. Zárja be a terminál munkameneteiket is. A fő terminálablakból ellenőrizze, hogy a VNC-szolgáltatások még futnak-e:

sudo systemctl status vncserver@:4.service

A kimenet azt mutatja, hogy a távoli asztal még fut:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: active (running) since Sat 2014-11-01 12:06:49 EST; 58min ago Process: 2014 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

Ellenőrizze a második szolgáltatást:

sudo systemctl status vncserver@:5.service

Ez is fut:

vncserver@:5.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:5.service; enabled) Active: active (running) since Sat 2014-11-01 12:42:56 EST; 22min ago Process: 3748 ExecStart=/sbin/runuser -l janevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

Ha ekkor vissza akarna jelentkezni a joevnc asztalára, akkor ugyanaz a számológép alkalmazás lenne megnyitva.

Ez érdekes kihívások elé állítja a rendszergazdákat. Ha számos felhasználó csatlakozik a kiszolgálóhoz VNC-n keresztül, akkor ki kell találni valamilyen módot arra, hogy leállítsa a VNC-szolgáltatásukat, amikor már nincs rájuk szükség. Ez értékes rendszererőforrásokat takaríthat meg.

Hibaelhárítás – A VNC szolgáltatás összeomlása

A VNC-vel való tesztelés és játék közben néha előfordulhat, hogy a szolgáltatás összeomlik, és nem lehet helyreállítani. Amikor megpróbálja ellenőrizni az állapotot:

sudo systemctl status vncserver@:4.service

Ez a hosszú hibaüzenet jelenhet meg:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: failed (Result: exit-code) since Fri 2014-11-07 00:02:38 EST; 2min 20s ago Process: 2221 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=2) Process: 1257 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

A szolgáltatás elindításának kísérlete nem működik:

sudo systemctl start vncserver@:4.service

Sikertelen indítás:

Job for vncserver@:4.service failed. See 'systemctl status vncserver@:4.service' and 'journalctl -xn' for details.

Az ok általában elég egyszerű. Ellenőrizze /var/log/messages:

sudo tail /var/log/messages

A kapcsolódó hiba így fog kinézni:

Nov 7 00:08:36 localhost runuser: Warning: localhost.localdomain:4 is taken because of /tmp/.X11-unix/X4Nov 7 00:08:36 localhost runuser: Remove this file if there is no X server localhost.localdomain:4Nov 7 00:08:36 localhost runuser: A VNC server is already running as :4Nov 7 00:08:36 localhost systemd: vncserver@:4.service: control process exited, code=exited status=2Nov 7 00:08:36 localhost systemd: Failed to start Remote desktop service (VNC).Nov 7 00:08:36 localhost systemd: Unit vncserver@:4.service entered failed state.Nov 7 00:08:36 localhost systemd: Failed to mark scope session-c3.scope as abandoned : Stale file handle

A megoldás a /tmp mappa alatti fájl törlése:

sudo rm -i /tmp/.X11-unix/X4

Kimenet:

rm: remove socket '/tmp/.X11-unix/X4'? y

Ezután indítsa el a VNC szolgáltatást:

sudo systemctl start vncserver@:4.service

Általános hibaelhárítás

Viszonylag ritkán ugyan, de előfordulhat, hogy a VNC-vel való munka során más hibákkal is találkozik. Például a távoli asztal képernyője elsötétülhet vagy leállhat, a munkamenet összeomolhat egy rejtélyes hibaüzenettel, a VNC Viewer nem csatlakozik megfelelően vagy nem továbbít parancsokat a GUI-nak az alkalmazások indításához stb.

A jobb megértéshez javasoljuk a /var/log/messages fájl megtekintését. Időnként szükség lehet a szerver újraindítására, vagy szélsőséges esetben a VNC szolgáltatás újbóli létrehozására.

A rendszer erőforrásai is bűnösek lehetnek; lehet, hogy plusz RAM-ot kell hozzáadni a Droplethez stb.

8. lépés – VNC munkamenetek biztosítása SSH alagúttal

Eleddig mind a joevnc, mind a janevnc titkosítatlan csatornákon keresztül érte el a távoli asztali gépeit. Ahogy korábban láttuk, a VNC Viewer erre figyelmeztet a csatlakozáskor; csak a jelszó van titkosítva a munkamenetek kezdetekor. Minden későbbi hálózati adatforgalom és adatátvitel nyitva áll bárki számára, aki közben lehallgathatja.

Az SSH-alagutakról

Ez az a pont, ahol a Secure Shell (SSH) munkamenetek segíthetnek. Az SSH segítségével a VNC egy SSH titkosított munkamenet keretein belül futtatható. Ezt nevezzük alagútnak. Gyakorlatilag a VNC-forgalom az SSH protokollt használja, így a kiszolgálóval folytatott kommunikáció titkosítva van. Azért hívják alagútnak, mert az SSH körkörös védelmet nyújt a VNC felett, és a VNC úgy fut, mintha egy alagútban lenne az SSH-n belül. Az SSH-alagút más protokollok, például a POP, az X vagy az IMAP esetében is használható.

Az SSH alagútépítés porttovábbítással működik, ami alapvetően egy eszköz arra, hogy a hozzáférést egy adott portról egy másik gép egy másik portjára fordítsuk. A porttovábbítással, amikor egy kliensalkalmazás csatlakozik az A gépen futó A porthoz, az átlátszóan átkerül a B gépen futó B portra. A kliensalkalmazás nem tud erről a fordításról, és azt hiszi, hogy az eredeti porthoz csatlakozik. A porttovábbítás az SSH protokoll egyik jellemzője.

Az SSH-alagutak továbbításával kapcsolatos részletesebb információkért olvassa el ezt a bemutatót.

Ebben a bemutatóban a VNC-t úgy konfiguráltuk, hogy az 5904-es (a joevnc számára) és az 5905-ös (a janevnc számára) porton fusson.

A porttovábbítással beállíthatjuk, hogy a helyi VNC kliensünk a helyi kliens számítógép 5900-as portjára csatlakozzon, és ezt leképezhetjük a távoli szerver 5905-ös portjára. Ez a példa a janevnc kapcsolatára vonatkozik, de ugyanezeket a lépéseket bármely más kliens esetében is könnyedén követhetjük.

A VNC-kliensalkalmazás indításakor a localhost 5900-as portjára mutathatunk, és a porttovábbításunk átláthatóan a távoli kiszolgáló 5905-ös portjára fogja továbbítani.

Figyelem: Minden alkalommal el kell indítania egy SSH szakaszt, hogy a kapcsolat biztonságos legyen.

OS X

A Mac számítógépen nyissa meg a Terminált.

Adja meg a következő kapcsolati adatokat, ügyelve arra, hogy a your_server_ip helyébe a távoli szerver IP-címét írja:

ssh -L 5900:your_server_ip:5905 janevnc@your_server_ip -N

Adja meg a janevnc UNIX jelszavát. A kapcsolat látszólag lógni fog; addig tarthatja fenn, amíg a távoli asztalt használja.

Most ugorjon tovább a VNC Viewer utasításaihoz.

Windows

A janevnc VNC munkamenetének biztosításához feltételezzük, hogy a helyi Windows számítógépen telepítve van a PuTTY. A PuTTY ingyenes és letölthető innen.

Ha a janevnc VNC és terminál munkamenetei még nincsenek lezárva, akkor most zárjuk be őket.

Indítsuk el a PuTTY-t. A munkamenet képernyőn győződjön meg róla, hogy megadta a szerver IP-címét, és adjon egy leíró nevet a kapcsolatnak, majd kattintson a Mentés gombra a kapcsolat adatainak mentéséhez. Figyelje meg, hogy a Hostname mezőben username@your_server_ip-t adtunk meg:

Ezután bontsa ki a bal oldali navigációs ablakban az SSH menüpontot, és válassza ki az X11 elemet. Ekkor megjelennek a munkamenet X11-továbbítási tulajdonságai. Győződjön meg róla, hogy az X11-továbbítás engedélyezése jelölőnégyzet be van jelölve. Ez biztosítja, hogy az SSH titkosítja a kiszolgáló és az ügyfél között áramló X Windows forgalmat:

Végül válassza az SSH > Alagutak lehetőséget. A Forrásport mezőbe írja be a 5900 értéket. A Cél mezőben adja meg a kiszolgáló nevét vagy IP-címét, majd egy kettőspontot és a kívánt felhasználó VNC-portjának számát. Esetünkben a your_server_ip:5905.

alternatívaként használhatja az 5902-es portot. A 2 ebben az esetben a janevnc megjelenítési száma lenne (emlékszik a janevnc vncserver parancs futtatásakor megjelenő üzenetre).

Kattintson a Hozzáadás gombra, és a leképezés hozzáadásra kerül a Továbbított portok között. Itt adjuk hozzá a porttovábbítást az SSH munkamenethez; amikor a felhasználó csatlakozik a localhosthoz az 5900-as porton, a kapcsolat automatikusan át lesz tunnelezve az SSH-n keresztül a távoli kiszolgáló 5905-ös portjára.

Menjen vissza a Sessions elemekre, és mentse el a munkamenetet a janevnc számára. Kattintson a Megnyitás gombra, és egy új terminál munkamenet nyílik meg a janevnc számára. Jelentkezzen be janevnc néven a megfelelő UNIX jelszóval:

VNC Viewer

Majd indítsa újra a VNC Viewert. Ezúttal a VNC-kiszolgáló címébe írja be a <^>, és hagyja, hogy a VNC-kiszolgáló válassza ki a titkosítási módszert:

Kattintson a Csatlakozás gombra.

Még mindig megjelenik a titkosítatlan munkamenetre figyelmeztető párbeszédpanel, de ezúttal nyugodtan figyelmen kívül hagyhatja. A VNC Viewer nem tud a portról, amelyre továbbítják (ezt az imént indított SSH-munkamenetben állította be), és azt feltételezi, hogy a helyi géphez próbál csatlakozni.

A figyelmeztetés elfogadása után megjelenik a jól ismert jelszókérdés. Adja meg a janevnc VNC jelszavát a távoli asztal eléréséhez.

Honnan tudja, hogy a munkamenet titkosított volt? Ha jobban belegondolunk, az SSH munkamenetben porttovábbítást állítottunk be. Ha nem jött volna létre SSH-munkamenet, a porttovábbítás nem működött volna. Valójában, ha bezárja a terminálablakot és kijelentkezik a PuTTY munkamenetből, majd megpróbál egyedül a VNC Viewerrel csatlakozni, a localhost:5900-hez való csatlakozási kísérlet a következő hibaüzenetet fogja mutatni:

Szóval, ha a localhost:5900 kapcsolat működik, biztos lehet benne, hogy a kapcsolat titkosított.

Ne feledje, hogy minden alkalommal, amikor a VNC-t használja, először az SSH-kapcsolatot kell létrehoznia, hogy a kapcsolat mindig titkosított legyen.

Következtetés

A CentOS Linux rendszerének elérése egy GUI frontendről sokkal egyszerűbbé teheti a rendszeradminisztrációt. Bármilyen kliens operációs rendszerből csatlakozhat, és nem kell a webes tárhely vezérlőpanelektől függenie. A VNC a legtöbb vezérlőpanelhez képest sokkal kisebb helyigényű.

Bár megmutattuk, hogyan csatlakozhat két hétköznapi felhasználó a VNC klienseivel, ez komoly termelési környezetben aligha praktikus. A valóságban a felhasználóknak testreszabott alkalmazásaik vagy böngészőik lesznek a szerver eléréséhez. Számos VNC szolgáltatás futtatása minden egyes felhasználó számára szükségtelenül megterheli a rendszer erőforrásait is, nem is beszélve a vele járó kockázatokról.

Ha úgy dönt, hogy telepíti és futtatja a VNC-t a termelő Linux-kiszolgálón, erősen javasoljuk, hogy csak adminisztrációs célokra használja.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.