VNC im xinetd unter SuSE starten

Aus Linupedia.org
Wechseln zu: Navigation, Suche

Grundkonfiguration der Datei /etc/xinet.d/vnc

Mit folgender Konfiguration erhält man per VNC Zugang zum grafischen Loginmanager und kann sich per VNC-Client oder Webbrowser (dieser benötigt dann jedoch Java) als User am System anmelden, im Gegensatz zur sonst üblichen Arbeitsflächenfreigabe durch VNC:

/etc/xinet.d/vnc :

# default: off
# description: This serves out a VNC connection which starts at a KDM login \
#       prompt. This VNC connection has a resolution of 1024x768, 16bit depth.
service vnc1
{
       disable         = no
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = nobody
       server          = /usr/X11R6/bin/Xvnc
       server_args     = :42 -inetd -once -query localhost -geometry 1024x768 -depth 16
       type            = UNLISTED
       port            = 5901
}
# default: off
# description: This serves out a VNC connection which starts at a KDM login \
#       prompt. This VNC connection has a resolution of 1280x1024, 16bit depth.
service vnc2
{
       type            = UNLISTED
       port            = 5902
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = nobody
       server          = /usr/X11R6/bin/Xvnc
       server_args     = :42 -inetd -once -query localhost -geometry 1280x1024 -depth 16
       disable         = no
}
# default: off
# description: This serves out a VNC connection which starts at a KDM login \
#       prompt. This VNC connection has a resolution of 1600x1200, 16bit depth.
service vnc3
{
       type            = UNLISTED
       port            = 5903
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = nobody
       server          = /usr/X11R6/bin/Xvnc
       server_args     = :42 -inetd -once -query localhost -geometry 1600x1200 -depth 16
       disable         = no
}
# default: off
# description: This serves out the vncviewer Java applet for the VNC \
#       server running on port 5901, (vnc port 1).
service vnchttpd1
{
       disable         = no
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = nobody
       server          = /usr/X11R6/bin/vnc_inetd_httpd
       server_args     = 1024 768 5901
       type            = UNLISTED
       port            = 5801
}
# default: off
# description: This serves out the vncviewer Java applet for the VNC \
#       server running on port 5902, (vnc port 2).
service vnchttpd2
{
       type            = UNLISTED
       port            = 5802
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = nobody
       server          = /usr/X11R6/bin/vnc_inetd_httpd
       server_args     = 1280 1024 5902
       disable         = no
}
# default: off
# description: This serves out the vncviewer Java applet for the VNC \
#       server running on port 5902, (vnc port 3).
service vnchttpd3
{
       type            = UNLISTED
       port            = 5803
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = nobody
       server          = /usr/X11R6/bin/vnc_inetd_httpd
       server_args     = 1600 1200 5903
       disable         = no
}

VORSICHT! VNC sendet die Daten (und damit auch Passwörter) normalerweise unverschlüsselt über das Netzwerk, daher sollten die Ports für VNC per Portsperre vom Internet oder sonstigen unsicheren Netzwerken (offenes WLAN z.B.) abgekoppelt werden.

--TomcatMJ


Schwarzer Bildschirm:
Mögliche Fehlerquellen können außerhalb des VNC-Server liegen

Die Ursachen, weshalb die Verbindung augenscheinlich nicht zu stande kommt und der VNC-Bildschirm dunkel bleibt, können vielfältig sein.
Wie bei allen Netzwerkproblemen sollte geprüft werden ob

  • die Firewall / Firewalls mit entsprechenden Ports geöffnet sind;
  • ob die entsprechende Portweiterleitung im Router (exemplarisch genannt, da häufig anzutreffen: AVM Fritz!Box oder Telekom Speedport) mit den richtigen Protokollen eingetragen wurden. Doch Vorsicht! Spätestens sobald eine Verbindung außerhalb des heimischen Netzes aufgebaut werden soll, muss über eine Verschlüsselung nachgedacht werden; zudem sollten sichere Passwörter verwendet werden.

