В kita rembugan mbukak server VNC ing mesin virtual saka sembarang tipe. Opsi iki nduweni akeh kekurangan, sing utama yaiku syarat dhuwur kanggo throughput saluran transmisi data. Dina iki kita bakal nyoba nyambung menyang desktop grafis ing Linux liwat RDP (Remote Desktop Protocol). Sistem VNC adhedhasar ngirimaken array saka piksel nggunakake protokol RFB (Remote Framebuffer), lan RDP ngijini sampeyan kanggo ngirim primitif grafis luwih Komplek lan printah tingkat dhuwur. Biasane digunakake kanggo dadi tuan rumah Layanan Desktop Jarak Jauh ing Windows, nanging server kanggo Linux uga kasedhiya.
Gamelan:
Nginstal lingkungan grafis
Kita bakal njupuk mesin virtual karo Ubuntu Server 18.04 LTS karo loro intine komputasi, papat gigabyte RAM lan rong puluh gigabyte hard drive (HDD). Konfigurasi sing luwih lemah ora cocok kanggo desktop grafis, sanajan iki gumantung marang tugas sing ditanggulangi. Aja lali nggunakake kode promo Habrahabr10 kanggo entuk diskon 10% kanggo pesenan sampeyan.

Nginstal lingkungan desktop karo kabeh dependensi wis rampung karo printah ing ngisor iki:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utilsKaya ing kasus sadurunge, kita milih XFCE amarga syarat sumber daya komputasi sing relatif kurang.
Russification saka server lan instalasi software
Asring mesin virtual disebarake mung karo lokalisasi Inggris. Ing desktop sampeyan mbutuhake basa Rusia, sing gampang diatur. Pisanan, ayo nginstal terjemahan kanggo program sistem:
sudo apt-get install language-pack-ruAyo nyiyapake lokalisasi:
sudo update-locale LANG=ru_RU.UTF-8Efek sing padha bisa digayuh kanthi nyunting /etc/default/locale.
Kanggo lokalisasi GNOME lan KDE, gudang duwe paket language-pack-gnome-ru lan language-pack-kde-ru - sampeyan bakal mbutuhake yen sampeyan nggunakake program saka lingkungan desktop kasebut. Ing XFCE, terjemahan diinstal nganggo aplikasi. Sabanjure sampeyan bisa nginstal kamus:
# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru
# Тезаурус для LibreOffice
sudo apt-get install mythes-ru
# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dictKajaba iku, instalasi terjemahan bisa uga dibutuhake kanggo sawetara program aplikasi:
# Браузер 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-ruIki ngrampungake persiapan lingkungan desktop, sing isih ana yaiku ngatur server RDP.
Nginstal lan ngatur server RDP
Repositori Ubuntu duwe server Xrdp sing disebar kanthi bebas, sing bakal digunakake:
sudo apt-get install xrdpYen kabeh apik, server kudu diwiwiti kanthi otomatis:
sudo systemctl status xrdp 
Server Xrdp nganggo hak pangguna xrdp lan kanthi gawan njupuk sertifikat /etc/ssl/private/ssl-cert-snakeoil.key, sing bisa diganti karo sampeyan dhewe. Kanggo duwe akses kanggo maca file, sampeyan kudu nambah pangguna menyang grup ssl-cert:
sudo adduser xrdp ssl-certSetelan gawan bisa ditemokake ing /etc/default/xrdp file, lan kabeh file konfigurasi server liyane dumunung ing direktori /etc/xrdp. Parameter utama ana ing file xrdp.ini, sing ora perlu diganti. Konfigurasi kasebut didokumentasikake kanthi apik, lan kaca manual sing cocog kalebu:
man xrdp.ini
man xrdpSing isih ana yaiku ngowahi skrip /etc/xrdp/startwm.sh, sing ditindakake nalika sesi pangguna diwiwiti. Pisanan, ayo nggawe salinan serep skrip saka distribusi:
sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.shKanggo miwiti lingkungan desktop XFCE, sampeyan butuh skrip kaya iki:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4Wigati dicathet: ing skrip luwih apik kanggo nulis path lengkap menyang file sing bisa dieksekusi - iki minangka pakulinan sing apik. Ayo nggawe skrip bisa dieksekusi lan ing wektu iki persiyapan server Xrdp bisa dianggep lengkap:
sudo chmod 755 /etc/xrdp/startwm.shWiwiti maneh server:
sudo systemctl restart xrdp
Nyetel firewall
Kanthi gawan, Xrdp ngrungokake port TCP 3389 ing kabeh antarmuka. Gumantung ing konfigurasi server virtual, sampeyan bisa uga kudu ngatur firewall Netfilter. Ing Linux iki biasane rampung nggunakake utilitas iptables, nanging ing Ubuntu luwih apik nggunakake ufw. Yen alamat IP klien dikenal, konfigurasi ditindakake kanthi printah ing ngisor iki:
sudo ufw allow from IP_Address to any port 3389Sampeyan bisa ngidini sambungan saka sembarang IP kaya iki:
sudo ufw allow 3389Protokol RDP ndhukung enkripsi, nanging mbabarake server Xrdp menyang jaringan umum minangka ide sing ala. Yen klien ora duwe IP tetep, server mung kudu ngrungokake localhost kanggo nambah keamanan. Paling apik kanggo ngakses liwat trowongan SSH, sing bakal ngarahake lalu lintas saka komputer klien kanthi aman. Kita duwe pendekatan sing padha kanggo server VNC.
Nyambung menyang server RDP
Kanggo nggarap lingkungan desktop, luwih becik nggawe pangguna sing ora duwe hak istimewa:
sudo adduser rdpuser 
Ayo nambah pangguna menyang grup sudo supaya bisa nindakake tugas sing ana gandhengane karo administrasi. Yen ora perlu, sampeyan bisa ngliwati langkah iki:
sudo gpasswd -a rdpuser sudoSampeyan bisa nyambung menyang server nggunakake sembarang klien RDP, kalebu dibangun ing Windows Remote Desktop Services klien. Yen Xrdp ngrungokake antarmuka eksternal, ora ana tindakan tambahan sing dibutuhake. Cukup kanggo nemtokake alamat IP VPS, jeneng pangguna lan sandhi ing setelan sambungan. Sawise nyambungake, kita bakal weruh kaya iki:

