VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04
Sommige gebruikers huur relatief goedkoop VPS met Windows om afgeleë lessenaardienste uit te voer. Dieselfde kan op Linux gedoen word sonder om u eie hardeware in 'n datasentrum te huisves of 'n toegewyde bediener te huur. Sommige mense benodig 'n bekende grafiese omgewing vir toetsing en ontwikkeling, of 'n afgeleë lessenaar met 'n wye kanaal om vanaf mobiele toestelle te werk. Daar is baie opsies vir die gebruik van die Remote FrameBuffer (RFB) protokol-gebaseerde Virtual Network Computing (VNC) stelsel. In hierdie kort artikel sal ons jou vertel hoe om dit op 'n virtuele masjien met enige hipervisor op te stel.

INHOUDSOPGAWE:

Kies 'n VNC-bediener
Installasie en konfigurasie
Begin 'n diens via systemd
Werkskermverbinding

Kies 'n VNC-bediener

Die VNC-diens kan in die virtualiseringstelsel ingebou word, en die hiperviser sal dit met die nagebootste toestelle verbind en geen bykomende konfigurasie sal nodig wees nie. Hierdie opsie behels aansienlike bokoste en word nie deur alle verskaffers ondersteun nie - selfs in 'n minder hulpbron-intensiewe implementering, wanneer in plaas van om 'n regte grafiese toestel na te boots, 'n vereenvoudigde abstraksie (raambuffer) na die virtuele masjien oorgedra word. Soms is 'n VNC-bediener gekoppel aan 'n lopende X-bediener, maar hierdie metode is meer geskik vir toegang tot 'n fisiese masjien, en op 'n virtuele een skep dit 'n aantal tegniese probleme. Die maklikste manier om 'n VNC-bediener te installeer, is met 'n ingeboude X-bediener. Dit benodig nie fisiese toestelle (videoadapter, sleutelbord en muis) of hul nabootsing deur 'n hipervisor te gebruik nie, en is dus geskik vir enige tipe VPS.

Installasie en konfigurasie

Ons benodig 'n virtuele masjien met Ubuntu Server 18.04 LTS in sy verstekkonfigurasie. Daar is verskeie VNC-bedieners in die standaardbewaarplekke van hierdie verspreiding: StyfVNC, TigerVNC, x11vnc en ander. Ons het gevestig op TigerVNC - 'n huidige vurk van TightVNC, wat nie deur die ontwikkelaar ondersteun word nie. Die opstel van ander bedieners word op 'n soortgelyke manier gedoen. U moet ook 'n rekenaaromgewing kies: die optimale opsie, na ons mening, sal XFCE wees as gevolg van die relatief lae vereistes vir rekenaarhulpbronne. Diegene wat wil, kan nog 'n DE of WM installeer: dit hang alles af van persoonlike voorkeure, maar die keuse van sagteware beïnvloed direk die behoefte aan RAM en rekenaarkerne.

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04

Die installering van die lessenaaromgewing met alle afhanklikhede word gedoen met die volgende opdrag:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Vervolgens moet u die VNC-bediener installeer:

sudo apt-get install tigervnc-standalone-server tigervnc-common

Dit is 'n slegte idee om dit as supergebruiker te laat loop. Skep 'n gebruiker en groep:

sudo adduser vnc

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04

Kom ons voeg die gebruiker by die sudo-groep sodat hy administrasieverwante take kan verrig. As daar nie so 'n behoefte is nie, kan hierdie stap oorgeslaan word:

sudo gpasswd -a vnc sudo

Die volgende stap is om die VNC-bediener met vnc-gebruikersregte te laat loop om 'n veilige wagwoord en konfigurasielêers in die ~/.vnc/-gids te skep. Die wagwoordlengte kan van 6 tot 8 karakters wees (ekstra karakters word afgesny). Indien nodig, word 'n wagwoord ook gestel vir slegs besigtiging, m.a.w. sonder toegang tot sleutelbord en muis. Die volgende opdragte word as die vnc-gebruiker uitgevoer:

su - vnc
vncserver -localhost no

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04
By verstek gebruik die RFB-protokol die TCP-poortreeks van 5900 tot 5906 - dit is die sogenaamde. vertoonpoorte, wat elk ooreenstem met 'n X-bedienerskerm. In hierdie geval word die poorte geassosieer met skerms van :0 tot :6. Die VNC-bedienerinstansie wat ons van stapel gestuur het, luister na poort 5901 (skerm: 1). Ander gevalle kan op ander poorte werk met skerms :2, :3, ens. Voor verdere konfigurasie moet jy die bediener stop:

vncserver -kill :1

Die opdrag moet iets soos hierdie vertoon: "Killing Xtigervnc process ID 18105... success!"

