Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү
Кээ бир колдонуучулар алыскы иш такта кызматтарын иштетүү үчүн Windows менен салыштырмалуу арзан VPS ижарага алышат. Ушундай эле нерсени Linux'та да жасоого болот. Кээ бир адамдарга тестирлөө жана иштеп чыгуу үчүн тааныш графикалык чөйрө керек же мобилдик түзүлүштөрдөн иштөө үчүн кеңири каналы бар алыскы иш тактасы керек. Remote FrameBuffer (RFB) протоколуна негизделген Virtual Network Computing (VNC) тутумун колдонуунун көптөгөн варианттары бар. Бул кыска макалада биз аны каалаган гипервизор менен виртуалдык машинада кантип конфигурациялоону айтып беребиз.

Мазмуну:

VNC серверин тандоо
Орнотуу жана тарам
Systemd аркылуу кызматты баштоо
Desktop Connection

VNC серверин тандоо

VNC кызматын виртуалдаштыруу системасына курууга болот жана гипервизор аны эмуляцияланган түзүлүштөр менен туташтырат жана кошумча конфигурация талап кылынбайт. Бул параметр олуттуу кошумча чыгымдарды талап кылат жана бардык провайдерлер тарабынан колдоого алынбайт - азыраак ресурсту талап кылган ишке ашырууда да, чыныгы графикалык түзүлүштү эмуляциялоонун ордуна виртуалдык машинага жөнөкөйлөштүрүлгөн абстракция (кадр буфери) өткөрүлүп берилет. Кээде VNC сервери иштеп жаткан X серверине туташып калат, бирок бул ыкма физикалык машинага жетүү үчүн көбүрөөк ылайыктуу, ал эми виртуалдык машинада бир катар техникалык кыйынчылыктарды жаратат. VNC серверин орнотуунун эң оңой жолу - орнотулган X сервери. Ал физикалык түзүлүштөрдү (видео адаптер, клавиатура жана чычкан) же аларды гипервизор аркылуу эмуляциялоону талап кылбайт, ошондуктан VPSтин бардык түрүнө ылайыктуу.

Орнотуу жана тарам

Бизге Ubuntu Server 18.04 LTS демейки конфигурациясында виртуалдык машина керек болот. Бул бөлүштүрүүнүн стандарттык репозиторийлеринде бир нече VNC серверлери бар: TightVNC, TigerVNC, x11vnc жана башкалар. Биз TigerVNC - иштеп чыгуучу колдобой турган учурдагы TightVNC айрысына отурдук. Башка серверлерди орнотуу да ушундай эле жол менен жасалат. Сиз ошондой эле рабочий чөйрөнү тандап алышыңыз керек: оптималдуу вариант, биздин оюбузча, эсептөө ресурстарына салыштырмалуу төмөн талаптардан улам XFCE болмок. Каалоочулар башка DE же WM орното алышат: бардыгы жеке каалоолордон көз каранды, бирок программалык камсыздоону тандоо RAM жана эсептөө өзөктөрүнүн муктаждыгына түздөн-түз таасир этет.

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү

Бардык көз карандылыктар менен рабочий чөйрөнү орнотуу төмөнкү буйрук менен ишке ашырылат:

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

Андан кийин VNC серверин орнотуу керек:

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

Аны супер колдонуучу катары иштетүү жаман идея. Колдонуучу жана топ түзүү:

sudo adduser vnc

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү

Келгиле, колдонуучуну sudo тобуна кошуп алалы, ал администрацияга байланыштуу тапшырмаларды аткара алат. Мындай муктаждык жок болсо, бул кадамды өткөрүп жиберсеңиз болот:

sudo gpasswd -a vnc sudo

Кийинки кадам ~/.vnc/ каталогунда коопсуз сырсөз жана конфигурация файлдарын түзүү үчүн VNC серверин vnc колдонуучу артыкчылыктары менен иштетүү. Сырсөздүн узундугу 6дан 8ге чейин болушу мүмкүн (кошумча белгилер өчүрүлөт). Зарыл болсо, сырсөз да көрүү үчүн гана коюлат, б.а. клавиатурага жана чычканга жетүүсүз. Vnc колдонуучусу катары төмөнкү буйруктар аткарылат:

su - vnc
vncserver -localhost no

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү
Демейки боюнча, RFB протоколу TCP портунун диапазонун 5900дөн 5906га чейин колдонот - бул деп аталган. ар бири X серверинин экранына туура келген дисплей порттору. Бул учурда порттор :0дон :6га чейинки экрандар менен байланышкан. Биз ишке киргизген VNC серверинин инстанциясы 5901 портун угат (экран: 1). Башка инстанциялар :2, :3, ж.б. экрандары бар башка порттордо иштей алат. Андан ары конфигурациялоодон мурун серверди токтотуу керек:

vncserver -kill :1

Буйрук төмөнкүдөй нерсени көрсөтүшү керек: "Killing Xtigervnc process ID 18105... ийгиликтүү!"

TigerVNC башталганда, конфигурация орнотууларын конфигурациялоо үчүн ~/.vnc/xstartup скриптин иштетет. Келгиле, өзүбүздүн скриптибизди түзөлү, адегенде учурдагынын камдык көчүрмөсүн сактайлы, эгерде ал бар болсо:

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

