Υπάρχουν πολλές υλοποιήσεις του ανοιχτού πρωτοκόλλου vnc για απομακρυσμένη σύνδεση σε γραφικό περιβάλλον.
Μία από τις πιο δημοφιλείς και αποτελεσματική είναι το tightvnc.
Για να εγκαταστήσουμε τον tightvnc server
aptitude install tightvncserver
Μετά την εγκατάσταση οι εντολή vncserver είναι πανομοιότυπη με την tightvncserver
Αρχικά θα ορίσουμε κωδικούς για πλήρη πρόσβαση και μόνο για προβολή
tightvncpasswd
Καλή πρακτική είναι να γίνεται σύνδεση πρώτα στο απομακρυσμένο μηχάνημα μέσω ssh και να εκκινείται ο tightvnc server ως
tightvncserver
με παραμέτρους
tightvncserver :1 -geometry 1024x768 -depth 16 -pixelformat rgb565
ή απλά
vncserver
Για να τερματίσει η 1η vnc συνεδρία που έχουμε εκκινήσει εκτελούμε
vncserver -kill :1
(Καθώς μπορούμε να εκτελέσουμε αρκετές συνεδρίες για τις τερματίσουμε, βάζουμε παράμετρο 2 για την 2η, 3 για την 3η κτλ)
Για να εκκινήσουμε τον vncserver μετά από αίτημα πελάτη, εγκαθιστούμε το openbsd-inetd
aptitude install openbsd-inetd
Στην συνέχεια προσθέτουμε στο τέλος του αρχείου /etc/services γραμμές όπως οι παρακάτω
# Local services vnc-640x480x8 5960/tcp vnc-800x600x8 5961/tcp vnc-800x600x16 5950/tcp vnc-800x600x24 5962/tcp vnc-1024x768x16 5900/tcp vnc-1024x768x24 5963/tcp
Αυτό σημαίνει ότι μετά από αίτηση στην vnc οθόνη :0 ο vncserver θα εκτελεστεί σε ανάλυση 1024×768 σε 16bit χρώμα. Αντίστοιχα αίτηση στην οθόνη :50 θα εκκινήσει έναν vncserver σε 800×600 ανάλυση σε 16bit χρώμα
ΠΡΟΣΟΧΗ! το αρχείο /etc/services μπορεί να αντικατασταθεί σε αναβάθμιση του πακέτου netbase
Επίσης προσθέτουμε στο αρχείο /etc/inetd.conf, στο τέλος του
vnc-640x480x8 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 640x480 -depth 8 vnc-800x600x8 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 800x600 -depth 8 vnc-800x600x16 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 800x600 -depth 16 vnc-800x600x24 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 800x600 -depth 24 vnc-1024x768x16 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 16 vnc-1024x768x24 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 24
Επανεκκινούμε inetd και gdm
/etc/init.d/openbsd-inetd restart /etc/init.d/gdm restart
Τώρα αρκεί να εκτελέσουμε το vnc χωρίς να ορίσουμε θύρα (προκαθορισμένη 0) για 1024x768x16bit color, ή ορίζοντας να εκτελεστεί σε άλλη ανάλυση και θα εμφανιστεί η οθόνη σύνδεσης του gdm
xtightvncviewer 192.168.1.100 -fullscreen
Στο αρχείο /etc/lightdm/lightdm.conf, ενεργοποιούμε XDMCP Server αλλά και VNCServer με κάποιες προκαθορισμένες ρυθμίσεις όπως ανάλυση 1024×768, 16bit ανάλυση χρώματος
[VNCServer] enabled=true command=/usr/bin/Xvnc -once -SecurityTypes None port=5900 width=1024 height=768 depth=16 [XDMCPServer] enabled=true port=177
Για επιπλέον αναλύσεις εγκαθιστούμε το xinetd
apt-get install xinetd vnc4server
και δημιουργούμε το αρχείο /etc/xinetd.d/vnc ως εξής
service vnc_netbook { disabled = no socket_type = stream protocol = tcp wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -once -query localhost -SecurityTypes None -geometry 1024x600 -depth 16 type = UNLISTED port = 5901 } service vnc_workstation { disabled = no socket_type = stream protocol = tcp wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -once -query localhost -SecurityTypes None -geometry 1400x900 -depth 16 type = UNLISTED port = 5902 }
Επανεκκινούμε τις υπηρεσίες
service xinetd restart service lightdm restart
Για να συνδεθούμε από clients στον vncserver έστω με ip 192.168.1.10 εκτελούμε
xtightvncviewer 192.168.1.10 xtightvncviewer 192.168.1.10:1 xtightvncviewer 192.168.1.10:2
για την κάθε μία από τις 3 αναλύσεις
Οι θύρες που θα πρέπει να ανοίξουν από κάποιον firewall ή router είναι 5500, 5800 και 5900 έως π.χ. 5910 για 10 συνεδρίες vnc
Για να εγκαταστήσουμε τον tightvnc client
aptitude install xtightvncviewer
Μετά την εγκατάσταση οι εντολή xvncviewer είναι πανομοιότυπη με την xtightvncviewer
Για να συνδεθούμε στον υπολογιστή με όνομα myserver.mydomain.com, στον οποίο έχουμε ήδη εκκινήσει μια συνεδρία vnc, εκτελούμε από τον υπολογιστή-πελάτη
xtightvncviewer myserver.mydomain.com:1
Για σύνδεση σε άλλες vnc υλοποιήσεις εξυπηρετητών που δεν κάνουν καλή συμπίεση με ταχύτητες adsl περίπου 256kbps
xtightvncviewer myserver.mydomain.com:1 -bgr233 -compresslevel 9 -quality 0 -depth 8
Για ταχύτητες adsl 192kbps έως 1Μbit
xtightvncviewer myserver.mydomain.com:1 -compresslevel 9 -quality 5 -depth 16 # (or -depth 8)
Για ταχύτητες τοπικού δικτύου
xtightvncviewer myserver.mydomain.com:1 -compresslevel 1 -quality 9 -depth 16
Στο kde υπάρχει το krdc
Το πρωτόκολλο vnc από μόνο του δεν υποστηρίζει κρυπτογράφηση. Για το λόγο αυτό συνίσταται να συνδεόμαστε μέσω ssh tunneling, δηλαδή να περνάμε τα δεδομένα μέσω μιας ασφαλής σύνδεσης ssh.
Πριν συνδεθούμε με vnc εκκινούμε μια απλή συνεδρία ssh και στον απομακρυσμένο υπολογιστή εκκινούμε τον vncserver
vncserver
Θα πρέπει να αντιστοιχίσουμε την απομακρυσμένη vnc θύρα π.χ. 5901 σε μια τοπική π.χ. ομοίως στην τοπική 5911. Από το τοπικό μηχάνημα λοιπόν εκτελούμε :
ssh -L 5911:server.mydomain.com:5901 user@server.mydomain.com
Και στην συνέχεια από τον τοπικό υπολογιστή τρέχουμε το πρόγραμμα - πελάτη
xtightvncviewer localhost:11 -encoding tight -compresslevel 9 -quality 5 -depth 16
Η υπηρεσία inetd στέλνει τα μηνύματά της στο /var/log/auth.log
Δοκιμές σε
έδειξαν ότι
Στατιστικά