Wanneer TigerVNC begin, loop dit die ~/.vnc/xstartup-skrip om konfigurasie-instellings op te stel. Kom ons skep ons eie skrif, en stoor eers 'n rugsteunkopie van die bestaande een, as dit bestaan:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

Die XFCE-lessenaaromgewingsessie word begin deur die volgende xstartup-skrip:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

Die xrdb-opdrag word vereis vir VNC om die .Xresources-lêer in die tuisgids te lees. Daar kan die gebruiker verskeie grafiese lessenaarinstellings definieer: fontweergawe, terminale kleure, wysertemas, ens. Die skrip moet uitvoerbaar gemaak word:

chmod 755 ~/.vnc/xstartup

Dit voltooi die VNC-bedieneropstelling. As jy dit uitvoer met die opdrag vncserver -localhost no (as die vnc-gebruiker), kan jy met die voorheen gespesifiseerde wagwoord koppel en die volgende prentjie sien:

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04

Begin 'n diens via systemd

Om 'n VNC-bediener handmatig te begin, is nie geskik vir gevegsgebruik nie, so ons sal 'n stelseldiens instel. Die opdragte word as root uitgevoer (ons gebruik sudo). Kom ons skep eers 'n nuwe eenheidlêer vir ons bediener:

sudo nano /etc/systemd/system/[email protected]

Die @-simbool in die naam laat jou toe om 'n argument deur te gee om die diens op te stel. In ons geval spesifiseer dit die VNC-vertoonpoort. Die eenheidlêer bestaan ​​uit verskeie afdelings:

[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

Dan moet jy systemd in kennis stel van die nuwe lêer en dit aktiveer:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

Die nommer 1 in die naam spesifiseer die skermnommer.

Stop die VNC-bediener, begin dit as 'n diens en kontroleer die status:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

As die diens loop, behoort ons so iets te kry.

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04

Werkskermverbinding

Ons konfigurasie gebruik nie enkripsie nie, so netwerkpakkies kan deur aanvallers onderskep word. Daarbenewens, in VNC-bedieners redelik dikwels vind kwesbaarhede, so jy moet dit nie oopmaak vir toegang vanaf die internet nie. Om veilig op jou plaaslike rekenaar te koppel, moet jy die verkeer in 'n SSH-tonnel verpak en dan 'n VNC-kliënt konfigureer. Op Windows kan u 'n grafiese SSH-kliënt (byvoorbeeld PuTTY) gebruik. Vir sekuriteit luister TigerVNC op die bediener net na localhost en is nie direk toeganklik vanaf publieke netwerke nie:


sudo netstat -ap |more

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04
In Linux, FreeBSD, OS X en ander UNIX-agtige bedryfstelsels word 'n tonnel vanaf die kliëntrekenaar gemaak met behulp van die ssh-nutsding (sshd moet op die VNC-bediener loop):

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

Die -L opsie bind poort 5901 van die afstandverbinding aan poort 5901 op localhost. Die -C opsie aktiveer kompressie, en die -N opsie vertel ssh om nie die afstandbevel uit te voer nie. Die -l opsie spesifiseer login vir remote login.

Nadat u die tonnel op die plaaslike rekenaar opgestel het, moet u die VNC-kliënt begin en 'n verbinding tot stand bring met die gasheer 127.0.0.1:5901 (localhost:5901), met behulp van die voorheen gespesifiseerde wagwoord om toegang tot die VNC-bediener te verkry. Ons kan nou veilig kommunikeer via 'n geënkripteerde tonnel met die XFCE grafiese lessenaaromgewing op die VPS. In die skermkiekie loop die tophulpmiddel in die terminale emulator om die virtuele masjien se lae verbruik van rekenaarhulpbronne te wys. Dan sal alles afhang van gebruikerstoepassings.

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04
U kan 'n VNC-bediener in Linux op byna enige VPS installeer en konfigureer. Dit vereis nie duur en hulpbron-intensiewe konfigurasies met video-adapter-emulasie of die aankoop van kommersiële sagtewarelisensies nie. Benewens die stelseldiensopsie wat ons oorweeg het, is daar ander: begin in daemonmodus (via /etc/rc.local) wanneer die stelsel selflaai of op aanvraag via inetd. Laasgenoemde is interessant vir die skep van multi-gebruiker konfigurasies. Die Internet Superbediener sal die VNC-bediener begin en die kliënt daaraan koppel, en die VNC-bediener sal 'n nuwe skerm skep en die sessie begin. Om daarbinne te staaf, kan jy 'n grafiese vertoonbestuurder gebruik (byvoorbeeld, LightDM), en nadat die kliënt ontkoppel is, sal die sessie gesluit word en alle programme wat met die skerm werk, sal beëindig word.

VPS op Linux met GUI: Begin 'n VNC-bediener op Ubuntu 18.04

Bron: will.com

Voeg 'n opmerking