Το Virtual Network Computing (VNC) είναι ένα σύστημα κοινής χρήσης οθόνης που χρησιμοποιείται για την απομακρυσμένη πρόσβαση σε γραφικά περιβάλλοντα εργασίας. Χρησιμοποιεί το πρωτόκολλο remote frame buffer επιτρέποντας σε έναν διακομιστή (πλευρά χρήστη) να συνδεθεί με μια άλλη πλευρά (πελάτης). Το VNC είναι ασφαλές, προστατευμένο και λειτουργεί σε όλα τα λειτουργικά συστήματα.
RealVNC, UltraVNC, Xfce, TightVNC, για να αναφέρουμε μερικά, είναι οι πιο δημοφιλείς πελάτες VNC που χρησιμοποιούνται σήμερα. Μεταξύ της λίστας των διαθέσιμων εναλλακτικών λύσεων, είστε ελεύθεροι να επιλέξετε οποιοδήποτε VNC σας εξυπηρετεί. Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στα βήματα εγκατάστασης και παραμετροποίησης του VNC στο Ubuntu 20.04. Πρόκειται να εγκαταστήσουμε το Xfce λόγω της ταχύτητάς του, του μικρού του μεγέθους και της εξαιρετικής του απόδοσης.
Θα ξεκινήσουμε με τη ρύθμιση ενός διακομιστή VNC σε έναν Ubuntu διακομιστή και τη δημιουργία μιας ασφαλούς σύνδεσης μέσω σήραγγας SSH. Τέλος, θα χρησιμοποιήσουμε ένα πρόγραμμα πελάτη VNC στον τοπικό μας υπολογιστή για να αλληλεπιδράσουμε με τον διακομιστή μέσω ενός γραφικού περιβάλλοντος επιφάνειας εργασίας.
Προαπαιτούμενα
Για να ακολουθήσετε αυτόν τον οδηγό, θα χρειαστείτε:
-
Έναν διακομιστή Ubuntu 20.04 με έναν μη-root χρήστη και ένα απλό τείχος προστασίας (UFW).
-
Έναν τοπικό υπολογιστή με εγκατεστημένο έναν πελάτη VNC. Επίσης, ο πελάτης VNC που θα χρησιμοποιήσουμε συνδέεται μέσω SSH σηράγγων.
Βήμα 1— Εγκατάσταση του περιβάλλοντος επιφάνειας εργασίας και του διακομιστή VNC
Σε αντίθεση με τις προηγούμενες εκδόσεις Ubuntu, το Ubuntu 20.04 δεν συνοδεύεται από προεγκατεστημένο VNC. Ως πρώτο βήμα, θα εγκαταστήσουμε τα απαραίτητα πακέτα από το επίσημο αποθετήριο του Ubuntu. Πριν προχωρήσουμε, ας ενημερώσουμε τα υπάρχοντα πακέτα:
|
1 |
sudo apt update |
Τώρα θα εγκαταστήσουμε το Xfce και το πακέτο xfce4-goodies χρησιμοποιώντας την εντολή:
|
1 |
sudo apt install xfce4 xfce4-goodies |
Καθώς το πακέτο σας εγκαθίσταται, θα δείτε μια οθόνη που σας ζητά να επιλέξετε έναν προεπιλεγμένο διαχειριστή οθόνης για το Xfce. Αγνοήστε το μήνυμα ή ορίστε το ως προεπιλογή και, στη συνέχεια, πατήστε ENTER.
Ένας διαχειριστής οθόνης είναι ένα πρόγραμμα που επιτρέπει στους χρήστες να συνδέονται σε ένα περιβάλλον επιφάνειας εργασίας μέσω μιας γραφικής διεπαφής. Σε αυτόν τον οδηγό, θα χρησιμοποιήσουμε το Xfce κατά τη σύνδεση με έναν πελάτη VNC όπου είμαστε συνδεδεμένοι ως μη-root χρήστης του Ubuntu. Επομένως, η επιλογή του διαχειριστή οθόνης δεν θα έχει καμία επίδραση στην εγκατάστασή μας.
Μετά την εγκατάσταση του Xfce, θα εγκαταστήσουμε τον διακομιστή TightVNC:
|
1 |
sudo apt install tightvncserver |
Στο επόμενο βήμα, χρησιμοποιήστε την εντολή vncserver για να ορίσετε έναν κωδικό πρόσβασης VNC και να δημιουργήσετε τα αρχικά αρχεία ρυθμίσεων. Πληκτρολογήστε τα ακόλουθα για να ξεκινήσετε τη λειτουργία του διακομιστή VNC:
|
1 |
vncserver |
Μετά από αυτό, ορίστε έναν κωδικό πρόσβασης μήκους 6-8 χαρακτήρων και πατήστε ENTER. Θα δείτε ένα μήνυμα προτροπής:
|
1 2 3 4 5 |
Έξοδος Θα χρειαστείτε έναν κωδικό πρόσβασης για την πρόσβαση στις επιφάνειες εργασίας σας. Κωδικός πρόσβασης: Επαλήθευση: |
Στο μέλλον, εάν επιθυμείτε να αλλάξετε τον κωδικό πρόσβασής σας ή να προσθέσετε έναν κωδικό πρόσβασης μόνο για προβολή, χρησιμοποιήστε την εντολή:
|
1 |
vncpasswd |
Μέχρι τώρα, θα έχετε δημιουργήσει όλες τις προεπιλεγμένες ρυθμίσεις για τον διακομιστή, και μια θύρα εμφάνισης 5901 θα έχει ξεκινήσει ως :1. Το VNC μπορεί να ξεκινήσει πολλαπλές περιπτώσεις σε άλλες θύρες εμφάνισης όπως :2, :3, και :4 που αναφέρεται στη θύρα 5902, 5903, και 5904 αντίστοιχα:
|
1 2 3 4 5 6 7 8 9 |
Έξοδος Θα θέλατε να εισαγάγετε έναν κωδικό πρόσβασης -μόνο για προβολή (y/n)? n xauth: αρχείο /home/cloudsigma/.Xauthority does δεν υπάρχει Νέα 'X' επιφάνεια εργασίας είναι your_hostname:1 Δημιουργία προεπιλεγμένου σεναρίου εκκίνησης /home/cloudsigma/.vnc/xstartup Εκκίνηση εφαρμογών που καθορίζονται στο /home/cloudsigma/.vnc/xstartup Το αρχείο καταγραφής είναι /home/cloudsigma/.vnc/your_hostname:1.log |
Ο διακομιστής VNC έχει πλέον εγκατασταθεί και εκτελείται με επιτυχία. Στο επόμενο βήμα, ας ρυθμίσουμε τον διακομιστή ώστε να εκκινεί το Xfce για να αποκτήσετε πρόσβαση μέσω της γραφικής διεπαφής.
Βήμα 2— Διαμόρφωση του διακομιστή VNC
Στον αρχικό κατάλογο, θα βρείτε τον φάκελο .vnc ο οποίος περιέχει όλα τα αρχεία ρυθμίσεων που ονομάζονται startup. Αρχικά, θα βρείτε να εκτελείται το αρχείο εκκίνησης που δημιουργήθηκε αυτόματα όταν εκτελέσαμε την εντολή vncserver στο Βήμα-1. Το σενάριο εκκίνησης δημιουργήθηκε όταν εκτελέσατε την εντολή vncserver στο προηγούμενο βήμα. Ωστόσο, τώρα θα δημιουργήσετε το δικό σας για να εκκινήσετε την επιφάνεια εργασίας Xfce. Θα πρέπει επίσης να δημιουργήσουμε τον δικό μας διακομιστή για να εκκινήσουμε την επιφάνεια εργασίας Xfce επειδή η διαμόρφωση του VNC θα αλλάξει.
Πριν προχωρήσουμε περαιτέρω, πρέπει να σταματήσουμε το στιγμιότυπο του διακομιστή VNC που εκτελείται στη θύρα 5901:
|
1 |
vncserver -kill :1 |
Θα δείτε το αποτέλεσμα:
|
1 2 |
Αποτέλεσμα Τερματισμός Xtightvnc διεργασίας ID 17648 nano ~/.vnc/xstartup |
Αντί για 17648, ενδέχεται να λάβετε έναν διαφορετικό αριθμό και αυτό είναι εντάξει. Στη συνέχεια, θα τροποποιήσουμε το xstartup αρχείο. Πριν κάνετε οποιαδήποτε τροποποίηση αρχείου, ας δημιουργήσουμε ένα αντίγραφο ασφαλείας του αρχικού αρχείου:
|
1 |
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak |
Στη συνέχεια, δημιουργήστε ένα νέο xstartup αρχείο και ανοίξτε το σε οποιονδήποτε επεξεργαστή κειμένου. Σε αυτόν τον οδηγό, χρησιμοποιούμε το nano:
|
1 |
nano ~/.vnc/xstartup |
Μόλις τελειώσετε, προσθέστε τις ακόλουθες γραμμές στο αρχείο:
|
1 2 3 |
#!/bin/bash xrdb $HOME/.Xresources startxfce4 & |
Κάθε φορά που εκκινείτε ή επανεκκινείτε τον διακομιστή VNC, αυτές οι εντολές εκτελούνται αυτόματα. Η πρώτη γραμμή είναι το Shebang που ενημερώνει το σύστημα σχετικά με τις πληροφορίες του διερμηνέα για να περάσει το αρχείο ~/.vnc/xstartup προς εκτέλεση. Η επόμενη γραμμή xrdb $HOME/. Xresources, ενημερώνει το πλαίσιο GUI του VNC να διαβάσει το αρχείο Xresources του χρήστη του διακομιστή. Τέλος, η τελευταία γραμμή ζητά από τον διακομιστή να εκκινήσει το Xfce. Αφού προσθέσετε αυτές τις γραμμές, αποθηκεύστε και κλείστε το αρχείο.
Πρέπει να καταστήσουμε το αρχείο εκτελέσιμο, ώστε ο διακομιστής VNC να μπορεί να χρησιμοποιήσει το νέο αρχείο εκκίνησης:
|
1 |
chmod +x ~/.vnc/xstartup |
Στη συνέχεια, επανεκκινήστε τον διακομιστή VNC:
|
1 |
vncserver -localhost |
Τώρα θα έχετε την επιλογή -localhost να έχει προστεθεί εδώ. Το localhost συνδέει τον διακομιστή VNC στη διεπαφή loopback του διακομιστή σας, επιτρέποντας συνδέσεις μόνο από εγκατεστημένους διακομιστές. Στη συνέχεια, θα δημιουργήσουμε μια σήραγγα SSH μεταξύ του τοπικού μας μηχανήματος και του διακομιστή. Ο στόχος είναι να προσθέσουμε ένα επιπλέον επίπεδο ασφάλειας γύρω από το VNC. Γιατί; Επειδή οι χρήστες που θα έχουν πρόσβαση θα είναι αυτοί που έχουν ήδη πρόσβαση SSH στον διακομιστή.
Θα δείτε το ακόλουθο αποτέλεσμα:
|
1 2 3 4 |
Νέο 'X' επιφάνεια εργασίας είναι your_hostname:1 Εκκίνηση εφαρμογών που καθορίζονται στο /home/sammy/.vnc/xstartup Το αρχείο καταγραφής είναι /home/cloudsigma/.vnc/your_hostname:1.log |
Αφού ολοκληρωθεί η διαμόρφωση, είμαστε έτοιμοι να συνδεθούμε στον διακομιστή VNC από το τοπικό μας μηχάνημα.
Βήμα 3— Ασφαλής σύνδεση στην επιφάνεια εργασίας VNC
Κατά τη σύνδεση με τον διακομιστή, το VNC δεν χρησιμοποιεί ασφαλή πρωτόκολλα. Επομένως, πρέπει να δημιουργήσουμε μια σήραγγα SSH και να ζητήσουμε από τον πελάτη VNC να πραγματοποιήσει σύνδεση χρησιμοποιώντας τη σήραγγα, αντί να του επιτρέψουμε να πραγματοποιήσει απευθείας σύνδεση από μόνος του.
Θα δημιουργήσουμε μια σύνδεση SSH στον τοπικό μας υπολογιστή χρησιμοποιώντας την εντολή ssh που προωθεί στη σύνδεση localhost. Χρησιμοποιήστε την εντολή στο τερματικό για να δημιουργήσετε μια σύνδεση SSH:
|
1 |
ssh -L 59000:localhost:5901 -C -N -l cloudsigma your_server_ip |
Ας αποκρυπτογραφήσουμε τον παραπάνω κώδικα:
-
-L 59000:localhost:5901: Ο διακόπτης -L καθορίζει ότι η δεδομένη θύρα στον τοπικό υπολογιστή ( 59000) θα κατευθυνθεί στον δεδομένο κεντρικό υπολογιστή και θύρα στον διακομιστή προορισμού ( localhost:5901). Αυτό σημαίνει ότι η θύρα 5901 στον διακομιστή προορισμού θα οριστεί ως your_server_ip). Η τοπική θύρα που καθορίζετε είναι αυθαίρετη. Εφόσον η θύρα δεν είναι ήδη δεσμευμένη από άλλη υπηρεσία, είστε ελεύθεροι να τη χρησιμοποιήσετε ως θύρα προώθησης για τη σήραγγά σας.
-
-C: Ενεργοποιεί τη συμπίεση, η οποία βοηθά περαιτέρω στην ελαχιστοποίηση της κατανάλωσης πόρων και στην επιτάχυνση της απόδοσης.
-
-N: Χρήσιμο για την προώθηση θυρών. Αυτό ενημερώνει το ssh να μην εκτελέσει καμία απομακρυσμένη εντολή.
-
-l cloudsigma your_server_ip: Ο διακόπτης -l σάς επιτρέπει να καθορίσετε τον χρήστη με τον οποίο θέλετε να συνδεθείτε αφού συνδεθείτε στον διακομιστή.
Η παραπάνω εντολή είναι ένας πιο ασφαλής τρόπος δημιουργίας μιας ασφαλούς σύνδεσης από το να ανοίξετε απλώς το τείχος προστασίας του διακομιστή σας για να επιτρέψετε συνδέσεις στη θύρα 5901 από οπουδήποτε. Μόλις πραγματοποιήσετε τη σύνδεση, η σήραγγα SSH προωθεί τα περιεχόμενα από τη θύρα 5901 στο VNC σας στη θύρα 59000 στην τοπική σας μηχανή μέσω της προεπιλεγμένης θύρας SSH, τη θύρα 22.
Μπορείτε επίσης να χρησιμοποιήσετε το PuTTY για να συνδέσετε τον διακομιστή σας. Ανοίξτε το PuTTY, μεταβείτε στην αριστερή πλευρά του τερματικού PuTTY και βρείτε τον κλάδο Connection για να συνδεθείτε. Στη συνέχεια, αναπτύξτε τον κλάδο SSH και κάντε κλικ στο Tunnels. Στην οθόνη Options controlling SSH port forwarding screen, εισαγάγετε 59000 ως Source Port και localhost:5901 ως Destination:

