Ba'zi foydalanuvchilar masofaviy ish stoli xizmatlarini ishlatish uchun Windows bilan nisbatan arzon VPS-ni ijaraga olishadi. Xuddi shu narsani Linuxda o'z uskunangizni ma'lumotlar markaziga joylashtirmasdan yoki maxsus serverni ijaraga olmasdan qilish mumkin. Ba'zi odamlar sinov va ishlab chiqish uchun tanish grafik muhitga yoki mobil qurilmalardan ishlash uchun keng kanalga ega masofaviy ish stoliga muhtoj. Remote FrameBuffer (RFB) protokoliga asoslangan Virtual Network Computing (VNC) tizimidan foydalanishning ko'plab variantlari mavjud. Ushbu qisqa maqolada biz uni virtual mashinada istalgan gipervisor bilan qanday sozlashni aytib beramiz.
Oglavlenie:
VNC serverini tanlash
VNC xizmati virtualizatsiya tizimiga o'rnatilishi mumkin va gipervizor uni emulyatsiya qilingan qurilmalar bilan bog'laydi va qo'shimcha konfiguratsiya talab qilinmaydi. Ushbu parametr katta xarajatlarni o'z ichiga oladi va barcha provayderlar tomonidan qo'llab-quvvatlanmaydi - hatto kamroq resurs talab qiladigan dasturda ham, haqiqiy grafik qurilmaga taqlid qilish o'rniga soddalashtirilgan abstraksiya (ramkabufer) virtual mashinaga o'tkaziladi. Ba'zan VNC serveri ishlaydigan X serveriga bog'langan, ammo bu usul jismoniy mashinaga kirish uchun ko'proq mos keladi va virtualda u bir qator texnik qiyinchiliklarni keltirib chiqaradi. VNC serverini o'rnatishning eng oson yo'li o'rnatilgan X serveridir. U jismoniy qurilmalarni (video adapter, klaviatura va sichqoncha) yoki ularning gipervisor yordamida emulyatsiyasini talab qilmaydi va shuning uchun har qanday VPS turiga mos keladi.
O'rnatish va sozlash
Bizga standart konfiguratsiyada Ubuntu Server 18.04 LTS o'rnatilgan virtual mashina kerak bo'ladi. Ushbu tarqatishning standart omborlarida bir nechta VNC serverlari mavjud:
Ish stoli muhitini barcha bog'liqliklar bilan o'rnatish quyidagi buyruq bilan amalga oshiriladi:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Keyin VNC serverini o'rnatishingiz kerak:
sudo apt-get install tigervnc-standalone-server tigervnc-common
Uni superuser sifatida ishlatish yomon fikr. Foydalanuvchi va guruh yarating:
sudo adduser vnc
Keling, foydalanuvchini sudo guruhiga qo'shamiz, shunda u ma'muriyat bilan bog'liq vazifalarni bajara oladi. Agar bunday ehtiyoj bo'lmasa, siz ushbu bosqichni o'tkazib yuborishingiz mumkin:
sudo gpasswd -a vnc sudo
Keyingi qadam ~/.vnc/ katalogida xavfsiz parol va konfiguratsiya fayllarini yaratish uchun VNC serverini vnc foydalanuvchi imtiyozlari bilan ishga tushirishdir. Parol uzunligi 6 dan 8 ta belgigacha bo'lishi mumkin (qo'shimcha belgilar kesiladi). Agar kerak bo'lsa, parol ham faqat ko'rish uchun o'rnatiladi, ya'ni. klaviatura va sichqonchadan foydalanmasdan. Vnc foydalanuvchisi sifatida quyidagi buyruqlar bajariladi:
su - vnc
vncserver -localhost no
Odatiy bo'lib, RFB protokoli 5900 dan 5906 gacha bo'lgan TCP port oralig'idan foydalanadi - bu shunday deyiladi. displey portlari, ularning har biri X server ekraniga mos keladi. Bunday holda, portlar :0 dan :6 gacha bo'lgan ekranlar bilan bog'lanadi. Biz ishga tushirgan VNC server namunasi 5901 portni tinglaydi (ekran: 1). Boshqa misollar :2, :3 va hokazo ekranli boshqa portlarda ishlashi mumkin. Keyingi konfiguratsiyadan oldin serverni toʻxtatish kerak:
vncserver -kill :1
Buyruq shunday ko'rsatilishi kerak: "Xtigervnc ID 18105 jarayonini o'ldirish... muvaffaqiyatli!"
TigerVNC ishga tushganda, u konfiguratsiya sozlamalarini sozlash uchun ~/.vnc/xstartup skriptini ishga tushiradi. Keling, o'z skriptimizni yarataylik, avval mavjud bo'lsa, uning zaxira nusxasini saqlaymiz:
mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup
XFCE ish stoli muhiti seansi quyidagi xstartup skripti tomonidan boshlanadi:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &
Xrdb buyrug'i VNC uchun uy katalogidagi .Xresources faylini o'qish uchun talab qilinadi. U erda foydalanuvchi turli xil grafik ish stoli sozlamalarini belgilashi mumkin: shriftni ko'rsatish, terminal ranglari, kursor mavzulari va boshqalar. Skript bajariladigan bo'lishi kerak:
chmod 755 ~/.vnc/xstartup
Bu VNC serverini sozlashni yakunlaydi. Agar siz uni vncserver -localhost no buyrug'i bilan (vnc foydalanuvchisi sifatida) ishga tushirsangiz, avval belgilangan parol bilan ulanishingiz va quyidagi rasmni ko'rishingiz mumkin:
Systemd orqali xizmatni ishga tushirish
VNC serverini qo'lda ishga tushirish jangovar foydalanish uchun mos emas, shuning uchun biz tizim xizmatini sozlaymiz. Buyruqlar root sifatida bajariladi (biz sudo dan foydalanamiz). Birinchidan, serverimiz uchun yangi birlik faylini yaratamiz:
sudo nano /etc/systemd/system/[email protected]
Nomdagi @ belgisi xizmatni sozlash uchun argumentni yuborish imkonini beradi. Bizning holatda, u VNC displey portini belgilaydi. Birlik fayli bir nechta bo'limlardan iborat:
[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
Keyin siz systemd-ni yangi fayl haqida xabardor qilishingiz va uni faollashtirishingiz kerak:
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
Nomdagi 1 raqami ekran raqamini bildiradi.
VNC serverini to'xtating, uni xizmat sifatida ishga tushiring va holatni tekshiring:
# от имени пользователя vnc
vncserver -kill :1
# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1
Agar xizmat ishlayotgan bo'lsa, biz shunga o'xshash narsalarni olishimiz kerak.
Ish stoliga ulanish
Bizning konfiguratsiyamiz shifrlashdan foydalanmaydi, shuning uchun tarmoq paketlari tajovuzkorlar tomonidan ushlanishi mumkin. Bundan tashqari, VNC serverlarida ko'pincha
sudo netstat -ap |more
Linux, FreeBSD, OS X va boshqa UNIX-ga o'xshash operatsion tizimlarda mijoz kompyuteridan tunnel ssh yordam dasturi yordamida amalga oshiriladi (sshd VNC serverida ishlayotgan bo'lishi kerak):
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip
-L opsiyasi masofaviy ulanishning 5901-portini localhost-dagi 5901-portga bog'laydi. -C opsiyasi siqishni yoqadi va -N opsiyasi ssh-ga masofaviy buyruqni bajarmaslikni aytadi. -l opsiyasi masofaviy kirish uchun kirishni belgilaydi.
Mahalliy kompyuterda tunnelni o'rnatganingizdan so'ng, VNC mijozini ishga tushirishingiz va VNC serveriga kirish uchun avval belgilangan paroldan foydalanib, 127.0.0.1:5901 (localhost:5901) xostiga ulanishni o'rnatishingiz kerak. Endi biz VPS-dagi XFCE grafik ish stoli muhiti bilan shifrlangan tunnel orqali xavfsiz muloqot qilishimiz mumkin. Skrinshotda virtual mashinaning hisoblash resurslarini kam iste'mol qilishini ko'rsatish uchun terminal emulyatorida yuqori yordamchi dastur ishlamoqda. Keyin hamma narsa foydalanuvchi ilovalariga bog'liq bo'ladi.
Siz deyarli har qanday VPS-da Linux-da VNC serverini o'rnatishingiz va sozlashingiz mumkin. Bu video adapter emulyatsiyasi yoki tijorat dasturiy ta'minot litsenziyalarini sotib olish bilan qimmat va resurs talab qiladigan konfiguratsiyalarni talab qilmaydi. Biz ko'rib chiqqan tizimga xizmat ko'rsatish variantiga qo'shimcha ravishda, boshqalar ham bor: tizim yuklanganda yoki inetd orqali talab qilinganda daemon rejimida (/etc/rc.local orqali) ishga tushirish. Ikkinchisi ko'p foydalanuvchi konfiguratsiyasini yaratish uchun qiziqarli. Internet Superserver VNC serverini ishga tushiradi va unga mijozni ulaydi, VNC server esa yangi ekran yaratadi va seansni boshlaydi. Uning ichida autentifikatsiya qilish uchun siz grafik displey menejeridan foydalanishingiz mumkin (masalan,
Manba: www.habr.com