Որոշ օգտատերեր Windows-ով վարձում են համեմատաբար էժան VPS՝ հեռահար աշխատասեղանի ծառայությունները գործարկելու համար: Նույնը կարելի է անել Linux-ում՝ առանց ձեր սեփական սարքաշարը տվյալների կենտրոնում տեղակայելու կամ հատուկ սերվեր վարձակալելու: Որոշ մարդկանց անհրաժեշտ է ծանոթ գրաֆիկական միջավայր թեստավորման և մշակման համար, կամ հեռակառավարվող աշխատասեղան՝ բջջային սարքերից աշխատելու լայն ալիքով: Կան բազմաթիվ տարբերակներ Remote FrameBuffer (RFB) արձանագրության վրա հիմնված վիրտուալ ցանցային հաշվարկման (VNC) համակարգի օգտագործման համար: Այս կարճ հոդվածում մենք ձեզ կպատմենք, թե ինչպես կարելի է այն կարգավորել վիրտուալ մեքենայի վրա ցանկացած հիպերվիզորով:
Բովանդակություն:
VNC սերվերի ընտրություն
VNC ծառայությունը կարող է ներկառուցվել վիրտուալացման համակարգում, և հիպերվիզորը այն կմիացնի նմանակված սարքերի հետ և լրացուցիչ կոնֆիգուրացիա չի պահանջվի: Այս տարբերակը ներառում է զգալի ծախսեր և չի աջակցվում բոլոր պրովայդերների կողմից, նույնիսկ ավելի քիչ ռեսուրսներով ինտենսիվ իրականացման դեպքում, երբ իրական գրաֆիկական սարքի նմանակման փոխարեն պարզեցված աբստրակցիա (framebuffer) փոխանցվում է վիրտուալ մեքենային: Երբեմն VNC սերվերը կապված է գործող X սերվերի հետ, բայց այս մեթոդը ավելի հարմար է ֆիզիկական մեքենայի մուտք գործելու համար, իսկ վիրտուալում այն ստեղծում է մի շարք տեխնիկական դժվարություններ: VNC սերվերի տեղադրման ամենահեշտ ձևը ներկառուցված X սերվերն է: Այն չի պահանջում ֆիզիկական սարքեր (վիդեո ադապտեր, ստեղնաշար և մկնիկ) կամ դրանց էմուլյացիա՝ օգտագործելով հիպերվիզոր, և, հետևաբար, հարմար է ցանկացած տեսակի VPS-ի համար:
Տեղադրում և կազմաձևում
Մեզ անհրաժեշտ կլինի վիրտուալ մեքենա՝ Ubuntu Server 18.04 LTS-ով իր լռելյայն կազմաձևով: Այս բաշխման ստանդարտ պահեստներում կան մի քանի VNC սերվերներ.
Բոլոր կախվածություններով աշխատասեղանի միջավայրի տեղադրումը կատարվում է հետևյալ հրամանով.
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Հաջորդը դուք պետք է տեղադրեք VNC սերվերը.
sudo apt-get install tigervnc-standalone-server tigervnc-common
Այն որպես գերօգտագործող գործարկելը վատ գաղափար է: Ստեղծեք օգտվող և խումբ.
sudo adduser vnc
Եկեք օգտագործողին ավելացնենք sudo խմբին, որպեսզի նա կարողանա կատարել վարչարարության հետ կապված առաջադրանքներ։ Եթե նման անհրաժեշտություն չկա, կարող եք բաց թողնել այս քայլը.
sudo gpasswd -a vnc sudo
Հաջորդ քայլը VNC սերվերը vnc օգտվողի արտոնություններով գործարկելն է՝ ~/.vnc/ գրացուցակում անվտանգ գաղտնաբառ և կազմաձևման ֆայլեր ստեղծելու համար: Գաղտնաբառի երկարությունը կարող է լինել 6-ից 8 նիշ (լրացուցիչ նիշերը կտրված են): Անհրաժեշտության դեպքում գաղտնաբառ է սահմանվում նաև միայն դիտելու համար, այսինքն. առանց ստեղնաշարի և մկնիկի մուտքի: Հետևյալ հրամանները կատարվում են որպես vnc օգտվող.
su - vnc
vncserver -localhost no
Լռելյայնորեն, RFB արձանագրությունն օգտագործում է TCP պորտի միջակայքը 5900-ից մինչև 5906 - սա այսպես կոչված է: ցուցադրման նավահանգիստները, որոնցից յուրաքանչյուրը համապատասխանում է X սերվերի էկրանին: Այս դեպքում պորտերը կապված են էկրանների հետ :0-ից մինչև :6: Մեր գործարկած VNC սերվերի օրինակը լսում է 5901 նավահանգիստը (էկրան՝ 1): Այլ օրինակները կարող են աշխատել այլ նավահանգիստների վրա՝ էկրաններով :2, :3 և այլն: Մինչև հետագա կազմաձևումը, դուք պետք է դադարեցնեք սերվերը.
vncserver -kill :1
Հրամանը պետք է ցուցադրի նման բան. «Սպանելով Xtigervnc գործընթացի ID 18105... հաջողություն»:
Երբ TigerVNC-ն սկսվում է, այն գործարկում է ~/.vnc/xstartup սկրիպտը՝ կազմաձևման կարգավորումները կարգավորելու համար: Եկեք ստեղծենք մեր սեփական սցենարը՝ նախ պահպանելով եղածի կրկնօրինակը, եթե այն կա.
mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup
XFCE աշխատասեղանի միջավայրի նիստը սկսվում է հետևյալ xstartup սկրիպտով.
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &
xrdb հրամանը պահանջվում է, որպեսզի VNC-ն կարդա .Xresources ֆայլը տնային գրացուցակում: Այնտեղ օգտատերը կարող է սահմանել աշխատասեղանի տարբեր գրաֆիկական կարգավորումներ՝ տառատեսակների մատուցում, տերմինալի գույներ, կուրսորի թեմաներ և այլն։ Սցենարը պետք է կատարվի՝
chmod 755 ~/.vnc/xstartup
Սա ավարտում է VNC սերվերի կարգավորումը: Եթե այն գործարկեք vncserver -localhost no հրամանով (որպես vnc օգտվող), կարող եք միանալ նախկինում նշված գաղտնաբառով և տեսնել հետևյալ նկարը.
Ծառայության մեկնարկը systemd-ի միջոցով
VNC սերվերի ձեռքով գործարկելը հարմար չէ մարտական օգտագործման համար, ուստի մենք կկարգավորենք համակարգի ծառայությունը: Հրամանները կատարվում են որպես root (մենք օգտագործում ենք sudo): Նախ, եկեք ստեղծենք նոր միավոր ֆայլ մեր սերվերի համար.
sudo nano /etc/systemd/system/[email protected]
Անվան մեջ @ նշանը թույլ է տալիս արգումենտ փոխանցել ծառայությունը կարգավորելու համար: Մեր դեպքում այն սահմանում է VNC ցուցադրման պորտը: Միավոր ֆայլը բաղկացած է մի քանի բաժիններից.
[Unit]
Description=TigerVNC server
After=syslog.target network.target
[Service]
Type=simple
User=vnc
Group=vnc
WorkingDirectory=/home/vnc
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
Այնուհետև դուք պետք է տեղեկացնեք systemd-ին նոր ֆայլի մասին և ակտիվացնեք այն.
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
Անվան 1 համարը նշում է էկրանի համարը:
Դադարեցրեք VNC սերվերը, սկսեք այն որպես ծառայություն և ստուգեք կարգավիճակը.
# от имени пользователя vnc
vncserver -kill :1
# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1
Եթե ծառայությունն աշխատում է, մենք պետք է ստանանք նման բան:
Սեղանի միացում
Մեր կոնֆիգուրացիան չի օգտագործում գաղտնագրում, ուստի ցանցային փաթեթները կարող են գաղտնալսվել հարձակվողների կողմից: Բացի այդ, VNC սերվերներում բավականին հաճախ
sudo netstat -ap |more
Linux-ում, FreeBSD-ում, OS X-ում և UNIX-ի նման այլ ՕՀ-ներում հաճախորդի համակարգչից թունել է ստեղծվում՝ օգտագործելով ssh կոմունալ ծրագիրը (sshd-ը պետք է աշխատի VNC սերվերի վրա).
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip
-L տարբերակը կապում է հեռավոր կապի 5901 նավահանգիստը localhost-ի 5901 պորտին: -C տարբերակը հնարավորություն է տալիս սեղմել, իսկ -N տարբերակը ssh-ին ասում է, որ չկատարի հեռակառավարման հրամանը: -l տարբերակը սահմանում է մուտք՝ հեռավոր մուտքի համար:
Տեղական համակարգչում թունելը տեղադրելուց հետո դուք պետք է գործարկեք VNC հաճախորդը և կապ հաստատեք հյուրընկալող 127.0.0.1:5901 (localhost:5901) հետ՝ օգտագործելով նախկինում նշված գաղտնաբառը՝ VNC սերվեր մուտք գործելու համար: Այժմ մենք կարող ենք ապահով կերպով հաղորդակցվել գաղտնագրված թունելի միջոցով VPS-ի XFCE գրաֆիկական աշխատասեղանի միջավայրի հետ: Սքրինշոթում վերին օգտակար ծրագիրը աշխատում է տերմինալի էմուլյատորում՝ ցույց տալու համար վիրտուալ մեքենայի հաշվողական ռեսուրսների ցածր սպառումը: Այնուհետև ամեն ինչ կախված կլինի օգտագործողի հավելվածներից:
Դուք կարող եք տեղադրել և կարգավորել VNC սերվերը Linux-ում գրեթե ցանկացած VPS-ի վրա: Սա չի պահանջում թանկարժեք և ռեսուրսային ինտենսիվ կոնֆիգուրացիաներ՝ վիդեո ադապտերների էմուլյացիայով կամ առևտրային ծրագրերի լիցենզիաների գնում: Ի լրումն մեր դիտարկած համակարգի ծառայության տարբերակի, կան նաև այլ տարբերակներ. գործարկել դեյմոն ռեժիմով (/etc/rc.local-ի միջոցով), երբ համակարգը բեռնվում է կամ ըստ պահանջի inetd-ի միջոցով: Վերջինս հետաքրքիր է բազմաֆունկցիոնալ կոնֆիգուրացիաներ ստեղծելու համար։ Ինտերնետ սուպերսերվերը կգործարկի VNC սերվերը և միացնի հաճախորդին դրան, իսկ VNC սերվերը կստեղծի նոր էկրան և կսկսի նիստը: Դրա ներսում իսկությունը հաստատելու համար կարող եք օգտագործել գրաֆիկական ցուցադրման կառավարիչ (օրինակ՝
Source: www.habr.com