В me li ser xebitandina serverek VNC li ser makîneyek virtual ya her celebî nîqaş kir. Vê vebijarkê gelek kêmasiyên xwe hene, ya sereke ew hewcedariyên bilind ên ji bo rêgirtina kanalên ragihandina daneyê ne. Îro em ê hewl bidin ku bi riya RDP (Protokola Sermaseya Dûr) bi sermaseyek grafîkî ya li Linux-ê ve girêbidin. Pergala VNC-ê li ser veguheztina rêzikên pixelan bi karanîna protokola RFB (Remote Framebuffer) ve girêdayî ye, û RDP dihêle hûn primitivesên grafîkî yên tevlihev û fermanên astek bilind bişînin. Ew bi gelemperî ji bo mêvandariya Karûbarên Sermaseya Dûr a li ser Windows-ê tê bikar anîn, lê serverên ji bo Linux jî hene.
Tabloya naverokê:
Sazkirina hawirdora grafîkî
Em ê bi Ubuntu Server 18.04 LTS makîneyek virtual ya bi du bingehên hesabkirinê, çar gigabayt RAM û dîskek hişk a bîst gigabayt (HDD) bistînin. Veavakirinek qels ji bo sermaseyek grafîkî ne maqûl e, her çend ev bi karên ku têne çareser kirin ve girêdayî ye. Ji bîr nekin ku koda promosyonê ya Habrahabr10 bikar bînin da ku li ser fermana xwe 10% dakêşî bistînin.

