Disa përdorues marrin me qira VPS relativisht të lira me Windows për të ekzekutuar shërbimet e desktopit në distancë. E njëjta gjë mund të bëhet në Linux pa pritur pajisjen tuaj në një qendër të dhënash ose pa marrë me qira një server të dedikuar. Disa njerëz kanë nevojë për një mjedis të njohur grafik për testim dhe zhvillim, ose një desktop në distancë me një kanal të gjerë për të punuar nga pajisjet celulare. Ka shumë opsione për përdorimin e sistemit të llogaritjes së rrjetit virtual (VNC) të bazuar në protokoll Remote FrameBuffer (RFB). Në këtë artikull të shkurtër do t'ju tregojmë se si ta konfiguroni atë në një makinë virtuale me çdo hipervizor.
Përmbajtja:
Zgjedhja e një serveri VNC
Shërbimi VNC mund të ndërtohet në sistemin e virtualizimit dhe hipervizori do ta lidhë atë me pajisjet e emuluara dhe nuk do të kërkohet asnjë konfigurim shtesë. Ky opsion përfshin shpenzime të konsiderueshme dhe nuk mbështetet nga të gjithë ofruesit - madje edhe në një zbatim më pak intensiv të burimeve, kur në vend të imitimit të një pajisjeje reale grafike, një abstraksion i thjeshtuar (framebuffer) transferohet në makinën virtuale. Ndonjëherë një server VNC është i lidhur me një server X që funksionon, por kjo metodë është më e përshtatshme për të hyrë në një makinë fizike dhe në një virtual krijon një sërë vështirësish teknike. Mënyra më e lehtë për të instaluar një server VNC është me një server X të integruar. Nuk kërkon pajisje fizike (përshtatës video, tastierë dhe mi) ose emulim të tyre duke përdorur një hipervizor, dhe për këtë arsye është i përshtatshëm për çdo lloj VPS.
Instalimi dhe konfigurimi
Do të na duhet një makinë virtuale me Ubuntu Server 18.04 LTS në konfigurimin e saj të paracaktuar. Ekzistojnë disa serverë VNC në depot standarde të kësaj shpërndarjeje:
Instalimi i mjedisit të desktopit me të gjitha varësitë bëhet me komandën e mëposhtme:
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Tjetra ju duhet të instaloni serverin VNC:
sudo apt-get install tigervnc-standalone-server tigervnc-common
Përdorimi i tij si superpërdorues është një ide e keqe. Krijo një përdorues dhe grup:
sudo adduser vnc
Le të shtojmë përdoruesin në grupin sudo në mënyrë që ai të mund të kryejë detyra të lidhura me administrimin. Nëse nuk ka nevojë të tillë, mund ta kaloni këtë hap:
sudo gpasswd -a vnc sudo
Hapi tjetër është të ekzekutoni serverin VNC me privilegjet e përdoruesit vnc për të krijuar një fjalëkalim të sigurt dhe skedarë konfigurimi në drejtorinë ~/.vnc/. Gjatësia e fjalëkalimit mund të jetë nga 6 deri në 8 karaktere (karakteret shtesë janë prerë). Nëse është e nevojshme, vendoset edhe një fjalëkalim vetëm për shikim, d.m.th. pa qasje në tastierë dhe maus. Komandat e mëposhtme ekzekutohen si përdorues vnc:
su - vnc
vncserver -localhost no
Si parazgjedhje, protokolli RFB përdor gamën e portit TCP nga 5900 në 5906 - kjo është e ashtuquajtura. portat e ekranit, secila korrespondon me një ekran të serverit X. Në këtë rast, portet shoqërohen me ekrane nga :0 në :6. Shembulli i serverit VNC që lëshuam dëgjon portin 5901 (ekrani: 1). Instancat e tjera mund të punojnë në porte të tjera me ekrane :2, :3, etj. Përpara konfigurimit të mëtejshëm, duhet të ndaloni serverin:
vncserver -kill :1
Komanda duhet të shfaqë diçka si kjo: "Vrasja e procesit Xtigervnc ID 18105... sukses!"
Kur fillon TigerVNC, ai ekzekuton skriptin ~/.vnc/xstartup për të konfiguruar cilësimet e konfigurimit. Le të krijojmë skriptin tonë, së pari duke ruajtur një kopje rezervë të ekzistuesit, nëse ekziston:
mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup
Sesioni i mjedisit të desktopit XFCE fillon me skriptin e mëposhtëm xstartup:
#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &
Komanda xrdb kërkohet që VNC të lexojë skedarin .Xresources në direktorinë kryesore. Atje përdoruesi mund të përcaktojë cilësime të ndryshme grafike të desktopit: paraqitjen e shkronjave, ngjyrat e terminalit, temat e kursorit, etj. Skripti duhet të bëhet i ekzekutueshëm:
chmod 755 ~/.vnc/xstartup
Kjo përfundon konfigurimin e serverit VNC. Nëse e ekzekutoni me komandën vncserver -localhost no (si përdorues vnc), mund të lidheni me fjalëkalimin e specifikuar më parë dhe të shihni foton e mëposhtme:
Nisja e një shërbimi përmes systemd
Nisja manuale e një serveri VNC nuk është e përshtatshme për përdorim luftarak, kështu që ne do të konfigurojmë një shërbim të sistemit. Komandat ekzekutohen si rrënjë (ne përdorim sudo). Së pari, le të krijojmë një skedar të ri njësi për serverin tonë:
sudo nano /etc/systemd/system/[email protected]
Simboli @ në emër ju lejon të kaloni një argument për të konfiguruar shërbimin. Në rastin tonë, ai specifikon portën e ekranit VNC. Skedari i njësisë përbëhet nga disa seksione:
[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
Pastaj ju duhet të njoftoni systemd për skedarin e ri dhe ta aktivizoni atë:
sudo systemctl daemon-reload
sudo systemctl enable [email protected]
Numri 1 në emër specifikon numrin e ekranit.
Ndaloni serverin VNC, filloni atë si shërbim dhe kontrolloni statusin:
# от имени пользователя vnc
vncserver -kill :1
# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1
Nëse shërbimi po funksionon, duhet të marrim diçka të tillë.
Lidhja e Desktopit
Konfigurimi ynë nuk përdor enkriptim, kështu që paketat e rrjetit mund të përgjohen nga sulmuesit. Për më tepër, në serverët VNC mjaft shpesh
sudo netstat -ap |more
Në Linux, FreeBSD, OS X dhe OS të tjera të ngjashme me UNIX, një tunel nga kompjuteri i klientit është krijuar duke përdorur mjetin ssh (sshd duhet të funksionojë në serverin VNC):
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip
Opsioni -L lidh portin 5901 të lidhjes në distancë me portin 5901 në localhost. Opsioni -C mundëson kompresimin dhe opsioni -N i thotë ssh të mos ekzekutojë komandën në distancë. Opsioni -l specifikon hyrjen për hyrje në distancë.
Pas konfigurimit të tunelit në kompjuterin lokal, duhet të nisni klientin VNC dhe të krijoni një lidhje me hostin 127.0.0.1:5901 (localhost:5901), duke përdorur fjalëkalimin e specifikuar më parë për të hyrë në serverin VNC. Tani mund të komunikojmë në mënyrë të sigurt nëpërmjet një tuneli të koduar me mjedisin e desktopit grafik XFCE në VPS. Në pamjen e ekranit, programi kryesor po funksionon në emulatorin e terminalit për të treguar konsumin e ulët të burimeve kompjuterike të makinës virtuale. Atëherë gjithçka do të varet nga aplikacionet e përdoruesve.
Mund të instaloni dhe konfiguroni një server VNC në Linux në pothuajse çdo VPS. Kjo nuk kërkon konfigurime të shtrenjta dhe me burime intensive me emulimin e përshtatësit video ose blerjen e licencave komerciale të softuerit. Përveç opsionit të shërbimit të sistemit që shqyrtuam, ka të tjera: nisja në modalitetin daemon (nëpërmjet /etc/rc.local) kur sistemi niset ose sipas kërkesës përmes inetd. Kjo e fundit është interesante për krijimin e konfigurimeve me shumë përdorues. Superserveri i Internetit do të nisë serverin VNC dhe do të lidhë klientin me të, dhe serveri VNC do të krijojë një ekran të ri dhe do të fillojë seancën. Për të vërtetuar brenda tij, mund të përdorni një menaxher grafik të ekranit (për shembull,
Burimi: www.habr.com