Acces de la distanță GUI la un computer Linux folosind Tightvnc cu systemd
On ianuarie 13, 2022 by adminAcesta este un ghid pentru instalarea TightVNC pe Raspberry Pi. Cea mai recentă versiune de Raspbian include acum RealVNC, care este un instrument alternativ de desktop la distanță. Dacă preferați să folosiți RealVNC, atunci acesta este ușor de activat prin intermediul instrumentului raspi-config, acest ghid va fi util pentru cei care doresc să înțeleagă despre crearea altor aplicații care să ruleze la pornire prin systemd.
Linia de comandă este o modalitate excelentă de a gestiona un computer Linux la distanță dacă nu vă deranjează să tastați comenzi, dar uneori trebuie să puteți vizualiza o interfață grafică. În lipsa unui cablu foarte lung, una dintre cele mai bune modalități de a face acest lucru este utilizarea protocolului VNC (Virtual Network Computing).
TightVNC vs Real VNC
Serverul TightVNC creează o fereastră virtuală diferită care este replicată pe o altă mașină folosind clientul TightVNC. Acest lucru diferă de RealVNC care, în mod normal, de obicei, reproduce ecranul implicit.
Când majoritatea oamenilor se gândesc la un instrument de desktop la distanță, atunci se gândesc de obicei la modul în care funcționează RealVNC. În acest caz, atunci când mutați mouse-ul sau lansați o aplicație, aceasta afișează aceeași ieșire pe un ecran atașat fizic (în mod normal HDMI) și pe un client la distanță prin rețea.
TightVNC este util dacă doriți să rulați ceva diferit de ceea ce este pe ecranul principal. De exemplu, l-ați putea utiliza astfel încât să aveți un afișaj de stare pe ecranul principal (prin HDMI) cu un alt afișaj utilizat pentru configurare, care este afișat pe un laptop.
Un alt avantaj al TightVNC este că este un software open source GRATUIT. Ca atare, nu are restricții de utilizare și puteți vizualiza și modifica codul sursă. Real VNC este o versiune comercială a VNC și trebuie să fie licențiat. Real VNC poate fi utilizat gratuit pentru uz personal pe Raspberry Pi, dar are restricții în cazul în care doriți să faceți alte lucruri cu el, ceea ce poate necesita o licență comercială. Acest lucru include rularea imaginii Raspbian Desktop pe un PC, deoarece aceasta nu include software-ul comercial.
Instalarea unui script de pornire utilizând Systemd
Cele ce urmează sunt instrucțiuni despre cum să configurați acest lucru pe Raspberry Pi (distribuție bazată pe Debian). Ar trebui să fie similar pentru orice altă distribuție bazată pe Debian (de exemplu, Ubuntu) care utilizează fișiere de pornire Systemd. Unele alte distribuții utilizează diferite instrumente de instalare a software-ului și, eventual, diferite instrumente de configurare init.
Dacă acest lucru este utilizat în combinație cu ghidul pentru rularea Raspberry Pi fără cap cu Debian Linux, atunci poate fi utilizat pentru a configura un Raspberry Pi pentru acces de la distanță fără a fi nevoie să îl conectați vreodată la un monitor.
Alegerea TightVNC
Există mai multe proiecte software care acceptă VNC. Am ales să folosesc TightVNC deoarece este un software gratuit cu sursă deschisă (GPL2), oferă compresie pentru a-i permite să funcționeze pe o rețea lentă (Internet) și este ușor de găsit în depozitele de software.
Modelul client-server
VNC urmează modelul tradițional client-server. Software-ul server rulează pe gazda care urmează să fie accesată, iar software-ul client rulează pe mașina locală care dorește să controleze gazda. Serverul și clientul nu trebuie să fie neapărat aceleași (de exemplu, clientul poate fi RealVNC când serverul este TightVNC), dar unele caracteristici pot funcționa numai atunci când se utilizează același client și server.
Instalați software-ul server TightVNC
În primul rând reîmprospătați informațiile din depozitul de software utilizândsudo apt update
Acest lucru este deosebit de important dacă tocmai ați instalat sistemul de operare, deoarece informațiile din depozit pot fi incomplete.
Instalați software-ul serverului din depozite:sudo apt install tightvncserver
Porniți serverul și configurați o parolă
Prima dată când rulați serverul, acesta vă va solicita să configurați o parolă. Aceasta este parola pe care o folosiți atunci când vă conectați de la distanță.
/usr/bin/tightvncserver
Nu este necesar să creați o parolă doar pentru vizualizare, cu excepția cazului în care aveți o nevoie specifică.
Când serverul pornește, acesta vă va spune ce desktop virtual a fost configurat. În acest caz:New 'X' desktop is raspberrypi:1
spune că este vorba de biroul virtual 1. Vă veți conecta la acesta folosind :1 la sfârșitul adresei IP în client, acesta este cel pe care îl vom configura să pornească automat mai târziu.
Puteți rula mai multe instanțe. De fiecare dată când porniți tightvncserver, acesta va folosi următorul desktop disponibil, dar în cele mai multe cazuri veți avea nevoie doar de unul.
Adding Tightvnc to systemd startup
Pentru ca Tightvnc să pornească automat trebuie să creăm un nou fișier de pornire, care trebuie să fie stocat în directorul /etc/systemd/system/ și să se termine cu sufixul „.service”. Eu am numit acest fișier tightvncserver.service. Acesta trebuie creat ca utilizator root, așa că folosind sudosudo nano /etc/systemd/system/tightvncserver.service
-
-
Description=TightVNC remote desktop server
-
After=sshd.service
-
-
-
-
-
Type=dbus
-
ExecStart=/usr/bin/tightvncserver :1
-
User=pi
-
Type=forking
-
-
-
WantedBy=multi-user.target
.
Este posibil să fie nevoie să modificați numele de utilizator de la linia 8. Acesta este setat în prezent la pi, care este numele de utilizator implicit pe imaginea Raspberry Pi Raspbian. Setați-l la orice nume de utilizator cu care doriți să vă conectați la TightVNC. Nu puneți root ca utilizator.
Modificați fișierul astfel încât acesta să fie deținut de rootsudo chown root:root /etc/systemd/system/tightvncserver.service
Faceți fișierul executabil prin rulareasudo chmod 755 /etc/systemd/system/tightvncserver.service
Este o idee bună să testați scriptul în acest moment, mai degrabă decât să așteptați până după o repornire. Acest lucru se face folosind:sudo systemctl start tightvncserver.service
Nu vă faceți griji dacă primiți următorul mesaj de eroare, care se datorează faptului că ați pornit deja tightvncA VNC server is already running as :1
Activați pornirea la pornire folosindsudo systemctl enable tightvncserver.service
TightVNC va porni acum la pornire. V-aș recomanda să reporniți în acest moment pentru a vă asigura că funcționează, dar puteți opri și porni serviciul folosind în schimb comanda systemctl.
Rețineți că acest lucru este conceput pentru a rula doar o singură instanță de TightVNC pe computer. Dacă doriți să puteți porni și opri instanțe specifice de TightVNC, atunci va trebui să modificați scriptul de pornire în mod corespunzător.
Instalarea vizualizatorului Tightvnc (client VNC) pe un calculator Linux
Pe un calculator Linux puteți instala vizualizatorul cusudo apt install xtightvncviewer
sau dacă acesta nu se află în depozite încercați:sudo apt-get install ssvnc
Acest lucru va funcționa numai cu distribuțiile bazate pe Debian / Ubuntu, pentru alte distribuții folosiți managerul de pachete normal.
Rețineți că ssvnc – care este versiunea pe care am instalat-o pe calculatorul meu Kubuntu se bazează pe tightvnc, dar are, de asemenea, posibilitatea de a configura tunelarea ssh (a se vedea mai târziu) prin intermediul interfeței grafice.
Login folosindxtightvncviewer 192.168.1.6:1
(înlocuiți cu propria adresă IP, după caz)
Instalarea vizualizării Tightvnc pe un computer cu Windows
Pentru a accesa din Windows sau folosind clientul Java descărcați de la TightVNC.com
Securizarea TightVNC
TightVNC permite oricui care cunoaște parola să se conecteze ca utilizator sub care rulează. De asemenea, face acest lucru fără criptare, astfel încât oricine poate cotrobăi în sesiune. Din fericire, există o soluție sigură, care constă în tunelarea conexiunii prin intermediul unui login ssh (secure shell).
Primul pas este să restricționați Tightvnc doar la calculatorul local. Acest lucru se face prin adăugarea opțiunii -localhost la pornirea serverului tightvncserver. Pentru a face acest lucru, editați linia 7 din fișierul /etc/systemd/system/tightvncserver.service pentru a se citi:>
ExecStart=/usr/bin/tightvncserver -localhost :1
Apoi reporniți serverul.
Pentru a vă conecta folosind ssh – mai întâi conectați-vă la computerul gazdă folosind sshssh [email protected] -L 5901:localhost:5901
Opțiunea -L creează tunelul, de la computerul curent (implicit) portul 5901 la computerul gazdă (ca localhost) portul 5901. Portul 5901 este portul implicit pentru afișajul 1, 5902 pentru afișajul 2 etc.
Pentru a vă conecta folosind tightvnc, utilizați acum comandaxtightvncviewer 127.0.0.1:1
Rețineți că terminalul dvs. anterior va fi acum conectat la Raspberry Pi, astfel încât va trebui să porniți un nou terminal sau tab pentru a rula vizualizatorul.
Dacă folosiți Windows, atunci tunelul ssh poate fi creat din PuTTY
Apoi conectați-vă folosind clientul vnc folosind 127.0.0.1:1.
Acum puteți folosi interfața grafică pentru a rula aplicații pe Raspberry Pi fără a avea nevoie de un monitor sau o tastatură. Dacă aveți portul de redirecționare setat pe routerul dvs. puteți face acest lucru pe Internet.
Începând managerul de ferestre
Instrucțiunile de mai sus sunt suficiente pentru Raspberry Pi care rulează Raspbian (Debian). Pe alte sisteme este posibil să fie necesar să faceți o modificare suplimentară a configurației pentru a porni managerul de ferestre / lansatorul de aplicații obișnuit. Dacă obțineți un ecran gol la conectare, editați fișierul ~/.vnc/xstartup și înlocuiți linia /etc/X11/Xsession cu una dintre următoarele, după caz.
exec ck-launch-session startlxde#for an lxde sessionexec ck-launch-session gnome-session#for a gnome-sessionexec ck-launch-session openbox-session#for an openbox desktopexec ck-launch-session startxfce4#for an xfce desktopexec ck-launch-session icewm#for an icewm desktopexec ck-launch-session startkde#for a kde desktop
De exemplu, cu Ubuntu veți folosi intrarea pentru gnome, pentru xubuntu veți folosi xfce și pentru kubuntu veți folosi kde. Raspberry Pi utilizează lxde, dar acesta este pornit automat pe Raspberry Pi, nu este nevoie să îl adăugați la fișierul xstartup.
.
Lasă un răspuns