VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04
Ang ilang mga gumagamit ay umuupa ng medyo murang VPS na may Windows upang magpatakbo ng mga remote na serbisyo sa desktop. Ang parehong ay maaaring gawin sa Linux nang hindi nagho-host ng iyong sariling hardware sa isang data center o pagrenta ng isang dedikadong server. Ang ilang mga tao ay nangangailangan ng isang pamilyar na graphical na kapaligiran para sa pagsubok at pagpapaunlad, o isang malayuang desktop na may malawak na channel para sa pagtatrabaho mula sa mga mobile device. Mayroong maraming mga opsyon para sa paggamit ng Remote FrameBuffer (RFB) protocol-based Virtual Network Computing (VNC) system. Sa maikling artikulong ito sasabihin namin sa iyo kung paano i-configure ito sa isang virtual machine na may anumang hypervisor.

Talaan ng nilalaman:

Pagpili ng isang VNC Server
Pag-install at pagsasaayos
Pagsisimula ng isang serbisyo sa pamamagitan ng systemd
Koneksyon sa Desktop

Pagpili ng isang VNC Server

Ang serbisyo ng VNC ay maaaring itayo sa sistema ng virtualization, at ikokonekta ito ng hypervisor sa mga emulated na device at walang karagdagang configuration ang kakailanganin. Ang pagpipiliang ito ay nagsasangkot ng makabuluhang overhead at hindi sinusuportahan ng lahat ng mga provider - kahit na sa isang hindi gaanong resource-intensive na pagpapatupad, kapag sa halip na tularan ang isang tunay na graphics device, isang pinasimpleng abstraction (framebuffer) ay inilipat sa virtual machine. Minsan ang isang VNC server ay nakatali sa isang tumatakbong X server, ngunit ang pamamaraang ito ay mas angkop para sa pag-access sa isang pisikal na makina, at sa isang virtual na ito ay lumilikha ng isang bilang ng mga teknikal na paghihirap. Ang pinakamadaling paraan upang mag-install ng VNC server ay gamit ang built-in na X server. Hindi ito nangangailangan ng mga pisikal na device (video adapter, keyboard at mouse) o ang kanilang emulation gamit ang hypervisor, at samakatuwid ay angkop para sa anumang uri ng VPS.

Pag-install at pagsasaayos

Kakailanganin namin ang isang virtual machine na may Ubuntu Server 18.04 LTS sa default na configuration nito. Mayroong ilang mga VNC server sa karaniwang mga repositoryo ng distribusyon na ito: MasikipVNC, TigerVNC, x11vnc at iba pa. We settled on TigerVNC - a current fork of TightVNC, which is not supported by the developer. Ang pag-set up ng iba pang mga server ay ginagawa sa katulad na paraan. Kailangan mo ring pumili ng desktop environment: ang pinakamainam na opsyon, sa aming opinyon, ay ang XFCE dahil sa medyo mababang mga kinakailangan para sa mga mapagkukunan ng pag-compute. Ang mga nais ay maaaring mag-install ng isa pang DE o WM: ang lahat ay nakasalalay sa mga personal na kagustuhan, ngunit ang pagpili ng software ay direktang nakakaapekto sa pangangailangan para sa RAM at mga core ng computing.

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04

Ang pag-install ng desktop environment kasama ang lahat ng dependencies ay ginagawa gamit ang sumusunod na command:

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

Susunod na kailangan mong i-install ang VNC server:

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

Ang pagpapatakbo nito bilang superuser ay isang masamang ideya. Lumikha ng user at grupo:

sudo adduser vnc

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04

Idagdag natin ang user sa sudo group para magawa niya ang mga gawaing nauugnay sa administrasyon. Kung walang ganoong pangangailangan, maaari mong laktawan ang hakbang na ito:

sudo gpasswd -a vnc sudo

Ang susunod na hakbang ay patakbuhin ang VNC server na may mga pribilehiyo ng gumagamit ng vnc upang lumikha ng isang secure na password at mga configuration file sa ~/.vnc/ directory. Ang haba ng password ay maaaring mula 6 hanggang 8 character (ang mga dagdag na character ay pinutol). Kung kinakailangan, ang isang password ay nakatakda din para sa pagtingin lamang, i.e. walang access sa keyboard at mouse. Ang mga sumusunod na utos ay isinasagawa bilang gumagamit ng vnc:

su - vnc
vncserver -localhost no

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04
Bilang default, ang RFB protocol ay gumagamit ng TCP port range mula 5900 hanggang 5906 - ito ang tinatawag. display port, bawat isa ay tumutugma sa isang screen ng X server. Sa kasong ito, ang mga port ay nauugnay sa mga screen mula :0 hanggang :6. Ang halimbawa ng VNC server na inilunsad namin ay nakikinig sa port 5901 (screen: 1). Maaaring gumana ang ibang mga pagkakataon sa iba pang mga port na may mga screen :2, :3, atbp. Bago ang karagdagang configuration, kailangan mong ihinto ang server:

vncserver -kill :1

Ang utos ay dapat magpakita ng isang bagay na tulad nito: "Pagpatay ng Xtigervnc process ID 18105... tagumpay!"

Kapag nagsimula ang TigerVNC, pinapatakbo nito ang ~/.vnc/xstartup script upang i-configure ang mga setting ng configuration. Gumawa tayo ng sarili nating script, mag-save muna ng backup na kopya ng dati, kung mayroon:

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