Διατηρήστε όλες τις επιλογές αμετάβλητες, κάντε κλικ στο Add, και μετά στο Apply για να εφαρμόσετε τη σήραγγα. Μόλις ξεκινήσει η σήραγγα, χρησιμοποιήστε έναν πελάτη VNC για να συνδεθείτε στο localhost: 59000. Από προεπιλογή, θα σας ζητηθεί να κάνετε έλεγχο ταυτότητας χρησιμοποιώντας τον κωδικό πρόσβασης που δημιουργήσαμε στο Step-1. Μόλις συνδεθείτε, θα δείτε την προεπιλεγμένη επιφάνεια εργασίας Xfce:

Μπορείτε να αποκτήσετε πρόσβαση και να διαχειριστείτε αρχεία στον αρχικό κατάλογο. Επίσης, ρυθμίστε τον διακομιστή VNC να εκτελείται ως systemd service.
Βήμα 4— Εκτέλεση του VNC ως υπηρεσία Systemd
Η ρύθμιση του διακομιστή VNC ώστε να εκτελείται ως υπηρεσία systemd επιτρέπει τη διαχείριση του διακομιστή. Μπορείτε να κάνετε εκκίνηση, διακοπή, επανεκκίνηση ή τερματισμό, ανάλογα με την ευκολία και τις ανάγκες σας. Κάθε φορά που εκκινεί ο διακομιστής, μπορείτε να χρησιμοποιείτε εντολές διαχείρισης systemd για να επαληθεύσετε εάν ο διακομιστής είναι ON ή OFF.
Αρχικά, θα δημιουργήσουμε ένα νέο αρχείο μονάδας για να καθορίσουμε τη θύρα οθόνης VNC που θέλουμε να χρησιμοποιήσουμε κατά τη διαχείριση των υπηρεσιών. Ορίστε ένα αρχείο μονάδας:
|
1 |
sudo nano /etc/systemd/system/vncserver@.service |
Θα βρείτε το σύμβολο @ στο τέλος του ονόματος του αρχείου, το οποίο σας επιτρέπει να μεταβιβάσετε ένα όρισμα για τη χρήση της διαμόρφωσης της υπηρεσίας.
Στη συνέχεια, προσθέστε το σύνολο των γραμμών στο αρχείο μονάδας. Μετονομάστε τα User, Group, WorkingDirectory, και το όνομα χρήστη στην τιμή του PIDFILE:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=cloudsigma Group=cloudsigma WorkingDirectory=/home/cloudsigma PIDFile=/home/cloudsigma/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target |
Εάν το VNC εκτελείται ήδη, η εντολή ExecStartPre θα το σταματήσει. Η εντολή ExecStart ξεκινά το VNC και ορίζει το βάθος χρώματος σε 24-bit με ανάλυση 1280×800. Μπορείτε να επεξεργαστείτε αυτές τις επιλογές εκκίνησης με βάση τις απαιτήσεις σας. Επίσης, σημειώστε ότι η εντολή ExecStart περιλαμβάνει ξανά την επιλογή -localhost. Μόλις τελειώσετε, αποθηκεύστε και κλείστε το αρχείο μονάδας.
Στη συνέχεια, εισαγάγετε το νέο αρχείο μονάδας στο σύστημά σας:
|
1 |
sudo sudo systemctl daemon-reload |
Ενεργοποιήστε ON το αρχείο μονάδας:
|
1 |
sudo systemctl enable vncserver@1.service |
Το 1 που ακολουθεί το @ το σύμβολο υποδηλώνει σε ποιον αριθμό οθόνης πρέπει να εμφανίζεται η υπηρεσία. Στην περίπτωσή μας, είναι η προεπιλεγμένη :1 όπως συζητήθηκε στο Βήμα-2. Εάν το VNC εξακολουθεί να εκτελείται, μπορείτε να σταματήσετε την τρέχουσα παρουσία του διακομιστή VNC χρησιμοποιώντας την εντολή kill :
|
1 |
vncserver -kill :1 |
Στη συνέχεια, εκκινήστε το όπως θα εκκινούσατε οποιαδήποτε άλλη υπηρεσία systemd:
|
1 |
sudo systemctl start vncserver@1 |
Μπορείτε να επαληθεύσετε ότι ξεκίνησε με αυτήν την εντολή:
|
1 |
sudo systemctl status vncserver@1 |
Θα δείτε το αποτέλεσμα:
|
1 2 3 4 5 6 7 8 |
Έξοδος vncserver@1.service - Έναρξη TightVNC διακομιστής κατά την εκκίνηση Φορτώθηκε: φορτώθηκε (/etc/systemd/system/vncserver@.service; ενεργοποιημένο; vendor preset: ενεργοποιημένο) Ενεργό: ενεργό (σε εκτέλεση) από Πέμ 2020-05-07 17:23:50 UTC; 6δ πριν Διεργασία: 39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Διεργασία: 39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS) Κύριο PID: 39795 (Xtightvnc) ... |
Ο διακομιστής VNC είναι πλέον έτοιμος για χρήση όποτε εκκινείται ο διακομιστής σας, και μπορείτε να τον διαχειριστείτε με systemctl εντολές όπως οποιαδήποτε άλλη υπηρεσία systemd. Ωστόσο, δεν θα δείτε καμία διαφορά από την πλευρά του πελάτη. Για να επανασυνδεθείτε, εκκινήστε τη σήραγγα SSH σας χρησιμοποιώντας:
|
1 |
ssh -L 59000:localhost:5901 -C -N -l cloudsigma your_server_ip |
Μπορείτε να πραγματοποιήσετε ξανά συνδέσεις χρησιμοποιώντας τον πελάτη VNC στο localhost:59000 με τον διακομιστή σας.
Συμπέρασμα
Αρχικά, η ρύθμιση ενός διακομιστή VNC μπορεί να φαίνεται δύσκολη, ειδικά όταν προσπαθείτε να συνδεθείτε με έναν νέο υπολογιστή. Μόλις δημιουργήσετε μια αξιόπιστη σύνδεση, η εργασία με έναν απομακρυσμένο υπολογιστή θα είναι διασκεδαστική και συναρπαστική. Με έναν ασφαλή διακομιστή VNC σε λειτουργία στον διακομιστή σας Ubuntu 20.04, μπορείτε εύκολα να διαχειριστείτε τους πόρους, τα αρχεία, το λογισμικό και τις ρυθμίσεις σας με μια φιλική προς τον χρήστη γραφική διεπαφή. Η χρήση υπερβολικού εύρους ζώνης είναι ίσως ένα μειονέκτημα της χρήσης του VNC. Μπορείτε να το ξεπεράσετε χρησιμοποιώντας οθόνες χαμηλής ανάλυσης και κλίμακας του γκρι για ταχύτερη μεταφορά.
Καλή υπολογιστική!
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.