Virtual Network Computing (VNC) funktioniert, indem es den Bildspeicher des Displays erfasst und über das Netzwerk verfügbar macht. Dieser Beitrag zeigt Ihnen, wie Sie TigerVNC installieren und konfigurieren, um entfernten Benutzern Zugriff auf ihre grafische Desktop-Umgebung zu gewähren, als ob sie sich physisch vor dem System befänden.
Für das Beispiel in diesem Beitrag verwenden wir einen CentOS 7-Server als VNC-Server und einen lokalen Computer mit einem VNC-Client, um sich damit zu verbinden. Es wird davon ausgegangen, dass auf dem Remote-System der OpenSSH-SSH-Server und eine grafische Desktop-Umgebung wie GNOME oder KDE ausgeführt werden. Sie können sich auf den Beitrag „CentOS / RHEL 7:How to Install GUI“ beziehen, um die grafische Umgebung zu installieren, bevor Sie fortfahren.
VNC-Server installieren
1. Stellen Sie sicher, dass Sie Zugriff auf ein lokales oder entferntes yum-Repository haben, um die erforderlichen Pakete zu installieren.
# yum repolist
2. Installieren Sie das GUI-Desktop-Paket, falls es noch nicht installiert ist, um einen GUI-Zugriff auf den VNC-Server zu haben.
# yum groupinstall "Server with GUI"
3. Installieren Sie auf dem VNC-Server das TigerVNC-Serverpaket:
# yum install tigervnc-server
VNC-Server konfigurieren
Kopieren Sie die Konfigurationsdatei /lib/systemd/system/[email protected] , in das Verzeichnis /etc/systemd/system/ nach der Benennung von ‘vncserver_[username]@:[port].service ‘. Zum Beispiel:
# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver_root@:2.service # cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver_oracle@:3.serviceHinweis Hinweis:Es ist üblich, für jeden Benutzer unterschiedliche Konfigurationsdateien zu erstellen. Als Best Practice können wir den Benutzernamen zur Konfigurationsdatei hinzufügen, da dies hilft zu identifizieren, welche Datei zu jedem Benutzer gehört. Dies ist nicht erforderlich.
3. Ändern Sie die Konfigurationsdateien, die für jeden Benutzer erstellt wurden (in diesem Beispiel verwenden wir root und oracle):
A. Ersetzen Sie den Platzhalter <USER> durch den Benutzer „root“, der im [Dienst] für die Datei „vncserver_root@:2.service“ angezeigt wird, und „oracle“ für die Datei „vncserver_oracle@:3.service“ durch vi.
# vi /etc/systemd/system/vncserver_root@:2.service # vi /etc/systemd/system/vncserver_oracle@:3.service
Sie können auch „sed“ verwenden, um den Benutzernamen automatisch zu ersetzen:
# sed -i 's/<USER>/root/g' /etc/systemd/system/vncserver_root@:2.service # sed -i 's/<USER>/oracle/g' /etc/systemd/system/vncserver_oracle@:3.service
B. Fügen Sie die Geometrie auch für jeden Benutzer zur Konfigurationsdatei hinzu. In diesem Beispiel fügen wir „-Geometrie 800×800 hinzu “ in die Konfigurationsdatei. Dies steht am Ende der Zeile, die mit „ExecStart“ beginnt.
# vi /etc/systemd/system/vncserver_root@:2.service # vi /etc/systemd/system/vncserver_oracle@:3.service
4. Nachdem Sie die Änderungen in Schritt A und B vorgenommen haben, sollte die Zeile, die wir unter der Konfigurationsdatei geändert haben, etwa so aussehen:
Für die Datei „vncserver_root@:2.service ”
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=root # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i -geometry 800x800" PIDFile=/home/root/.vnc/%H%i.pid ExecStop=-/usr/bin/vncserver -kill %i [Install] WantedBy=multi-user.target
Für die Datei „vncserver_oracle@:3.service ”
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking User=oracle # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=-/usr/bin/vncserver -kill %i ExecStart=/sbin/runuser -l oracle -c "/usr/bin/vncserver %i -geometry 800x800" PIDFile=/home/oracle/.vnc/%H%i.pid ExecStop=-/usr/bin/vncserver -kill %i [Install] WantedBy=multi-user.target
Der in ExecStart angegebene Befehl entry wird aufgerufen, wenn wir den Server mit systemctl start starten; es verwendet runuser um TigerVNC unter dem Konto des Benutzers auszuführen. Das -l Das Argument stellt den Benutzernamen und -c bereit gibt den Befehl und seine Argumente an, die runuser ausführen wird. Die PID-Datei Eintrag gibt das Verzeichnis an, in dem der laufende Prozess seine Prozess-ID verfolgt.
Hinweis :Beginnend mit RHEL7.4 wurden die unterstützten Serveroptionen, die beim Aufruf an vncserver übergeben werden, in eine neue Datei mit dem Namen „config“ im Verzeichnis ~/.vnc/ verschoben. Es besteht also keine Notwendigkeit, diese Option in der ExecStart-Zeile hinzuzufügen.Firewalld konfigurieren
1. Datenverkehr für den entsprechenden Port des Displays sollte von der Firewall zugelassen werden. Display 0 verwendet Port 5900, Display 1 verwendet Port 5901, Display 2 verwendet Port 5902 und so weiter. Wenn Sie FirewallD verwenden, öffnet der vordefinierte vnc-server-Dienst die Ports 5900-5903:
# firewall-cmd --zone=public --permanent --add-service=vnc-server
Wenn Sie zusätzliche Ports benötigen oder nicht den gesamten Bereich öffnen müssen, können Sie mit –add-port:
nur das öffnen, was Sie benötigen# firewall-cmd --zone=public --permanent --add-port=5901/tcp
2. Laden Sie die Firewall neu, damit die Firewall-Regeln wirksam werden.
# firewall-cmd --reload
3. Konfiguration neu laden:
# systemctl daemon-reload
Starten Sie die Dienste und legen Sie das Passwort fest
1. Wir werden nun den vncserver-Dienst für jeden Benutzer auf dem ausgewählten Port aktivieren, dies wird auch den Autostart beim Systemstart mit den folgenden Befehlen aktivieren:
# systemctl enable vncserver_root@:2.service Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver_root@:2.service to /etc/systemd/system/vncserver_root@:2.service.
# systemctl enable vncserver_oracle@:3.service Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver_oracle@:3.service to /etc/systemd/system/vncserver_oracle@:3.service.
2. Laden Sie die Konfiguration von systemd neu, um sie auf die neuen Unit-Dateien aufmerksam zu machen:
# systemctl daemon-reload
3. Konfigurieren Sie ein Passwort für jeden Benutzer, der mit vncserver verwendet werden soll.
# vncpasswd root Password: Verify: Would you like to enter a view-only password (y/n)? n
# vncpasswd oracle Password: Verify: Would you like to enter a view-only password (y/n)? n
4. Sie müssen „vncserver ausführen “ in der Befehlszeile, während Sie als Benutzer angemeldet sind. Dadurch werden Sie automatisch aufgefordert, ein neues Passwort für den Benutzer zu erstellen.
# vncserver You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n xauth: file /root/.Xauthority does not exist New 'geeklab:1 (root)' desktop is geeklab:1 Creating default startup script /root/.vnc/xstartup Creating default config /root/.vnc/config Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/geeklab:1.log
Zugriff auf VNC-Server mit VNC-Viewer
Sie können eine beliebige VNC-Viewer-Software auf Ihrem Clientcomputer installieren, um auf den VNC-Server zuzugreifen. Ich verwende die realVNC-Software auf meinem MAC, um auf den VNC-Server zuzugreifen. Je nach verwendetem Betriebssystem können Sie jede der unten aufgeführten VNC-Viewer-Software verwenden.
1. TigerVNC :http://tigervnc.org
2. TightVNC :https://www.tightvnc.com/download.php
3. RealVNC :https://www.realvnc.com/en/connect/download/viewer
Verwenden Sie die VNC-Anzeige :1 für die Verbindung zum VNV-Server.
Da bist du ja!!! Sie sind jetzt mit dem VNC-Server verbunden.
So konfigurieren Sie den VNC-Server unter CentOS/RHEL 6