Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en
Néhány felhasználó viszonylag olcsó Windows VPS-t bérel az távoli asztali szolgáltatások indításához. Ugyanezt megtehetjük Linuxon is, anélkül, hogy saját hardvert kellene elhelyezni egy adatközpontban vagy bérelni egy dedikált szervert. Egyeseknek a megszokott grafikus felületre van szükségük teszteléshez és fejlesztéshez, vagy távoli asztalra széles sávú kapcsolattal mobil eszközök használatához. Számos alkalmazási lehetőség létezik a Remote FrameBuffer (RFB) protokollra épülő Virtual Network Computing (VNC) rendszerre. Egy rövid cikkben bemutatjuk, hogyan állítható be egy virtuális gépen bármely hipervizorral.

Tartalomjegyzék:

VNC szerver kiválasztása
Telepítés és beállítás
Szolgáltatás indítása a systemd-n keresztül
Kapcsolódás az asztalhoz

VNC szerver kiválasztása

A VNC szolgáltatás integrálható a virtualizációs rendszerbe, miközben a hipervizor összeköti azt az emulált eszközökkel, így nincs szükség további beállításokra. Ez a lehetőség jelentős többletköltségekkel jár, és nem minden szolgáltató támogatja — még egy kevésbé erőforrás-igényes megvalósítás esetén is, amikor a valódi grafikus eszköz emulációja helyett egy egyszerűsített absztrakciót (framebuffer) kap a virtuális gép. Néha a VNC-szerver egy futó X-szerverhez kötődik, de ez a módszer inkább a fizikai géphez való hozzáférésre alkalmas, mivel virtuális gépen műszaki nehézségeket okoz. A legegyszerűbb, ha a beépített X-szerverrel együtt telepítjük a VNC-szervert. Ez nem igényli fizikai eszközök (video adapter, billentyűzet és egér) meglétét vagy azok hipervizorral való emulációját, így bármilyen típusú VPS-hez alkalmas.

Telepítés és beállítás

Szükségünk lesz egy Ubuntu Server 18.04 LTS virtuális gépre az alapértelmezett konfigurációval. Ennek a disztribúciónak a standard tárolóiban több VNC szerver található: TightVNC, TigerVNC, x11vnc és egyebek. A TigerVNC-re esett a választásunk, amely a már nem támogatott TightVNC aktuális forkja. Más szerverek beállítása hasonló módon történik. Különböző asztali környezetet is választhatunk: véleményünk szerint az XFCE az optimális választás, mivel viszonylag alacsony a számítógépes erőforrásigénye. Aki szeretné, más DE-t vagy WM-t is telepíthet: ez teljes mértékben a személyes preferenciáktól függ, azonban a szoftverválasztás közvetlenül befolyásolja a memória és a processzor magok igényét.

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Az asztali környezet telepítése az összes függőséggel a következő parancs futtatásával történik:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Ezután szükséges a VNC szerver telepítése:

sudo apt-get install tigervnc-standalone-server tigervnc-common

Rossz ötlet a rendszergazda jogokkal indítani. Hozzunk létre egy felhasználót és csoportot:

sudo adduser vnc

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Adjuk hozzá a felhasználót a sudo csoporthoz, hogy el tudja látni az adminisztrációval kapcsolatos feladatokat. Ha nincs szükség erre, ez a lépés kihagyható:

sudo gpasswd -a vnc sudo

A következő lépésben el kell indítani a VNC szervert vnc felhasználó jogokkal, hogy biztonságos jelszót és konfigurációs fájlokat hozhassunk létre a ~/.vnc/ könyvtárban. A jelszó hossza 6 és 8 karakter között lehet (a felesleges karakterek levágásra kerülnek). Szükség esetén megadható egy megtekintési jelszó is, ami csak a billentyűzethez és az egérhez való hozzáférés nélkül működik. A következő parancsokat a vnc felhasználó nevében kell futtatni:

su - vnc
vncserver -localhost no

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en
Alapértelmezés szerint az RFB protokoll a TCP-portok 5900-tól 5906-ig terjedő tartományát használja — ezeket a megjelenítési portoknak nevezik, és mindegyik az X-szerver egyik képernyőjéhez tartozik. Ezek a portok a :0-tól :6-ig terjednek. A általunk indított VNC szerver példány a 5901-es portot hallgatja (képernyő :1). Más példányok más portokon :2, :3 stb. futhatnak. További beállítás előtt le kell állítani a szervert:

vncserver -kill :1