Sazkirina hawîrdora sermaseyê bi hemî pêwendiyan re bi fermana jêrîn pêk tê:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utilsMîna ku di doza berê de, me XFCE hilbijart ji ber hewcedariyên wê yên kêm-çavkaniya hesabkirinê.
Rûsîkirina server û sazkirina nermalavê
Pir caran makîneyên virtual tenê bi herêmîkirina Englishngilîzî têne bicîh kirin. Li ser sermaseyê dibe ku hûn hewceyê rûsî, ku sazkirinê hêsan e. Pêşîn, werin em wergerên ji bo bernameyên pergalê saz bikin:
sudo apt-get install language-pack-ruKa em herêmîbûnê saz bikin:
sudo update-locale LANG=ru_RU.UTF-8Heman bandor dikare bi guherandina desta /etc/default/locale ve were bidestxistin.
Ji bo herêmîkirina GNOME û KDE, depo pakêtên language-pack-gnome-ru û language-pack-kde-ru hene - heke hûn bernameyên ji van hawîrdorên sermaseyê bikar bînin hûn ê hewceyê wan bibin. Di XFCE de, werger bi sepanan têne saz kirin. Piştre hûn dikarin ferhengan saz bikin:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dictWekî din, sazkirina wergeran dibe ku ji bo hin bernameyên serîlêdanê hewce bike:
# Браузер 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-ruEv amadekirina hawîrdora sermaseyê temam dike, ya ku dimîne ev e ku meriv servera RDP-ê mîheng bike.
Sazkirin û mîhengkirina serverek RDP
Depoyên Ubuntu xwedan serverek Xrdp ya bi serbestî belavkirî ye, ku em ê bikar bînin:
sudo apt-get install xrdpGer her tişt baş bû, divê server bixweber dest pê bike:
sudo systemctl status xrdp 
Pêşkêşkara Xrdp bi mafên bikarhênerê xrdp dimeşe û ji hêla xwerû ve sertîfîkaya /etc/ssl/private/ssl-cert-snakeoil.key digire, ku dikare bi ya we were guheztin. Ji bo ku hûn bikaribin pelê bixwînin, hûn hewce ne ku bikarhêner li koma ssl-cert zêde bikin:
sudo adduser xrdp ssl-certMîhengên xwerû di pelê /etc/default/xrdp de têne dîtin, û hemî pelên veavakirina serverê yên din di pelrêça /etc/xrdp de cih digirin. Parametreyên sereke di pelê xrdp.ini de ne, ku ne hewce ye ku were guheztin. Vesazkirin baş tê belgekirin, û rûpelên mirovî yên têkildar tê de hene:
man xrdp.ini
man xrdpTiştê ku dimîne ev e ku meriv skrîpta /etc/xrdp/startwm.sh biguherîne, ya ku dema danişîna bikarhêner dest pê dike tê darve kirin. Pêşîn, bila em ji belavkirinê kopiyek hilanînê çêbikin:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.shJi bo destpêkirina hawîrdora sermaseya XFCE, hûn ê hewceyê skrîptek wusa bin:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4Ji kerema xwe not: di nivîsan de çêtir e ku meriv riya tevahî pelên îcrakar binivîsîne - ev adetek baş e. Ka em skrîptê çêkin û di vê nuqteyê de sazkirina servera Xrdp dikare bêkêmasî were hesibandin:
sudo chmod 755 /etc/xrdp/startwm.shServerê ji nû ve bidin destpêkirin:
sudo systemctl restart xrdp
Sazkirina dîwarê agir
Bi xwerû, Xrdp li ser hemî navbeynkaran li porta TCP 3389 guhdarî dike. Bi veavakirina servera virtual ve girêdayî, dibe ku hûn hewce ne ku dîwarek Netfilter-ê mîheng bikin. Li Linux-ê ev bi gelemperî bi karanîna iptables tête kirin, lê li ser Ubuntu çêtir e ku meriv ufw bikar bîne. Ger navnîşana IP-ya xerîdar tê zanîn, veavakirin bi fermana jêrîn pêk tê:
sudo ufw allow from IP_Address to any port 3389Hûn dikarin girêdanên ji her IP-ê bi vî rengî destûr bidin:
sudo ufw allow 3389Protokola RDP şîfrekirinê piştgirî dike, lê eşkerekirina servera Xrdp ji torên giştî re ramanek xirab e. Ger xerîdar IP-ya sabît tune be, server divê tenê guh bide localhost da ku ewlehiyê zêde bike. Ya çêtirîn e ku meriv bigihîje wê bi tunelek SSH, ku dê bi ewlehî seyrûsefera ji komputera xerîdar vegerîne. Nêzîkatiyeke me ya bi vî rengî heye ji bo servera VNC.
Girêdana bi serverek RDP
Ji bo ku hûn bi hawîrdora sermaseyê re bixebitin, çêtir e ku meriv bikarhênerek bêdestûrek veqetandî biafirîne:
sudo adduser rdpuser 
Werin em bikarhêner li koma sudo zêde bikin da ku ew karibe karên girêdayî rêveberiyê pêk bîne. Ger hewcedariyek wusa tune, hûn dikarin vê gavê derbas bikin:
sudo gpasswd -a rdpuser sudoHûn dikarin bi karanîna her xerîdarek RDP-ê, tevî xerîdariya Xizmetên Sermaseya Dûr a Windows-ê ya çêkirî, bi serverê ve girêdin. Ger Xrdp li navbeynkariya derveyî guhdarî dike, dê ti kiryarên zêde ne hewce be. Di mîhengên pêwendiyê de navnîşana IP-ya VPS, navê bikarhêner û şîfreya xwe diyar bikin bes e. Piştî girêdanê, em ê tiştek weha bibînin:

Piştî sazkirina destpêkê ya hawîrdora sermaseyê, em ê sermaseyek bêkêmasî bistînin. Wekî ku hûn dibînin, ew gelek çavkaniyan naxwe, her çend her tişt dê bi serîlêdanên ku têne bikar anîn ve girêdayî be.

Ger servera Xrdp tenê li localhost-ê guhdarî bike, dê seyrûsefera li ser komputera xerîdar di nav tunelek SSH de were pak kirin (divê sshd li ser VPS-ê were xebitandin). Li ser Windows-ê, hûn dikarin xerîdarek SSH-ya grafîkî (mînak, PuTTY) bikar bînin, û li ser pergalên UNIX hûn hewcedariya ssh-ê hewce dikin:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ipPiştî ku tunel dest pê kir, dê xerîdar RDP êdî ne bi servera dûr ve, lê bi mêvandarê herêmî ve were girêdan.
Ew bi cîhazên mobîl re dijwartir e: Xerîdarên SSH ku dikarin tunelekê bilind bikin dê bêne kirîn, û di iOS û iPadOS de, xebata paşîn a serîlêdanên partiya sêyemîn ji ber xweşbîniya pir baş a xerckirina enerjiyê dijwar e. Li ser iPhone û iPad, hûn ê nikaribin di serîlêdanek cihêreng de tunelek biafirînin, hûn ê hewceyê serîlêdanek dirûnê ku bixwe dikare bi SSH ve têkiliyek RDP saz bike. Wek mînak .
Rêvebirê Rûniştinê û Rûniştinên Bikarhêner
Kapasîteya xebata pir-bikarhêner rasterast di servera Xrdp de tête bicîh kirin û pêdivî bi veavakirina zêde nake. Piştî destpêkirina karûbarê bi systemd-ê, pêvajoyek di moda daemon de dimeşe, li porta 3389 guhdarî dike û bi navgîniya localhost-ê bi rêvebirê danişînê re diaxive.
ps aux |grep xrdp 
sudo netstat -ap |grep xrdp 
Rêvebirê danişînê bi gelemperî ji bikarhêneran re nayê dîtin, ji ber ku têketin û şîfreya ku di mîhengên xerîdar de hatine destnîşan kirin bixweber jê re têne veguheztin. Ger ev yek pêk neyê an jî di dema erêkirinê de xeletiyek hebe, dê li şûna sermaseyê pencereyek têketina înteraktîf xuya bibe.

Destpêkirina otomatîkî ya rêveberê danişînê di pelê /etc/default/xrdp de tê destnîşan kirin, û veavakirin di /etc/xrdp/sesman.ini de tê hilanîn. Ji hêla xwerû ve tiştek wusa xuya dike:
[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]Hûn ne hewce ne ku li vir tiştek biguhezînin, hûn tenê hewce ne ku têketinê bi mafên root (AllowRootLogin=derew) neçalak bikin. Ji bo her bikarhênerek ku di pergalê de destûr daye, pêvajoyek xrdp-ê ya cihêreng tê destpêkirin: heke hûn bêyî bidawîkirina danişînê veqetînin, dê pêvajoyên bikarhêner ji hêla xwerû ve bimeşin, û hûn dikarin dîsa bi danişînê ve girêbidin. Mîheng dikarin di pelê /etc/xrdp/sesman.ini (beşa [Sessions]) de werin guhertin.
Guhertina layoutên klavyeyê
Bi gelemperî bi pabloyek du-alî re pirsgirêk tune ne, lê bi xêzkirina klavyeya rûsî hûn neçar in ku hinekî li dora xwe bilîzin (divê cîhê rûsî jixwe be ). Ka em mîhengên klavyeyê yên servera Xrdp biguherînin:
sudo nano /etc/xrdp/xrdp_keyboard.iniPêdivî ye ku hûn rêzikên jêrîn li dawiya pelê veavakirinê zêde bikin:
[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,ruTiştê ku dimîne ev e ku hûn pelê hilînin û Xrdp ji nû ve bidin destpêkirin:
sudo systemctl restart xrdpWekî ku hûn dikarin bibînin, ne dijwar e ku meriv serverek RDP li ser Linux VPS saz bike, lê Me berê li ser sazkirina VNC nîqaş kir. Ji bilî van teknolojiyên, vebijarkek din a balkêş jî heye: pergala X3Go bi protokola NX 2-ê veguherî bikar tîne. Em ê di weşana pêş de pê re mijûl bibin.
Source: www.habr.com