Sawise persiyapan awal lingkungan desktop, kita bakal entuk desktop lengkap. Kaya sing sampeyan ngerteni, ora nggunakake akeh sumber daya, sanajan kabeh bakal gumantung karo aplikasi sing digunakake.

Yen server Xrdp mung ngrungokake localhost, lalu lintas ing komputer klien kudu dikemas menyang trowongan SSH (sshd kudu mlaku ing VPS). Ing Windows, sampeyan bisa nggunakake klien SSH grafis (contone, PuTTY), lan ing sistem UNIX sampeyan butuh sarana ssh:
ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ipSawise trowongan diwiwiti, klien RDP ora bakal nyambung maneh menyang server remot, nanging menyang host lokal.
Luwih angel karo piranti seluler: Klien SSH sing bisa ngunggahake trowongan kudu dituku, lan ing iOS lan iPadOS, operasi latar mburi aplikasi pihak katelu angel amarga optimasi konsumsi energi sing apik banget. Ing iPhone lan iPad, sampeyan ora bakal bisa nggawe trowongan ing aplikasi sing kapisah; sampeyan butuh aplikasi pemanen sing bisa nggawe sambungan RDP liwat SSH. Kayata, contone .
Manajer Sesi lan Sesi Panganggo
Kemampuan kanggo karya multi pangguna dileksanakake langsung ing server Xrdp lan ora mbutuhake konfigurasi tambahan. Sawise miwiti layanan liwat systemd, siji proses mlaku ing mode daemon, ngrungokake port 3389 lan komunikasi liwat localhost karo manajer sesi.
ps aux |grep xrdp 
sudo netstat -ap |grep xrdp 
Pangatur sesi biasane ora katon kanggo pangguna, amarga login lan sandhi sing ditemtokake ing setelan klien ditransfer kanthi otomatis. Yen iki ora kedadeyan utawa ana kesalahan sajrone otentikasi, jendhela login interaktif bakal katon tinimbang desktop.

Bukak otomatis manajer sesi kasebut ing file /etc/default/xrdp, lan konfigurasi disimpen ing /etc/xrdp/sesman.ini. Secara default katon kaya iki:
[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]Sampeyan ora kudu ngganti apa-apa ing kene, sampeyan mung kudu mateni login kanthi hak ROOT (AllowRootLogin = palsu). Kanggo saben pangguna sing sah ing sistem, proses xrdp sing kapisah diluncurake: yen sampeyan medhot sambungan tanpa mungkasi sesi, proses pangguna bakal terus mlaku kanthi standar, lan sampeyan bisa nyambung menyang sesi maneh. Setelan bisa diganti ing file /etc/xrdp/sesman.ini ([Sesi] bagean).
Ngalih tata letak keyboard
Biasane ora ana masalah karo clipboard rong arah, nanging kanthi tata letak keyboard Rusia sampeyan kudu muter sethithik (lokal Rusia mesthine wis ana. ). Ayo ngowahi setelan keyboard server Xrdp:
sudo nano /etc/xrdp/xrdp_keyboard.iniSampeyan kudu nambahake baris ing ngisor iki menyang mburi file konfigurasi:
[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,ruKabeh sing isih ana yaiku nyimpen file lan miwiti maneh Xrdp:
sudo systemctl restart xrdpNalika sampeyan bisa ndeleng, ora angel nyiyapake server RDP ing VPS Linux, nanging Kita wis ngrembug babagan persiyapan VNC. Saliyane teknologi kasebut, ana pilihan liyane sing menarik: sistem X3Go nggunakake protokol NX 2 sing diowahi. Kita bakal ngatasi ing publikasi sabanjure.
Source: www.habr.com