Ang XFCE desktop environment session ay sinimulan ng sumusunod na xstartup script:

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

Ang xrdb command ay kinakailangan para mabasa ng VNC ang .Xresources file sa home directory. Doon ay maaaring tukuyin ng user ang iba't ibang graphical na mga setting ng desktop: pag-render ng font, mga kulay ng terminal, mga tema ng cursor, atbp. Dapat gawing executable ang script:

chmod 755 ~/.vnc/xstartup

Kinukumpleto nito ang pag-setup ng VNC server. Kung patakbuhin mo ito gamit ang command na vncserver -localhost no (bilang vnc user), maaari kang kumonekta sa naunang tinukoy na password at tingnan ang sumusunod na larawan:

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04

Pagsisimula ng isang serbisyo sa pamamagitan ng systemd

Ang manu-manong pagsisimula ng VNC server ay hindi angkop para sa paggamit ng labanan, kaya magko-configure kami ng serbisyo ng system. Ang mga utos ay isinasagawa bilang ugat (ginagamit namin ang sudo). Una, gumawa tayo ng bagong unit file para sa ating server:

sudo nano /etc/systemd/system/[email protected]

Ang simbolo ng @ sa pangalan ay nagbibigay-daan sa iyo na magpasa ng argumento upang i-configure ang serbisyo. Sa aming kaso, tinutukoy nito ang VNC display port. Ang unit file ay binubuo ng ilang mga seksyon:

[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

Pagkatapos ay kailangan mong abisuhan ang systemd tungkol sa bagong file at i-activate ito:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

Ang numero 1 sa pangalan ay tumutukoy sa screen number.

Itigil ang VNC server, simulan ito bilang isang serbisyo at suriin ang katayuan:

# ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ vnc 
vncserver -kill :1

# с привилСгиями ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Kung tumatakbo ang serbisyo, dapat tayong makakuha ng ganito.

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04

Koneksyon sa Desktop

Ang aming configuration ay hindi gumagamit ng encryption, kaya ang mga network packet ay maaaring maharang ng mga umaatake. Bilang karagdagan, sa mga server ng VNC ay madalas maghanap ng mga kahinaan, kaya hindi mo dapat buksan ang mga ito para sa access mula sa Internet. Para secure na kumonekta sa iyong lokal na computer, kailangan mong i-package ang trapiko sa isang SSH tunnel at pagkatapos ay i-configure ang isang VNC client. Sa Windows, maaari kang gumamit ng graphical na SSH client (halimbawa, PuTTY). Para sa seguridad, ang TigerVNC sa server ay nakikinig lamang sa localhost at hindi direktang naa-access mula sa mga pampublikong network:


sudo netstat -ap |more

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04
Sa Linux, FreeBSD, OS X at iba pang mga OS na katulad ng UNIX, ang isang tunel mula sa computer ng kliyente ay ginawa gamit ang ssh utility (ang sshd ay dapat na tumatakbo sa VNC server):

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

Ang -L na opsyon ay nagbubuklod sa port 5901 ng malayuang koneksyon sa port 5901 sa localhost. Ang -C na opsyon ay nagbibigay-daan sa compression, at ang -N na opsyon ay nagsasabi sa ssh na huwag isagawa ang remote command. Ang -l na opsyon ay tumutukoy sa pag-login para sa malayuang pag-login.

Pagkatapos i-set up ang tunnel sa lokal na computer, kailangan mong ilunsad ang VNC client at magtatag ng koneksyon sa host 127.0.0.1:5901 (localhost:5901), gamit ang dating tinukoy na password upang ma-access ang VNC server. Maaari na tayong makipag-usap nang ligtas sa pamamagitan ng isang naka-encrypt na tunnel sa XFCE graphical desktop environment sa VPS. Sa screenshot, ang nangungunang utility ay tumatakbo sa terminal emulator upang ipakita ang mababang pagkonsumo ng virtual machine ng mga mapagkukunan ng computing. Pagkatapos ang lahat ay depende sa mga application ng gumagamit.

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04
Maaari kang mag-install at mag-configure ng VNC server sa Linux sa halos anumang VPS. Hindi ito nangangailangan ng mahal at masinsinang mapagkukunan ng mga pagsasaayos na may emulation ng video adapter o pagbili ng mga lisensya ng komersyal na software. Bilang karagdagan sa opsyon sa serbisyo ng system na aming isinasaalang-alang, may iba pa: ilunsad sa daemon mode (sa pamamagitan ng /etc/rc.local) kapag nag-boot ang system o on demand sa pamamagitan ng inetd. Ang huli ay kawili-wili para sa paglikha ng mga pagsasaayos ng maraming gumagamit. Sisimulan ng Internet Superserver ang VNC server at ikonekta ang kliyente dito, at ang VNC server ay gagawa ng bagong screen at sisimulan ang session. Upang magpatotoo sa loob nito, maaari kang gumamit ng isang graphical display manager (halimbawa, LightDM), at pagkatapos idiskonekta ang kliyente, isasara ang session at wawakasan ang lahat ng programang gumagana sa screen.

VPS sa Linux na may graphical na interface: paglulunsad ng VNC server sa Ubuntu 18.04

Pinagmulan: www.habr.com

Magdagdag ng komento