В మేము ఏ రకమైన వర్చువల్ మెషీన్లోనైనా VNC సర్వర్ని అమలు చేయడం గురించి చర్చించాము. ఈ ఐచ్ఛికం చాలా నష్టాలను కలిగి ఉంది, వీటిలో ప్రధానమైనది డేటా ట్రాన్స్మిషన్ ఛానెల్ల నిర్గమాంశ కోసం అధిక అవసరాలు. ఈ రోజు మనం RDP (రిమోట్ డెస్క్టాప్ ప్రోటోకాల్) ద్వారా Linuxలో గ్రాఫికల్ డెస్క్టాప్కి కనెక్ట్ చేయడానికి ప్రయత్నిస్తాము. VNC సిస్టమ్ RFB (రిమోట్ ఫ్రేమ్బఫర్) ప్రోటోకాల్ను ఉపయోగించి పిక్సెల్ల శ్రేణులను ప్రసారం చేయడంపై ఆధారపడి ఉంటుంది మరియు RDP మరింత క్లిష్టమైన గ్రాఫిక్స్ ప్రిమిటివ్లు మరియు ఉన్నత-స్థాయి ఆదేశాలను పంపడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇది సాధారణంగా Windowsలో రిమోట్ డెస్క్టాప్ సేవలను హోస్ట్ చేయడానికి ఉపయోగించబడుతుంది, అయితే Linux కోసం సర్వర్లు కూడా అందుబాటులో ఉన్నాయి.
ఆటలు:
గ్రాఫికల్ వాతావరణాన్ని ఇన్స్టాల్ చేస్తోంది
మేము ఉబుంటు సర్వర్ 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 సర్వర్ను ఇన్స్టాల్ చేయడం మరియు కాన్ఫిగర్ చేయడం
ఉబుంటు రిపోజిటరీలు ఉచితంగా పంపిణీ చేయబడిన 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.shXFCE డెస్క్టాప్ వాతావరణాన్ని ప్రారంభించడానికి, మీకు ఇలాంటి స్క్రిప్ట్ అవసరం:
#!/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 3389RDP ప్రోటోకాల్ ఎన్క్రిప్షన్కు మద్దతు ఇస్తుంది, అయితే Xrdp సర్వర్ను పబ్లిక్ నెట్వర్క్లకు బహిర్గతం చేయడం చెడ్డ ఆలోచన. క్లయింట్కు స్థిర IP లేకపోతే, భద్రతను పెంచడానికి సర్వర్ స్థానిక హోస్ట్ని మాత్రమే వినాలి. క్లయింట్ కంప్యూటర్ నుండి ట్రాఫిక్ను సురక్షితంగా దారి మళ్లించే SSH సొరంగం ద్వారా దీన్ని యాక్సెస్ చేయడం ఉత్తమం. మాకు ఇదే విధానం ఉంది VNC సర్వర్ కోసం.
RDP సర్వర్కి కనెక్ట్ చేస్తోంది
డెస్క్టాప్ ఎన్విరాన్మెంట్తో పని చేయడానికి, ప్రత్యేక హక్కు లేని వినియోగదారుని సృష్టించడం మంచిది:
sudo adduser rdpuser 
వినియోగదారుని సుడో సమూహానికి చేర్చుదాం, తద్వారా అతను పరిపాలన సంబంధిత పనులను చేయగలడు. అలాంటి అవసరం లేకుంటే, మీరు ఈ దశను దాటవేయవచ్చు:
sudo gpasswd -a rdpuser sudoమీరు అంతర్నిర్మిత Windows రిమోట్ డెస్క్టాప్ సర్వీసెస్ క్లయింట్తో సహా ఏదైనా RDP క్లయింట్ని ఉపయోగించి సర్వర్కి కనెక్ట్ చేయవచ్చు. Xrdp బాహ్య ఇంటర్ఫేస్ను వింటున్నట్లయితే, అదనపు చర్యలు అవసరం లేదు. కనెక్షన్ సెట్టింగ్లలో VPS IP చిరునామా, వినియోగదారు పేరు మరియు పాస్వర్డ్ను పేర్కొనడం సరిపోతుంది. కనెక్ట్ చేసిన తర్వాత, మనం ఇలాంటివి చూస్తాము:

డెస్క్టాప్ పర్యావరణం యొక్క ప్రారంభ సెటప్ తర్వాత, మేము పూర్తి స్థాయి డెస్క్టాప్ను పొందుతాము. మీరు చూడగలిగినట్లుగా, ఇది చాలా వనరులను వినియోగించదు, అయినప్పటికీ ప్రతిదీ ఉపయోగించిన అనువర్తనాలపై ఆధారపడి ఉంటుంది.

Xrdp సర్వర్ లోకల్ హోస్ట్ను మాత్రమే వింటుంటే, క్లయింట్ కంప్యూటర్లోని ట్రాఫిక్ను 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లో, మీరు ప్రత్యేక అప్లికేషన్లో సొరంగం సృష్టించలేరు; మీకు SSH ద్వారా RDP కనెక్షన్ని ఏర్పాటు చేయగల హార్వెస్టర్ అప్లికేషన్ అవసరం. ఉదాహరణకు, వంటి .
సెషన్ మేనేజర్ మరియు యూజర్ సెషన్స్
బహుళ-వినియోగదారు పని సామర్థ్యం నేరుగా Xrdp సర్వర్లో అమలు చేయబడుతుంది మరియు అదనపు కాన్ఫిగరేషన్ అవసరం లేదు. systemd ద్వారా సేవను ప్రారంభించిన తర్వాత, ఒక ప్రక్రియ డెమోన్ మోడ్లో నడుస్తుంది, పోర్ట్ 3389లో వింటుంది మరియు సెషన్ మేనేజర్తో లోకల్ హోస్ట్ ద్వారా కమ్యూనికేట్ చేస్తుంది.
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మీరు చూడగలిగినట్లుగా, Linux VPSలో RDP సర్వర్ని సెటప్ చేయడం కష్టం కాదు, కానీ మేము ఇప్పటికే VNC సెటప్ గురించి చర్చించాము. ఈ సాంకేతికతలకు అదనంగా, మరొక ఆసక్తికరమైన ఎంపిక ఉంది: సవరించిన NX 3 ప్రోటోకాల్ను ఉపయోగించి X2Go సిస్టమ్. మేము దానితో తదుపరి ప్రచురణలో వ్యవహరిస్తాము.
మూలం: www.habr.com
