В ఏ రకమైన వర్చువల్ మెషీన్లోనైనా VNC సర్వర్ను నడపడం గురించి మనం ఇంతకుముందు చర్చించాము. ఈ ఎంపికకు అనేక లోపాలు ఉన్నాయి, వాటిలో ప్రధానమైనది డేటా బదిలీ ఛానెల్లకు అధిక బ్యాండ్విడ్త్ అవసరం కావడం. ఈ రోజు, మనం ఒక గ్రాఫికల్ డెస్క్టాప్కు కనెక్ట్ చేయడానికి ప్రయత్నిద్దాం. Linux RDP (రిమోట్ డెస్క్టాప్ ప్రోటోకాల్) ద్వారా. VNC సిస్టమ్ RFB (రిమోట్ ఫ్రేమ్బఫర్) ప్రోటోకాల్ ద్వారా పిక్సెల్ శ్రేణులను ప్రసారం చేయడంపై ఆధారపడి ఉంటుంది, అయితే RDP మరింత సంక్లిష్టమైన గ్రాఫికల్ ప్రిమిటివ్లు మరియు ఉన్నత-స్థాయి ఆదేశాలను పంపడానికి అనుమతిస్తుంది. ఇది సాధారణంగా రిమోట్ డెస్క్టాప్ సేవలను నిర్వహించడానికి ఉపయోగించబడుతుంది. Windowsకానీ సర్వర్లు Linux అవి కూడా అందుబాటులో ఉన్నాయి.
ఆటలు:
గ్రాఫికల్ వాతావరణాన్ని ఇన్స్టాల్ చేస్తోంది
మేము వర్చువల్ మెషీన్ను తీసుకుంటాము Ubuntu రెండు ప్రాసెసింగ్ కోర్లు, నాలుగు గిగాబైట్ల ర్యామ్, మరియు ఇరవై గిగాబైట్ల హార్డ్ డ్రైవ్ (HDD)తో కూడిన సర్వర్ 18.04 LTS. ఇంతకంటే బలహీనమైన కాన్ఫిగరేషన్ గ్రాఫిక్స్-ఇంటెన్సివ్ డెస్క్టాప్కు సరిపోదు, అయితే ఇది వర్క్లోడ్పై ఆధారపడి ఉంటుంది. మీ ఆర్డర్పై 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.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లో వింటుంది. వర్చువల్ సర్వర్ కాన్ఫిగరేషన్ను బట్టి, మీరు నెట్ఫిల్టర్ ఫైర్వాల్ను కాన్ఫిగర్ చేయవలసి రావచ్చు. 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మీరు అంతర్నిర్మిత రిమోట్ డెస్క్టాప్ సర్వీసెస్ క్లయింట్తో సహా ఏదైనా RDP క్లయింట్ను ఉపయోగించి సర్వర్కు కనెక్ట్ అవ్వవచ్చు. Windowsబాహ్య ఇంటర్ఫేస్లో Xrdp అందుబాటులో ఉంటే, ఇంకేమీ చేయనవసరం లేదు. కనెక్షన్ సెట్టింగ్లలో VPS IP చిరునామా, యూజర్నేమ్ మరియు పాస్వర్డ్ను నమోదు చేస్తే సరిపోతుంది. కనెక్ట్ అయిన తర్వాత, మీకు ఇలాంటిది కనిపిస్తుంది:

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

ఒకవేళ Xrdp సర్వర్ కేవలం localhost ను మాత్రమే వింటుంటే, క్లయింట్ కంప్యూటర్లోని ట్రాఫిక్ను ఒక SSH టన్నెల్లోకి ప్యాక్ చేయవలసి ఉంటుంది (VPS లో sshd తప్పనిసరిగా నడుస్తూ ఉండాలి). 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 మీరు వేరే యాప్ని ఉపయోగించి ఐప్యాడ్లో టన్నెల్ని సెటప్ చేయలేరు—మీకు 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
