Skip to main content

Desktop Environment + VNC für Ubuntu Server installieren

Um für Fernwartung einen Webbrowser über VNC auf einem Ubuntu Server zu bedienen, müssen ein Desktop-Environment (DE) und VPN-Server installiert werden. Der Vorgang wird auf Ubuntu Server 24.04.2 LTS durchgeführt.

Ich benötige neben einer SSH Verbindung zu einem Linuxserver via VPN einen Webbrowser im Zielnetzwerk, da das lokales Subnetz identisch mit dem Ziel-Subnetz ist (192.168.1.0/24) und ich nur mit einer VPN-Verbindung zb. nicht die 192.168.1.1 aufrufen kann, weil ich dann auf meinem Router lande.

# zu root wechseln
sudo -i

# XFCE als DE installieren (hab vorher apt install ubuntu-desktop getestet aber hatte Display-Probleme beim Headless-Betrieb des Servers)
apt update
apt install xfce4 xfce4-goodies

# VNC-Server installieren
apt install tightvncserver -y

# VNC-Server starten, um Passwort festzulegen, danach schließen
vncserver
# optional vncserver :1 um direkt einen Port mit anzugeben. :1 bedeutet dass der VNC Server auf Port 5901 läuft, :2 5902 usw
# standard ist aber :1
vncserver -kill :1

# config betrachten und evtl editieren (siehe nächsten Code-Block)
nano ~/.vnc/xstartup
#oder 
#nano /root/.vnc/xstartup

# ausführbar machen falls noch nicht automatisch von tightvnc passiert
chmod +x ~/.vnc/xstartup

#dbus installieren, weil sonst Display-Probleme (headless-Betrieb in meinem Fall)
apt install dbus-x11

# Display festlegen
xhost +local:

# Firefox installieren
#apt install firefox
apt install flatpak 
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo 
flatpak install flathub org.mozilla.firefox 

# VNC-Server starten
vncserver :1

~/.vnc/xstartup für XFCE

#!/bin/sh

xrdb "$HOME/.Xresources"
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
#export XKL_XMODMAP_DISABLE=1
#/etc/X11/Xsession
startxfce4 &

Mit VNC-Server verbinden:

image.png

pw eingeben:

image.png

verbunden:

image.png

Extra: Suspend verhindern

Die Display-Manager wie zb lightdm oder gdm3, zuständig fürs einloggen, setzen standardmäßig den Rechner in Suspend nach 20 oder 30min. Um das zu verhindern kann folgendes gemacht werden:

Targets in systemd maskieren

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

logind.conf anpassen

nano /etc/systemd/logind.conf
HandleSuspendKey=ignore
HandleSuspendKeyLongPress=ignore
HandleHibernateKey=ignore
HandleHibernateKeyLongPress=ignore
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore

IdleAction=ignore
sudo systemctl restart systemd-logind

image.png