В Мо кори сервери VNC-ро дар ҳама гуна мошини виртуалӣ баррасӣ кардем. Ин имконот камбудиҳои зиёде дорад, ки яке аз онҳо талаботи баланди паҳнои банд барои каналҳои интиқоли маълумот мебошад. Имрӯз мо кӯшиш мекунем, ки ба мизи кории графикӣ пайваст шавем. Linux тавассути RDP (Протоколи дурдасти мизи корӣ). Системаи VNC ба интиқоли массивҳои пикселӣ тавассути протоколи RFB (Remote Framebuffer) асос ёфтааст, дар ҳоле ки RDP имкон медиҳад, ки ибтидоҳои мураккабтари графикӣ ва фармонҳои сатҳи баланд фиристода шаванд. Он одатан барои ташкили хидматҳои мизи кории дурдаст истифода мешавад Windows, аммо серверҳо барои Linux низ дастрасанд.
Мундариҷа:
Насб кардани муҳити графикӣ
Мо як мошини виртуалиро бо он мегирем Ubuntu Сервери 18.04 LTS бо ду ядрои коркард, чор гигабайт RAM ва диски сахти бист гигабайт (HDD). Конфигуратсияи заифтар барои мизи кории дорои графикаи зиёд мувофиқ нест, гарчанде ки ин аз бори корӣ вобаста аст. Барои гирифтани 10% тахфиф барои фармоиши худ, истифодаи рамзи таблиғотии Habrahabr10-ро фаромӯш накунед.

Насб кардани муҳити мизи корӣ бо ҳама вобастагӣ бо фармони зерин анҷом дода мешавад:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utilsТавре ки дар ҳолати қаблӣ, мо XFCE-ро аз сабаби талаботи нисбатан ками захираҳои компютерии он интихоб кардем.
Русикунонии сервер ва насби нармафзор
Аксар вақт мошинҳои виртуалӣ танҳо бо локализатсияи англисӣ ҷойгир карда мешаванд. Дар мизи корӣ ба шумо забони русӣ лозим аст, ки насб кардан осон аст. Аввалан, биёед тарҷумаҳоро барои барномаҳои система насб кунем:
sudo apt-get install language-pack-ruБиёед локализатсияро танзим кунем:
sudo update-locale LANG=ru_RU.UTF-8Ҳамин таъсирро тавассути таҳрири дастӣ /etc/default/locale ба даст овардан мумкин аст.
Барои локализатсияи GNOME ва KDE, анбор дорои бастаҳои language-pack-gnome-ru ва language-pack-kde-ru - ба шумо лозим меояд, ки агар шумо барномаҳоро аз ин муҳитҳои мизи корӣ истифода баред. Дар XFCE, тарҷумаҳо бо барномаҳо насб карда мешаванд. Минбаъд шумо метавонед луғатҳоро насб кунед:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dictИлова бар ин, насб кардани тарҷумаҳо метавонад барои баъзе барномаҳои барномавӣ талаб карда шавад:
# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru
# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru
# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ruИн омодасозии муҳити мизи кориро анҷом медиҳад, танҳо конфигуратсияи сервери RDP боқӣ мемонад.
Насб ва танзим кардани сервери RDP
Дар анборҳо Ubuntu Як сервери Xrdp-и озод паҳншуда мавҷуд аст, ки мо онро истифода хоҳем бурд:
sudo apt-get install xrdpАгар ҳама чиз хуб бошад, сервер бояд ба таври худкор оғоз шавад:
sudo systemctl status xrdp 
Сервери Xrdp бо ҳуқуқҳои корбари xrdp кор мекунад ва ба таври нобаёнӣ шаҳодатномаи /etc/ssl/private/ssl-cert-snakeoil.key-ро мегирад, ки онро бо сертификати худ иваз кардан мумкин аст. Барои дастрасӣ ба хондани файл, шумо бояд корбарро ба гурӯҳи ssl-cert илова кунед:
sudo adduser xrdp ssl-certТанзимоти пешфарзро дар файли /etc/default/xrdp пайдо кардан мумкин аст ва ҳамаи файлҳои конфигуратсияи сервер дар директорияи /etc/xrdp ҷойгир шудаанд. Параметрҳои асосӣ дар файли xrdp.ini ҳастанд, ки тағир додан лозим нест. Конфигуратсия хуб ҳуҷҷатгузорӣ карда шудааст ва саҳифаҳои мувофиқ дохил карда шудаанд:
man xrdp.ini
man xrdpТанҳо таҳрири скрипти /etc/xrdp/startwm.sh боқӣ мемонад, ки ҳангоми оғоз кардани сессияи корбар иҷро мешавад. Аввалан, биёед нусхаи эҳтиётии скриптро аз тақсимот созем:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.shБарои оғози муҳити мизи кории XFCE, ба шумо скрипт чизе монанди ин лозим аст:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4Лутфан таваҷҷӯҳ кунед: дар скриптҳо беҳтар аст, ки роҳи пурраи файлҳои иҷрошавандаро нависед - ин як одати хуб аст. Биёед скриптро иҷрошаванда гардонем ва дар ин лаҳза насби сервери Xrdp-ро ба итмом расонидан мумкин аст:
sudo chmod 755 /etc/xrdp/startwm.shСерверро аз нав оғоз кунед:
sudo systemctl restart xrdp
Танзими девори девор
Бо нобаёнӣ, Xrdp дар ҳамаи интерфейсҳо ба порти TCP 3389 гӯш медиҳад. Вобаста аз конфигуратсияи сервери виртуалӣ, ба шумо лозим меояд, ки девори оташии Netfilter-ро танзим кунед. Linux Ин одатан бо истифода аз утилитаи iptables анҷом дода мешавад, аммо дар Ubuntu Беҳтар аст, ки ufw-ро истифода баред. Агар суроғаи IP-и муштарӣ маълум бошад, барои танзим кардани он фармони зеринро истифода бурдан мумкин аст:
sudo ufw allow from IP_Address to any port 3389Шумо метавонед ба пайвастшавӣ аз ҳама гуна IP иҷозат диҳед:
sudo ufw allow 3389Протоколи RDP рамзкунониро дастгирӣ мекунад, аммо фош кардани сервери Xrdp ба шабакаҳои ҷамъиятӣ фикри бад аст. Агар муштарӣ IP-и собит надошта бошад, сервер барои баланд бардоштани амният бояд танҳо ба localhost гӯш диҳад. Беҳтар аст, ки ба он тавассути нақби SSH дастрасӣ пайдо кунед, ки трафикро аз компютери муштарӣ бехатар равона мекунад. Мо низ чунин муносибат дорем барои сервери VNC.
Пайвастшавӣ ба сервери RDP
Барои кор бо муҳити мизи корӣ беҳтар аст, ки корбари алоҳидаи беимтиёз эҷод кунед:
sudo adduser rdpuser 
Биёед корбарро ба гурӯҳи sudo илова кунем, то ки ӯ вазифаҳои марбут ба маъмуриятро иҷро кунад. Агар чунин зарурат вуҷуд надошта бошад, шумо метавонед ин қадамро гузаред:
sudo gpasswd -a rdpuser sudoШумо метавонед бо истифода аз ҳама гуна муштарии RDP, аз ҷумла муштарии дарунсохти Хизматрасонии Мизи Кории Дур, ба сервер пайваст шавед. WindowsАгар Xrdp дар интерфейси беруна гӯш кунад, ягон амали дигар лозим нест. Танҳо суроғаи IP-и VPS, номи корбар ва паролро дар танзимоти пайвастшавӣ ворид кунед. Пас аз пайвастшавӣ, шумо чизе монанди ин хоҳед дид:

Пас аз насби ибтидоии муҳити мизи корӣ, мо мизи кории мукаммал мегирем. Тавре ки шумо мебинед, он захираҳои зиёдеро истеъмол намекунад, гарчанде ки ҳама чиз аз замимаҳои истифодашуда вобаста аст.

Агар сервери Xrdp танҳо ба localhost гӯш диҳад, трафики компютери муштарӣ бояд ба нақби SSH бор карда шавад (sshd бояд дар VPS кор кунад). Windows Шумо метавонед аз муштарии графикии SSH истифода баред (масалан, PuTTY), аммо дар системаҳои UNIX ба шумо утилитаи ssh лозим аст:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ipПас аз ба кор андохтани нақб, муштарии RDP дигар на ба сервери дурдаст, балки ба мизбони маҳаллӣ пайваст мешавад.
Бо дастгоҳҳои мобилӣ ин мушкилтар аст: муштариёни SSH, ки қодиранд нақб таъсис диҳанд, бояд харидорӣ карда шаванд ва дар iOS ва iPadOS, кори заминаи барномаҳои тарафи сеюм аз сабаби беҳсозии аз ҳад зиёди энергия мушкил мешавад. iPhone Шумо наметавонед дар iPad бо истифода аз барномаи алоҳида нақб эҷод кунед - ба шумо барномаи муштарак лозим аст, ки метавонад пайвасти RDP-ро тавассути SSH барқарор кунад. Масалан, .
Менеҷери сессия ва ҷаласаҳои корбар
Қобилияти кори бисёркорбар бевосита дар сервери Xrdp амалӣ карда мешавад ва конфигуратсияи иловагӣ талаб намекунад. Пас аз оғози хидмат тавассути systemd, як раванд дар реҷаи демон кор мекунад, дар порти 3389 гӯш мекунад ва тавассути localhost бо менеҷери сессия муошират мекунад.
ps aux |grep xrdp 
sudo netstat -ap |grep xrdp 
Менеҷери сессия одатан барои корбарон намоён нест, зеро логин ва пароли дар танзимоти муштарӣ нишондодашуда ба таври худкор ба он интиқол дода мешаванд. Агар ин рӯй надиҳад ё ҳангоми тасдиқкунӣ хатогӣ рух диҳад, ба ҷои мизи корӣ равзанаи воридшавии интерактивӣ пайдо мешавад.

Оғози худкори мудири сессия дар файли /etc/default/xrdp муайян карда мешавад ва конфигуратсия дар /etc/xrdp/sesman.ini нигоҳ дошта мешавад. Бо нобаёнӣ он чунин менамояд:
[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false
[Sessions]Ба шумо лозим нест, ки чизеро дар ин ҷо тағир диҳед, шумо танҳо бояд вурудро бо ҳуқуқи реша хомӯш кунед (AllowRootLogin=false). Барои ҳар як корбаре, ки дар система ваколатдор шудааст, раванди xrdp-и алоҳида оғоз мешавад: агар шумо бидуни анҷоми сессия ҷудо шавед, равандҳои корбар ба таври нобаёнӣ кор мекунанд ва шумо метавонед дубора ба сессия пайваст шавед. Танзимотро дар файли /etc/xrdp/sesman.ini (қисмати [Иҷлосияҳо]) тағир додан мумкин аст.
Гузаронидани тарҳҳои клавиатура
Одатан бо буфери дуҷониба мушкилот вуҷуд надорад, аммо бо тарҳбандии клавиатураи русӣ шумо бояд каме бозӣ кунед (маҳалли русӣ бояд аллакай бошад. ). Биёед танзимоти клавиатураи сервери Xrdp-ро таҳрир кунем:
sudo nano /etc/xrdp/xrdp_keyboard.iniШумо бояд ба охири файли конфигуратсия сатрҳои зеринро илова кунед:
[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru
[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ruТанҳо захира кардани файл ва аз нав оғоз кардани Xrdp боқӣ мемонад:
sudo systemctl restart xrdpТавре ки шумо мебинед, насб кардани сервери RDP дар Linux VPS душвор нест, аммо Мо аллакай танзими VNC-ро муҳокима кардем. Илова ба ин технологияҳо, боз як варианти ҷолиб вуҷуд дорад: системаи X3Go бо истифода аз протоколи тағирёфтаи NX 2. Мо бо он дар нашри оянда сару кор хоҳем кард.
Манбаъ: will.com
