VNC Server unter Linux
TigerVNC erlaubt Zugriff auf die Linux GUI incl. Gnome und XFCE.
Im Unterschied zu Windows nutzt VNC einen separaten Nutzer und einen separaten Desktop.
- Default: VNC-Zugriff nur auf Localhost
- Remote Zugriff über verschlüsselten SSL-Tunnel
SSH-Tunnel:
- ssh -L 5901:127.0.0.1:5901 -N -f -l [user] -t [server_ip]
VNC zu Localhost:
- VNC Verbindung über den Tunnel auf localhost:1 - alternativ: VNC auf IP 0.0.0.0 einrichten ($localhost = "no";)
- Port muß von außen im Portscan sichtbar sein
Installation:
- Debian 12 Installation
- User ohne root anlegen
- SSH-Server aktivieren (immer gut) - Cinnamon GUI installieren (Geschmacksache)
su
sudo apt install task-cinnamon-desktop - sudo apt-get install dbus-x11 tigervnc-standalone-server tigervnc-xorg-extension tigervnc-viewer - VNC installieren
- separaten VNC-User einrichten (User kann sich wegen Wechsel der Shell nicht lokal anmelden)
- sudo adduser vncuser - sudo nano /etc/tigervnc/vncserver.users - VNC-User und Display einrichten (VNC nutzt per Default Display 1)
:1=vncusername - su vncuser (in VNC-User Kontext wechseln)
- vncserver - Server anstarten, VNC-Passwort festlegen
- nano ~/.vnc/xstartup - Startup des VNC-Users anpassen (VNV-GUI ist unabhängig von der Konsole!)
-- XFC GUI:
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
-- Cinnamon GUI: (dieser Nutzte kann sich dann nicht an der Konsole anmelden!)
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/usr/bin/cinnamon-session - Datei ausführbar machen
sudo chmod u+x ~/.vnc/xstartup
sudo chmod 777 ~/.vnc/xstartup - sudo nano /etc/tigervnc/vncserver-config-defaults - V
- $depth=24; - Farbtiefe
- $localhost = "no"; falls VNC-zugriff ohne SSH-Tunnel gewünscht - Dienst auf Display 1 installieren:
sudo systemctl start tigervncserver@:1.service
sudo systemctl enable tigervncserver@:1.service - Portscan: Port 5901 muß offen sein
- VNC Zugang testen
Befehle:
- sudo apt show tigervnc-standalone-server - läuft der Server?
- sudo apt install tigervnc-standalone-server -y - installiere VNC-Server
- vncpasswd - setze VNC-Passwort (min. 6 Zeichen)
- tigervncserver -localhost no -geometry 1920x1080 - startet VNC-Server manuell
- tigervncserver -xstartup /usr/bin/xterm - startet VNC-Server manuell
- vncserver -list - Zeige laufende Instanzen und Port(s)
- vncserver -kill :1 - killt die Instanz auf Desktop 1
- echo $DISPLAY - zeigt das aktuelle Display
Quellen: