Nächste: VPN-Dienste, Vorige: DNS-Dienste, Nach oben: Dienste [Inhalt][Index]
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 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.
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?
desxvnc-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.
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]