Scheiden oben genannten Fehlerquellen aus, so muss die Fehlersuche weitergehen. Bei OpenSuse 11.2 (sowohl Update als auch Neuinstallation) ist festzustellen, dass der VNC-Bildschirm schwarz bleibt und weder eine Bash noch Login-Screen zu sehen ist. Als Fehlerquelle kann mit großer Wahrscheinlichkeit eine fehlende IP6-Eintragung in Betracht kommen. Konkret: In Datei /etc/hosts ist die IP6-Adresse des Rechners einzutragen. Soweit noch nicht geschehen, bitte die bash oder ein anderer Terminalemulator aufrufen und sich als root anmelden mit

sudo bash

und Passworteingabe des root.

Hierzu zunächst einsmal als root die IP6-Adresse im lokalen Netzwerk ermitteln:

ifconfig

ausgeworfen wird (abhängig von der Hardware):

br0    Link encap:Ethernet  Hardware Adresse 00:19:99:99:99:99
       inet Adresse:192.168.178.22  Bcast:192.168.178.255  Maske:255.255.255.0
       inet6 Adresse: fe80::219:66ff:fe5e:414/64 Gültigkeitsbereich:Verbindung
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       [...]

eth0   Link encap:Ethernet  Hardware Adresse 00:19:66:5E:04:14
       inet6 Adresse: fe80::219:66ff:fe5e:414/64 Gültigkeitsbereich:Verbindung
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       [...]

lo     Link encap:Lokale Schleife  
       inet Adresse:127.0.0.1  Maske:255.0.0.0
       inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine
       [...]

Wichtig ist hier die Angabe unter eth0 die inet6-Adresse. Die wird bei jedem verschieden sein, je nach dem, wie er/sie sein Netzwerk eingerichtet hat.

Nun ebenso unter root die Datei /etc/hosts mit dem Editor der Wahl ändern.

Meine Datei sah so aus:

#
# hosts         This file describes a number of hostname-to-address
#               mappings for the TCP/IP subsystem.  It is mostly
#               used at boot time, when no name servers are running.
#               On small systems, this file can be used instead of a
#               "named" name server.
# Syntax:
#
# IP-Address  Full-Qualified-Hostname  Short-Hostname
#
127.0.0.1       localhost
127.0.0.2       wzlinux.site wzlinux
# special IPv6 addresses
::1             localhost ipv6-localhost ipv6-loopback
fe00::0         ipv6-localnet
ff00::0         ipv6-mcastprefix
ff02::1         ipv6-allnodes
ff02::2         ipv6-allrouters
ff02::3         ipv6-allhosts

Hier fügt man einfach noch die IP6 ein: im Format <Adresse> <Hostname> <Alias> Im Endeffekt schauts dann so aus:

[...]
#
# IP-Address  Full-Qualified-Hostname  Short-Hostname
#
127.0.0.1       localhost
127.0.0.2       wzlinux.site wzlinux
# special IPv6 addresses
::1             localhost ipv6-localhost ipv6-loopback
fe80::219:66ff:fe5e:414 wzlinux.site wzlinux
fe00::0         ipv6-localnet
ff00::0         ipv6-mcastprefix
ff02::1         ipv6-allnodes
ff02::2         ipv6-allrouters
ff02::3         ipv6-allhosts

Das Netzwerk muss dann neu als root gestartet werden mit

rcnetwork restart.

Dann nochmal probieren den VNC anzuwerfen - hoffentlich verschindet nun der black-screen. Zunächst danke ich nkrings für seinen Post unter http://www.linux-club.de/viewtopic.php?f=9&t=107338#p666099 . Ich habe es hier etwas ausführlicher gehalten, um eiem Newbie, der über die Seite stolpert, die Arbeit etwas zu vereinfachen.

--MaggusMz