XFCE рабочий чөйрө сеансы төмөнкү xstartup скрипти менен башталат:

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

VNC үй каталогундагы .Xresources файлын окуу үчүн xrdb буйругу талап кылынат. Ал жерде колдонуучу ар кандай графикалык рабочий орнотууларды аныктай алат: шрифттерди көрсөтүү, терминалдык түстөр, курсор темалары ж.б. Скрипт аткарыла турган болушу керек:

chmod 755 ~/.vnc/xstartup

Бул VNC серверин орнотууну аяктайт. Эгер сиз аны vncserver -localhost no буйругу менен иштетсеңиз (vnc колдонуучусу катары), мурда көрсөтүлгөн сырсөз менен туташып, төмөнкү сүрөттү көрө аласыз:

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү

Systemd аркылуу кызматты баштоо

VNC серверин кол менен баштоо согуштук колдонууга ылайыктуу эмес, андыктан система кызматын конфигурациялайбыз. Буйруктар root катары аткарылат (биз sudo колдонобуз). Биринчиден, серверибиз үчүн жаңы бирдик файлын түзөлү:

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

Аталышындагы @ белгиси кызматты конфигурациялоо үчүн аргумент өткөрүүгө мүмкүндүк берет. Биздин учурда, ал VNC дисплей портун көрсөтөт. Бирдик файлы бир нече бөлүктөн турат:

[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

Андан кийин жаңы файл жөнүндө systemdге кабарлап, аны активдештирүү керек:

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

Аталышындагы 1 саны экрандын номерин көрсөтөт.

VNC серверин токтотуп, аны кызмат катары баштаңыз жана статусун текшериңиз:

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

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

Эгер кызмат иштеп жатса, биз ушул сыяктуу нерсени алышыбыз керек.

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү

Desktop Connection

Биздин конфигурацияда шифрлөө колдонулбайт, андыктан тармак пакеттери чабуулчулар тарабынан кармалышы мүмкүн. Мындан тышкары, VNC серверлеринде көбүнчө кемчиликтерди табуу, ошондуктан сиз аларды Интернеттен жетүү үчүн ачпаңыз. Жергиликтүү компьютериңизге коопсуз туташуу үчүн, сиз трафикти SSH туннелине топтоп, андан кийин VNC кардарын конфигурациялашыңыз керек. Windows'до сиз графикалык SSH кардарын колдоно аласыз (мисалы, PuTTY). Коопсуздук үчүн, сервердеги TigerVNC жергиликтүү хостту гана угат жана коомдук тармактардан түздөн-түз жеткиликтүү эмес:


sudo netstat -ap |more

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү
Linux, FreeBSD, OS X жана башка UNIX сыяктуу ОСларда ssh утилитасынын жардамы менен кардар компьютеринен туннель жасалат (sshd VNC серверинде иштеши керек):

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

-L опциясы алыскы байланыштын 5901 портун localhostтогу 5901 портуна байланыштырат. -C опциясы кысуу мүмкүнчүлүгүн берет, ал эми -N опциясы ssh'ге алыскы буйрукту аткарбоо керектигин айтат. -l параметри алыстан кирүү үчүн логинди көрсөтөт.

Локалдык компьютерде туннелди орноткондон кийин, VNC серверине кирүү үчүн мурда көрсөтүлгөн сырсөздү колдонуп, VNC кардарын ишке киргизишиңиз керек жана 127.0.0.1:5901 (localhost:5901) хостуна байланыш түзүшүңүз керек. Эми биз VPSдеги XFCE графикалык иш столунун чөйрөсү менен шифрленген туннель аркылуу коопсуз байланыша алабыз. Скриншотто виртуалдык машинанын эсептөө ресурстарын аз керектөөсүн көрсөтүү үчүн терминал эмуляторунда жогорку утилита иштеп жатат. Андан кийин баары колдонуучу колдонмолоруна көз каранды болот.

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү
Сиз дээрлик бардык VPSке Linux ичинде VNC серверин орнотуп, конфигурациялай аласыз. Бул видео адаптер эмуляциясы менен кымбат жана ресурсту көп талап кылган конфигурацияларды же коммерциялык программалык камсыздоо лицензияларын сатып алууну талап кылбайт. Биз карап чыккан тутумдук тейлөө опциясынан тышкары, башкалары да бар: система жүктөлгөндө же inetd аркылуу талап боюнча демон режиминде (/etc/rc.local аркылуу) ишке киргизүү. Акыркысы көп колдонуучу конфигурацияларын түзүү үчүн кызыктуу. Интернет суперсервери VNC серверин ишке киргизип, кардарды ага туташтырат, ал эми VNC сервери жаңы экран түзүп, сессияны баштайт. Анын ичинде аныктыгын текшерүү үчүн графикалык дисплей менеджерин колдоно аласыз (мисалы, LightDM), жана кардарды ажыраткандан кийин, сессия жабылат жана экран менен иштеген бардык программалар токтотулат.

Графикалык интерфейси бар Linux боюнча VPS: Ubuntu 18.04 боюнча VNC серверин ишке киргизүү

Source: www.habr.com

Комментарий кошуу