График интерфэйс бүхий Linux дээрх VPS: Ubuntu 18.04 дээр VNC сервер ажиллуулж байна

График интерфэйс бүхий Linux дээрх VPS: Ubuntu 18.04 дээр VNC сервер ажиллуулж байна
Зарим хэрэглэгчид алсын ширээний үйлчилгээг ажиллуулахын тулд Windows-той харьцангуй хямд VPS түрээслэдэг. Линукс дээр өөрийн техник хангамжийг дата төвд байршуулах эсвэл тусгай сервер түрээслэхгүйгээр ижил зүйлийг хийж болно. Зарим хүмүүст туршилт хийх, хөгжүүлэхэд танил график орчин эсвэл хөдөлгөөнт төхөөрөмжөөс ажиллах өргөн суваг бүхий алсын ширээний компьютер хэрэгтэй. Remote FrameBuffer (RFB) протоколд суурилсан Virtual Network Computing (VNC) системийг ашиглах олон сонголт байдаг. Энэхүү богино нийтлэлд бид үүнийг ямар ч гипервизортой виртуал машин дээр хэрхэн тохируулахыг танд хэлэх болно.

Агуулгын хүснэгт:

VNC серверийг сонгож байна
Суулгалт ба тохиргоо
systemd-ээр дамжуулан үйлчилгээг эхлүүлж байна
Ширээний холболт

VNC серверийг сонгож байна

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

Суулгалт ба тохиргоо

Бидэнд өгөгдмөл тохиргоонд нь Ubuntu Server 18.04 LTS-тэй виртуал машин хэрэгтэй болно. Энэхүү түгээлтийн стандарт репозиторуудад хэд хэдэн VNC серверүүд байдаг: TightVNC, TigerVNC, x11vnc мөн бусад. Бид хөгжүүлэгч дэмждэггүй TightVNC-ийн одоогийн сэрээ болох TigerVNC дээр суурьшсан. Бусад серверүүдийг тохируулах нь ижил төстэй байдлаар хийгддэг. Та мөн ширээний орчинг сонгох хэрэгтэй: бидний бодлоор хамгийн оновчтой сонголт нь тооцоолох нөөцөд харьцангуй бага шаардлага тавьдаг тул 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 протокол нь 5900-аас 5906 хүртэлх TCP портын мужийг ашигладаг - энэ нь гэж нэрлэгддэг. тус бүр нь X серверийн дэлгэцтэй харгалзах портууд. Энэ тохиолдолд портууд нь :0-ээс:6 хүртэлх дэлгэцтэй холбоотой байдаг. Бидний эхлүүлсэн VNC серверийн жишээ нь 5901 портыг сонсдог (дэлгэц: 1). Бусад тохиолдлууд нь :2, :3 гэх мэт дэлгэцтэй бусад портууд дээр ажиллах боломжтой. Цаашид тохируулахын өмнө та серверийг зогсоох хэрэгтэй:

vncserver -kill :1

Энэ тушаал нь иймэрхүү зүйлийг харуулах ёстой: "Xtigervnc процессын 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 сервер ажиллуулж байна

Ширээний холболт

Манай тохиргоо шифрлэлт ашигладаггүй тул сүлжээний пакетуудыг халдагчид саатуулж болно. Нэмж дурдахад VNC серверүүдэд ихэвчлэн байдаг эмзэг байдлыг олох, тиймээс та тэдгээрийг интернетээс хандахын тулд нээх ёсгүй. Дотоод компьютер дээрээ найдвартай холбогдохын тулд та урсгалыг SSH туннелд багцалж, дараа нь VNC клиентийг тохируулах хэрэгтэй. Windows дээр та график SSH клиент (жишээ нь, PuTTY) ашиглаж болно. Аюулгүй байдлын үүднээс сервер дээрх TigerVNC нь зөвхөн localhost-ыг сонсдог бөгөөд нийтийн сүлжээнээс шууд хандах боломжгүй:


sudo netstat -ap |more

График интерфэйс бүхий Linux дээрх VPS: Ubuntu 18.04 дээр VNC сервер ажиллуулж байна
Линукс, 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 сервер ажиллуулж байна

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх