Bəzi istifadəçilər uzaq masaüstü xidmətini idarə etmək üçün Windows ilə nisbətən ucuz VPS icarəyə götürürlər. Eyni şeyi Linux-da məlumat mərkəzinə öz avadanlıqlarınızı yerləşdirmədən və ya xüsusi server icarəyə götürmədən etmək olar. Sınaq və inkişaf üçün kiməsə tanış qrafik mühit və ya mobil cihazlardan işləmək üçün geniş kanalı olan uzaq iş masası lazımdır. Remote FrameBuffer (RFB) protokol əsaslı Virtual Network Computing (VNC) sistemi üçün çoxlu proqramlar mövcuddur. Qısa bir məqalədə onu istənilən hipervizorla virtual maşında necə quracağınızı sizə xəbər verəcəyik.
Mündəricat:
VNC serverinin seçilməsi
VNC xidməti virtualizasiya sisteminə daxil edilə bilər, hipervizor isə onu emulyasiya edilmiş cihazlarla əlaqələndirəcək və əlavə konfiqurasiya tələb olunmur. Bu seçim əhəmiyyətli əlavə xərcləri əhatə edir və bütün provayderlər tərəfindən dəstəklənmir - hətta daha az resurs tələb edən tətbiqetmədə, real qrafik cihazını təqlid etmək əvəzinə virtual maşına sadələşdirilmiş abstraksiya (framebufer) ötürüldüyü zaman. Bəzən VNC serveri işləyən X serverinə bağlanır, lakin bu üsul fiziki maşına daxil olmaq üçün daha uyğundur və virtual maşında bir sıra texniki çətinliklər yaradır. Daxili X serveri olan VNC serverini quraşdırmaq ən asandır. Fiziki cihazların (video adapter, klaviatura və siçan) mövcudluğunu və ya hipervizordan istifadə edərək onların emulyasiyasını tələb etmir və buna görə də istənilən VPS növü üçün uyğundur.
Quraşdırma və konfiqurasiya
Bizə standart konfiqurasiyada Ubuntu Server 18.04 LTS ilə virtual maşın lazımdır. Bu paylamanın standart depolarında bir neçə VNC server var:
İş masası mühitinin bütün asılılıqlarla quraşdırılması aşağıdakı əmrlə həyata keçirilir:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Sonra VNC serverini quraşdırmalısınız:
sudo apt-get install tigervnc-standalone-server tigervnc-common
Kök kimi işlətmək pis fikirdir. İstifadəçi və qrup yaradın:
sudo adduser vnc
İstifadəçini sudo qrupuna əlavə edək ki, o, idarəetmə ilə bağlı tapşırıqları yerinə yetirə bilsin. Belə bir ehtiyac yoxdursa, bu addım atlana bilər:
sudo gpasswd -a vnc sudo
Növbəti addım ~/.vnc/ qovluğunda təhlükəsiz parol və konfiqurasiya faylları yaratmaq üçün VNC serverini vnc istifadəçi imtiyazları ilə işə salmaqdır. Parolun uzunluğu 6 ilə 8 simvol arasında ola bilər (əlavə olanlar kəsilir). Lazım gələrsə, yalnız görünüş üçün parol da təyin olunur, yəni. klaviatura və siçan girişi olmadan. Aşağıdakı əmrlər vnc istifadəçisi kimi işlədilir:
su - vnc
vncserver -localhost no
Varsayılan olaraq, RFB protokolu 5900 ilə 5906 arasında TCP port diapazonundan istifadə edir - bu sözdə. hər biri X server ekranına uyğun gələn portlar. Portlar :0 - :6 ekranları ilə əlaqələndirilir. Başladığımız VNC server nümunəsi 5901 portunu dinləyir (ekran :1). Digər nümunələr :2, :3 və s. ekranları olan digər portlarda işləyə bilər. Növbəti konfiqurasiyadan əvvəl serveri dayandırın:
vncserver -kill :1
Komanda bu kimi bir şey göstərməlidir: “Xtigervnc proses ID 18105-in öldürülməsi… uğur!”.
Başlanğıcda TigerVNC konfiqurasiya seçimlərini təyin etmək üçün ~/.vnc/xstartup skriptini icra edir. Mövcud olanın ehtiyat nüsxəsini saxladıqdan sonra, əgər varsa, öz skriptimizi yaradaq:
mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup
XFCE masa üstü mühiti sessiyası aşağıdakı xstartup skripti ilə başladılır:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &
VNC sisteminin .Xresources faylını ev kataloqunda oxuması üçün xrdb əmri tələb olunur. Orada istifadəçi qrafik iş masası üçün müxtəlif variantları müəyyən edə bilər: şriftlərin göstərilməsi, terminal rəngləri, kursor mövzuları və s. Skript icra edilə bilən olmalıdır:
chmod 755 ~/.vnc/xstartup
Bu, VNC serverinin quraşdırılmasını tamamlayır. Əgər onu vncserver -localhost no əmri ilə (vnc istifadəçisi kimi) işlədirsinizsə, əvvəllər qeyd etdiyiniz parolla qoşula və aşağıdakı şəkilə baxa bilərsiniz:
Systemd vasitəsilə xidmətə başlamaq
VNC serverinin əl ilə işə salınması döyüş istifadəsi üçün o qədər də uyğun deyil, ona görə də biz sistem xidməti quracağıq. Əmrlər kök kimi yerinə yetirilir (sudo istifadə edərək). Əvvəlcə serverimiz üçün yeni vahid faylı yaradaq:
sudo nano /etc/systemd/system/[email protected]
Addakı @ simvolu xidməti konfiqurasiya etmək üçün arqument ötürməyə imkan verir. Bizim vəziyyətimizdə VNC ekran portunu təyin edir. Vahid fayl bir neçə bölmədən ibarətdir:
[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
Sonra yeni fayl haqqında systemd-i xəbərdar etməli və onu aktivləşdirməlisiniz:
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
Addakı 1 rəqəmi ekran nömrəsini təyin edir.
VNC serverini dayandırın, onu xidmət kimi işə salın və vəziyyəti yoxlayın:
# от имени пользователя vnc
vncserver -kill :1
# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1
Xidmət işləyirsə, buna bənzər bir şey almalıyıq.
Masaüstü bağlantısı
Konfiqurasiyamız şifrələmədən istifadə etmir, ona görə də şəbəkə paketləri müdaxilə edənlər tərəfindən tutula bilər. Bundan əlavə, VNC serverlərində olduqca tez-tez
sudo netstat -ap |more
Linux, FreeBSD, OS X və digər UNIX kimi əməliyyat sistemlərində ssh yardım proqramından istifadə etməklə müştəri kompüterindən tunel hazırlanır (sshd VNC serverində işləməlidir):
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip
-L seçimi uzaqdan əlaqənin 5901 portunu localhost-da 5901 portuna bağlayır. -C seçimi sıxılmaya imkan verir və -N ssh yardım proqramına uzaqdan əmri işə salmamağı bildirir. -l seçimi uzaqdan giriş üçün girişi təyin edir.
Yerli kompüterdə tunel qurduqdan sonra VNC müştərisini işə salmalı və VNC serverinə daxil olmaq üçün əvvəllər təyin edilmiş paroldan istifadə edərək 127.0.0.1:5901 (localhost:5901) host ilə əlaqə yaratmalısınız. İndi biz VPS-də XFCE qrafik iş masası mühiti ilə şifrələnmiş tunel vasitəsilə təhlükəsiz əlaqə saxlaya bilərik. Ekran görüntüsündə virtual maşının hesablama resurslarının yüngül istehlakını göstərmək üçün terminal emulyatorunda ən yaxşı yardım proqramı işləyir. Bundan əlavə, hər şey istifadəçi proqramlarından asılı olacaq.
Siz demək olar ki, istənilən VPS-də Linux-da VNC serverini quraşdıra və konfiqurasiya edə bilərsiniz. Video adapter emulyasiyası və ya kommersiya proqram təminatı lisenziyalarının alınması ilə bahalı və resurs tutumlu konfiqurasiyaları tələb etmir. Nəzərdən keçirdiyimiz sistem xidməti seçiminə əlavə olaraq, başqaları da var: sistem açılışında və ya inetd vasitəsilə tələb əsasında demon rejimində (/etc/rc.local vasitəsilə) işləmək. Sonuncu çox istifadəçi konfiqurasiyaları yaratmaq üçün maraqlıdır. İnternet superserveri VNC serverini işə salacaq və müştərini ona bağlayacaq, VNC server isə yeni ekran yaradıb sessiyanı başlayacaq. Onun daxilində autentifikasiya etmək üçün qrafik displey menecerindən istifadə edə bilərsiniz (məsələn,
Mənbə: www.habr.com