Nächste: , Vorige: , Nach oben: Dienste   [Inhalt][Index]


11.10.23 VNC-Dienste

Im Modul (gnu services vnc) werden Dienste angeboten, die mit Virtual Network Computing (VNC) zu tun haben, einer Technik, um grafische Xorg-Anwendungen, die auf einer entfernten Maschine laufen, lokal zu benutzen. Zusammen mit einer grafischen Anzeigenverwaltung, die das X Display Manager Control Protocol unterstützt, wie etwa GDM (siehe gdm) oder LightDM (siehe lightdm), kann man somit eine ganze entfernte Desktop-Arbeitsumgebung auf den eigenen Rechner bringen, um eine Mehrbenutzerumgebung herzustellen.

Xvnc

Xvnc ist ein VNC-Server, der einen eigenen X-Fensterserver startet. So lässt er sich auf Servern ohne Bildschirm („headless server“) betreiben. Die Xvnc-Implementierungen, die durch den tigervnc-server und turbovnc bereitgestellt werden, sind auf Schnelligkeit und Effizienz ausgerichtet.

Variable: xvnc-service-type

Ein Dienst des Diensttyps xvnc-service-type kann eingerichtet werden mit einem xvnc-configuration-Verbundsobjekt, wie es nun beschrieben wird. Über die folgende Konfiguration würde eine zweite, virtuelle Anzeige auf einer entfernten Maschine verfügbar gemacht:

(service xvnc-service-type
         (xvnc-configuration (display-number 10)))

Zu Demonstrationszwecken könnte man dann den Befehl xclock auf der entfernten Maschine auf Anzeige Nummer 10 starten und ihn über den Befehl vncviewer lokal anzeigen:

# xclock auf der entfernten Maschine starten.
ssh -L5910:localhost:5910 ihr-rechner -- guix shell xclock \
    -- env DISPLAY=:10 xclock
# Über VNC darauf zugreifen.
guix shell tigervnc-client -- vncviewer localhost:5910

Die folgende Konfiguration setzt XDMCP und Inetd gemeinsam ein, damit mehrere Benutzer gleichzeitig das entfernte System nutzen können und sich grafisch über die GDM-Anzeigenverwaltung anmelden können:

(operating-system
  []
  (services (cons*
             []
             (service xvnc-service-type (xvnc-configuration
                                         (display-number 5)
                                         (localhost? #f)
                                         (xdmcp? #t)
                                         (inetd? #t)))
             (modify-services %desktop-services
               (gdm-service-type config => (gdm-configuration
                                            (inherit config)
                                            (auto-suspend? #f)
                                            (xdmcp? #t)))))))

Eine entfernte Nutzerin könnte sich damit verbinden, indem sie den Befehl vncviewer oder einen kompatiblen VNC-Client einsetzt und eine Sitzung auf einer Arbeitsumgebung ihrer Wahl beginnt:

vncviewer name-des-entfernten-rechners:5905

Warnung: Sofern sich Ihre Maschine nicht in einer kontrollierten Umgebung befindet, ist es aus Sicherheitsgründen ratsam, in der Konfiguration das Feld localhost? des xvnc-configuration-Verbundsobjekts beim vorgegebenen Wert #t zu belassen und den entfernten Rechner nur über sichere Mittel wie eine SSH-Portweiterleitung zugänglich zu machen. Der XDMCP-Port, UDP 177, sollte nach außen hin über eine Firewall gesperrt sein, denn VNC ist kein sicheres Protokoll und Anmeldedaten könnten im Klartext verschickt werden.

Datentyp: xvnc-configuration

Verfügbare xvnc-configuration-Felder sind:

xvnc (Vorgabe: tigervnc-server) (Typ: dateiartig)

Das Paket, das die Binärdatei Xvnc zur Verfügung stellt.

display-number (Vorgabe: 0) (Typ: Zahl)

Die Nummer der Anzeige, um die sich Xvnc kümmert. Sie sollten eine Zahl wählen, die der Xorg-Server nicht bereits in Beschlag nimmt.

geometry (Vorgabe: "1024x768") (Typ: Zeichenkette)

Die Ausmaße der Anzeige, die angelegt wird.

depth (Vorgabe: 24) (Typ: Farbtiefe)

Die Pixeltiefe in Bits der anzulegenden Anzeige. Akzeptiert werden die Werte 16, 24 oder 32.

port (Typ: Vielleicht-Port)

Auf welchem Port auf Verbindungen durch VNC-Betrachter gelauscht wird. Wenn keiner angegeben wird, ist 5900 plus der Anzeigennummer vorgegeben.

ipv4? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Für eingehende und ausgehende Verbindungen IPv4 benutzen.

ipv6? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Für eingehende und ausgehende Verbindungen IPv6 benutzen.

password-file (Typ: Vielleicht-Zeichenkette)

Welche Passwortdatei benutzt werden soll, wenn gewünscht. Schauen Sie sich vncpasswd(1) an, um zu erfahren, wie Sie so eine Datei erzeugen lassen.

xdmcp? (Vorgabe: #f) (Typ: Boolescher-Ausdruck)

Stellt an den XDMCP-Server eine Sitzungsanfrage. Dadurch können sich Benutzer an der Oberfläche der Anmeldeverwaltung für eine Desktop-Sitzung anmelden. In einem Szenario mit mehreren Nutzern wird man außerdem die Option inetd? aktivieren wollen, damit jede Verbindung zum VNC-Server getrennt behandelt wird, statt sie zusammenzulegen.

inetd? (Vorgabe: #f) (Typ: Boolescher-Ausdruck)

Einen Dienst im Inetd-Stil benutzen. Dadurch wird der Xvnc-Server bei Bedarf gestartet.

frame-rate (Vorgabe: 60) (Typ: Zahl)

Wie viele Aktualisierungen höchstens pro Sekunde an jeden Client geschickt werden.

security-types (Vorgabe: '("None")) (Typ: Sicherheitstypen)

Welche Sicherheitsschemata für eingehende Verbindungen zugelassen sind. Vorgegeben ist "None" (keine), was sicher ist, weil Xvnc so eingestellt ist, dass sich der Benutzer mit der Anzeigenverwaltung anmeldet und nur lokale Verbindungen stattfinden. Als Wert akzeptiert wird eine Teilmenge hiervon: ("None" "VncAuth" "Plain" "TLSNone" "TLSVnc" "TLSPlain" "X509None" "X509Vnc")

localhost? (Vorgabe: #t) (Typ: Boolescher-Ausdruck)

Nur Verbindungen von derselben Maschine zulassen. Nach Vorgabe ist dies auf wahr gesetzt (#true), weil das sicherer ist, denn man sollte ohnehin nur Ports für sichere Verbindungsmethoden wie SSH freigeben.

log-level (Vorgabe: 30) (Typ: Protokollstufe)

Die Protokollstufe als Zahl zwischen 0 und 100. Dabei bedeutet 100 die ausführlichste Ausgabe. Protokollnachrichten werden an Syslog ausgegeben.

extra-options (Vorgabe: '()) (Typ: Zeichenketten)

Hiermit können zusätzliche Xvnc-Optionen angegeben werden, die über das <xvnc-configuration>-Verbundsobjekt anderweitig unzugänglich sind.


Nächste: VPN-Dienste, Vorige: DNS-Dienste, Nach oben: Dienste   [Inhalt][Index]