A parancsnak körülbelül a következő üzenetet kell kiadnia: „Killing Xtigervnc process ID 18105… success!”.

A TigerVNC indításakor a ~/.vnc/xstartup szkriptet hajtja végre a konfigurációs paraméterek beállításához. Hozzunk létre saját szkriptet, először készítsünk egy biztonsági másolatot a meglévőről, ha van:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

Az XFCE asztali környezet munkamenete a következő xstartup szkripttel indítható:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

Az xrdb parancs szükséges ahhoz, hogy a VNC rendszer olvassa a .Xresources fájlt a felhasználói könyvtárban. Itt a felhasználó különböző paramétereket állíthat be a grafikus asztalhoz: betűk megjelenítése, terminál színek, kurzortémák stb. A szkriptet futtathatóvá kell tenni:

chmod 755 ~\/ .vnc\/ xstartup

Ezzel befejeződött a VNC szerver beállítása. Ha a vncserver -localhost no parancsot futtatjuk (a vnc felhasználó nevében), a megadott jelszóval csatlakozva a következőképpen nézhetjük meg:

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Szolgáltatás indítása a systemd-n keresztül

A VNC szerver kézi indítása nem igazán ideális a termeléshez, ezért beállítunk egy rendszer szolgáltatást. A parancsokat root néven hajtjuk végre (használjuk a sudot). Először létrehozunk egy új egységfájlt a szerverünkhöz:

sudo nano \/etc\/systemd\/system\/vncserver@.service

Az @ szimbólum a névben lehetővé teszi, hogy átadjuk az érvet a szolgáltatás konfigurálásához. A mi esetünkben ez a VNC kijelző portját adja meg. Az egységfájl több szakaszból áll:

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=\/home\/vnc 
PIDFile=\/home\/vnc\/.vnc\/%H:%i.pid
ExecStartPre=-\/usr\/bin\/vncserver -kill :%i > \/dev\/null 2>&1
ExecStart=\/usr\/bin\/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=\/usr\/bin\/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Ezután értesítenünk kell a systemd-t az új fájl felfedezéséről és aktiválni kell:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service

Az 1-es szám a névben a képernyő számát határozza meg.

Leállítjuk a VNC szervert, szolgáltatásként indítjuk, és ellenőrizzük az állapotot:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Ha a szolgáltatás működik, akkor körülbelül ilyen eredményt kell kapnunk.

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Kapcsolódás az asztalhoz

A mi konfigurációnk nem használ titkosítást, így a hálózati csomagokat a rosszindulatú hackerek elfoghatják. Továbbá a VNC szerverek gyakran sebezhetőségeket, így nem ajánlott őket közvetlen internetes hozzáféréshez nyitni. Biztonságos csatlakozáshoz a helyi számítógépen SSH alagútba kell csomagolni a forgalmat, majd beállítani a VNC klienst. Windows alatt grafikus SSH klienst (például PuTTY) használhatunk. A TigerVNC a szerveren csak a localhost-ra figyel, és közvetlenül nem elérhető a nyilvános hálózatokból:


sudo netstat -ap |more

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en
Linux, FreeBSD, OS X és más UNIX-szerű operációs rendszerek alatt az alagút a kliens számítógépről az ssh segédprogram segítségével készül (a VNC szerveren a sshd-nek futnia kell):

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

A -L option binds the remote connection port 5901 to port 5901 on localhost. The -C option enables compression, while -N tells the ssh utility that there's no need to execute a remote command. The -l option specifies the login for remote system access.

After setting up the tunnel on the local computer, you need to run the VNC client and connect to the host 127.0.0.1:5901 (localhost:5901), using the password previously set for accessing the VNC server. Now we can securely interact through the encrypted tunnel with the XFCE desktop environment on the VPS. The screenshot in the terminal emulator runs the top utility to show negligible resource consumption by the virtual machine. Everything else will depend on user applications.

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en
You can install and configure a VNC server on Linux on almost any VPS. Expensive and resource-intensive configurations with video adapter emulation or purchasing commercial software licenses are not necessary for this. Besides the system service option we discussed, there are others: starting in daemon mode (via /etc/rc.local) at system boot or on demand via inetd. The latter is interesting for creating multi-user configurations. The internet superserver will start the VNC server and connect it with a client, and the VNC server will create a new screen and start a session. For authentication within it, you can use a graphical display manager (for example, LightDM), and after the client disconnects, the session will be closed and all running programs on the screen will be terminated.

Linux VPS grafikus felülettel: VNC szerver indítása Ubuntu 18.04-en

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster