Баъзе корбарон VPS-и нисбатан арзонро бо Windows иҷора мегиранд, то хидматҳои мизи кории дурдастро иҷро кунанд. Ҳамин корро дар 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
Иҷрои он ҳамчун superuser фикри бад аст. Эҷоди корбар ва гурӯҳ:
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 process 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 барои истифодаи ҷангӣ мувофиқ нест, аз ин рӯ мо хидмати системаро танзим мекунем. Фармонҳо ҳамчун реша иҷро мешаванд (мо 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 ва дигар OS-ҳои ба UNIX монанд нақб аз компютери муштарӣ бо истифода аз утилитаи ssh сохта мешавад (sshd бояд дар сервери VNC кор кунад):
ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip
Опсияи -L порти 5901-и пайвасти дурдаст ба порти 5901 дар localhost мепайвандад. Опсияи -C фишурданро имкон медиҳад ва опсияи -N ба ssh мегӯяд, ки фармони дурдастро иҷро накунад. Параметри -l вурудро барои воридшавии дурдаст муайян мекунад.
Пас аз насб кардани нақб дар компютери маҳаллӣ, шумо бояд муштарии VNC-ро оғоз кунед ва пайвастшавӣ ба ҳост 127.0.0.1:5901 (localhost:5901), бо истифода аз пароли қаблан муайяншуда барои дастрасӣ ба сервери VNC. Ҳоло мо метавонем тавассути нақби рамзшуда бо муҳити мизи кории графикии XFCE дар VPS бехатар муошират кунем. Дар скриншот, утилитаи боло дар эмулятори терминал кор мекунад, то истеъмоли ками захираҳои компютериро дар мошини виртуалӣ нишон диҳад. Он гоҳ ҳама чиз аз барномаҳои корбар вобаста хоҳад буд.
Шумо метавонед сервери VNC-ро дар Linux қариб дар ҳама гуна VPS насб ва танзим кунед. Ин конфигуратсияҳои гаронарзиш ва захираҳои серталабро бо эмулятсияи адаптерҳои видеоӣ ё харидани иҷозатномаҳои нармафзори тиҷоратӣ талаб намекунад. Илова ба варианти хидматрасонии система, ки мо баррасӣ кардем, дигарҳо ҳастанд: оғоз кардан дар реҷаи демон (тавассути /etc/rc.local), вақте ки система пурбор мешавад ё бо дархост тавассути inetd. Охирин барои эҷоди конфигуратсияҳои бисёркорбар ҷолиб аст. Superserver Internet сервери VNC-ро оғоз мекунад ва муштариро ба он пайваст мекунад ва сервери VNC экрани нав эҷод мекунад ва сессияро оғоз мекунад. Барои тасдиқи аслӣ дар дохили он, шумо метавонед менеҷери намоиши графикиро истифода баред (масалан,
Манбаъ: will.com