• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] VNC unter XINETD bei OpenSuSE 10.2 läuft nicht

grb

Newbie
Hallo,

nach einer Vanilla-Installation von OpenSuSE 10.2 auf meinem PC funktioniert VNC über XINETD nicht mehr. Beim Aufruf (sowohl über Krdc als auch über einen Browser) erscheint eine graue Fläche und - nach einiger Zeit - eine Timeoutmeldung (Die Verbindung zum Fremdrechner wurde unterbrochen).

Nach Aufruf von "vncserver" funktionierts.

Der Vollständigkeit halber: Die Firewall ist deaktiviert, und ich habe sowohl vmcserver als auch kdrc auf dem gleichen Rechner aufgerufen.

Wer weiss, was da los ist? Gibt es ein Fix?

viele Grüße

Gunnar R. Bartels
 

pft

Advanced Hacker
Klarer Fall, wenn vncserver nicht läuft dann geht halt auch nix.

Offensichltich wird er bei dir nicht automatisch von xinietd gestartet.
Hast Du mal die xinetd-konfig gecheckt?
 
OP
G

grb

Newbie
Vielen Dank für die schnelle Antwort, und wie würde ein Engländer jetzt sagen: Well...

Klar, wenn kein vncserver läuft, geht auch nix. Aber:

Der xinetd startet den vncserver erst beim Aufruf. Und das tut er offensichtlich auch, denn wenn ich (über den Browser) VNC starte, sehe ich

Code:
arzi:/home/gunnar # ps -AF
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
... 

root      6957     1  0   665   908   0 08:04 ?        00:00:00 /usr/sbin/xinetd
nobody    6966  6957  0  3074  8100   0 08:04 ?        00:00:00 Xvnc -SecurityTypes None -inetd -once -query localhost -geometry 1024x768 -depth 16

...
arzi:/home/gunnar

Der Xvnc-Aufruf entspricht dem, der in der /etc/xinet.d/vnc eingetragen ist:

Code:
# 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
{
	socket_type     = stream
	protocol        = tcp
	wait            = no
	user            = nobody
	server          = /usr/bin/Xvnc
	server_args     = -SecurityTypes None -inetd -once -query localhost -geometry 1024x768 -depth 16
	type		= UNLISTED
	port		= 5901
}

...

# description: This serves out the vncviewer Java applet for the VNC \
#	server running on port 5901, (vnc port 1).
service vnchttpd1
{
	socket_type     = stream
	protocol        = tcp
	wait            = no
	user            = nobody
	server          = /usr/bin/vnc_inetd_httpd
	server_args     = 1024 768 5901
	type		= UNLISTED
	port		= 5801
}

Nur startet offenbar der hier im xinetd vorhandene Code den kdm nicht wie versprochen. Woran kann das liegen?

Außerdem: Obwohl in der vnc "-SecurityTypes None" gesetzt ist, werde ich nach einem Passwort gefragt. Läßliche Sünde, aber nervig.

Wo ist die Konfirgurationsdatei des Xvnc für den User "nobody" versteckt?

Fragen über Fragen. Über Antworten freue ich mich riesig!!


Gunnar.
 

pft

Advanced Hacker
Hier bin ich eigentlich mit meinem Latein am Ende.

Aber googlen kann ich noch - und finde diesen brauchbare Link http://www.oreilly.de/catalog/morelnxsvrhksger/chapter/hack13.pdf der darauf hindeutet, dass Du vielleicht dem kdm sagen mußt, dass er nicht nur für lokale Anmeldungen zuständig sit sprich XDMCP aktivieren (seite 5).
Ich kann mich auch vage erinnern irgendwo in Yast eine Einstellung gibt wo man remote-zugriffe zulassen muss. Ich vermute jetzt mal ganz mutig dass das genau diese kdm konfiguration veranlasst.
Aber sicherlich ist die kdm-cnfig gut dokumentiert und du machst es a la "ibm" - immer besser manuell.

Ciao
 
OP
G

grb

Newbie
Tja, das mit dem Latein ist so eine Sache! :=)

Erst 'mal vielen Dank für den Link, das ist ein schönes Kompendium für die VNC-Konfiguration. Hab den Link gleich gebookmarkt.

Also, der XDMCP ist aktiv und horcht ganz brav auf Port 177:

Code:
arzi:/etc/xinetd.d # netstat -anp | grep 177
udp        0      0 :::177                  :::*                                11338/kdm

...

arzi:/etc/xinetd.d #

Daran liegt's also auch nicht. Aber gute Idee!!

Im übrigen: Unter OpenSuSE 10.1 hat's gefunzt. Ein Unterschied ist, dass unter 10.1 in der /etc/xinet.d/vnc Portangaben bei den Xvnc-Parametern stehen, bei 10.2 nicht. Habe auch damit experimentiert, das wars aber offenbar auch nicht.

Also folge ich bzgl. Latein meinem Vorredner. War da sowieso nie gut...

Wer hat noch Ideen? Nur zu!

Gunnar.
 

pft

Advanced Hacker
na ob das mit dem port 177 schon die ganze miete ist?
Was er wohl tut mit dem was er hört?

Was steht denn in
Code:
/opt/kde3/share/config/kdm/kdmrc  Abschnitt [xdmcp]
und was in
Code:
/etc/sysconfig/displaymanager
und hast Du dann
Code:
/sbin/SuSEconfig
ausgeführt, und dann auch noch neu gestartet (mind. init 3 - dann wieder init 5, oder reboot)

Sorry, wenn ich so penibel bin - Linux-Lebenserfahrung :)
 
OP
G

grb

Newbie
Hallihallohallöchen......

vielen Dank für die schnelle Antwort. Habe leider zwischendurch noch andere Dinge zu tun, deshalb geht's erst heute weiter.....

> na ob das mit dem port 177 schon die ganze miete ist?

Na ja, immerhin sitzt da der richtige, der sich anhört, was da passiert, nämlich der kdm. Ob er überhaupt und ggf. was er bekommt ist da sicherlich die interessantere Frage.

> Was er wohl tut mit dem was er hört?

Offenbar nicht das, was wir von ihm erwarten :=)))))


In der "/opt/kde3/share/config/kdm/kdmrc Abschnitt [xdmcp]" ist alles auskommentiert, bis auf die Einträge

Code:
[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is false
Enable=true
# The UDP port on which KDM should listen for XDMCP requests. Do not change.
# Default is 177
Port=177

Eine interessante Beobachtung ist, dass dieses "Enable=true" zu einer Fehlermeldung in /var/log/messages führt:

Code:
Jan 17 07:37:02 arzi kdm_config[5994]: Multiple occurrences of key 'Enable' in section [Xdmcp] of /opt/kde3/share/config/kdm/kdmrc

Das liegt wohl daran, das der Yast bei einem meiner vorigen Versuche die gleiche Sequenz in die /var/adm/kdm/kdmrc.sysconfig geschrieben hat. Deshalb habe ich sie wieder aus der kdmrc entfernt.

In "/etc/sysconfig/displaymanager" ist

Code:
## Path:	Desktop/Display manager
## Description:	settings to generate a proper displaymanager config
## Type:	string(kdm,xdm,gdm,wdm,console)
## Default:	""
## Config:      xdm,kdm,gdm
#
# Here you can set the default Display manager (kdm/xdm/gdm/wdm/console).
# all changes in this file require a restart of the displaymanager
#
DISPLAYMANAGER="kdm"

## Type:	yesno
## Default:	no
#
# Allow remote access to your display manager (xdm/kdm/gdm). Please note 
# that a modified kdm or xdm configuration, e.g. by KDE control center
# will not be changed. For gdm, values will be updated after change.
#
DISPLAYMANAGER_REMOTE_ACCESS="yes"

und SuSEconfig habe ich auch aufgerufen.

Vielleich an dieser Stelle ein kurzes Resumee:

1. Was habe ich gemacht:

- Als erste habe ich die Aktivierung des Remote-Desktop-Zugriffs via Yast durchgeführt, ohne Erfolg.
- Dann habe ich es per Hand versucht, nach diversen Anleitungen aus dem Netz, die alle sagen:
- Aktiviere VNC in der /etc/xinet.d/vnc
- Setze "Enable=true" in der /opt/kde3/share/config/kdm/kdmrc Abschnitt [xdmcp]
- Setze "DISPLAYMANAGER_REMOTE_ACCESS="yes"" in der /etc/sysconfig/displaymanager
- Führe "/etc/init.d/xdm restart" aus
- Führe /etc/init.d/xinetd restart" aus

2. Was wissen wir bereits:

- Der Xvnc wird - offensichtlich erfolgreich - gestartet, im Log (weder in der /var/log/messages noch in der /var/log/xinetd.log) sind keine Fehlermeldungen, und Xvnc ist unter "ps -Al" zu sehen
- Beim Versuch, den Xvnc zu starten (beispielsweise über Kdrc) erhalte ich die bekannte, graue Fläche. Nach dem Timeout findet sich in der /var/log/messages:

Code:
Jan 17 08:13:04 arzi kdm: arzi.1.168.192.in-addr.arpa:1[6833]: Cannot connect to arzi.1.168.192.in-addr.arpa:1, giving up
Jan 17 08:13:04 arzi kdm[5993]: Display arzi.1.168.192.in-addr.arpa:1 cannot be opened

Diese Meldung ist in zweierlei Hinsicht interessant:

- Der kdm wird offenbar gestartet, kann aber sein Display nicht öffnen.
- Offenbar kann der DNS-Server mit "arzi.1.168.192.in-addr.arpa" nichts anfangen

Damit verlagert sich das Thema in einen anderen Bereich: Mein Nameserver funzt offenbar nicht wie ich das möchte. Ähem.....

Es gibt einen Workaround: Eintragen der (durch DHCP) vergebenen Adresse meines Rechners in die /etc/hosts. Und siehe da: Es funktioniert. Zumindest bis zum nächsten Rechnerstart.

Jetzt wäre ein Ansatz, den kdm auf die 127.0.0.1 zu leiten. Wie geht so etwas?

Jedenfalls ein Etappensieg. Vielen Dank soweit!!!!
 

pft

Advanced Hacker
@jengelh:

ja da ist wohl was dran. Definitv hat sich das Problem "verschoben". vnc ist nicht das Problem, aber ob es XDMCP ist oder DNS oder sonst was ist noch nicht klar.

@grb
Wenn es mit /etc/host geht ist DNS ein guter Kandidat.
Aber was die Umleitung auf 127.0.0.1 soll ist mir unklar.

Auch wunder ich mich über so was wie "arzi.1.168.192.in-addr.arpa", grundsätzlich hab ich schon mal solche reverse-Auflösungen gesehen, aber
ich wundere ich mich über die Mischung aus Rechnername und 3 bytes der IP Adresse. Da scheint schwer was daneben zu gehen. Muß aber nicht DNS sein, denn wenn das der input ist fällt wohl auch der beste DNS auf ie Nase, oder täusche ich mich.
 

apex76

Newbie
Hi
Ich hatte bei mir auch das Problem (nur leeres X display).
Hab allerding den Gnome Desktop.

[Xdmcp]
....
Enable=true

Hat die Lösung bei mir gebracht. Habe lange danach gesucht und diverse Foren durchforstet dabei bin ich des öfteren auf den Tipp gestoßen mal den IPv6 support abzuschalten.
IPv6 hab ich schon wärend der Installation abgeschaltet evenutell solltest du das mal prüfen.
 
OP
G

grb

Newbie
Hallo, Gemeinde,

vielen Dank für die rege Beteiligung.

@jengelh:

Du hast recht. Ich habe nicht korrekt zwischen VNC und XDMCP unterschieden. Ein Glück, das sich diese Unterscheidung für die Lösung des Probelms als irrelevant herausstellt.

@pft:

Ja, der Workaround über die /etc/hosts lässt ja nur DNS als zentrale Quelle des Ungemachs zu. Und offenbar ist es der kdm, der die Anfrage an den DNS stellt (siehe Log).

Zur Adresse war meine Überlegung folgende: Der Xvnc wird auf der Maschine aufgerufen, die den Verbindungsrequest entgegen nimmt. Also wird auch dort der kdm gestartet. Wenn dieser nun gleich auf localhost bzw. 127.0.0.1 verbinden würde, könnnte der Request durch die lokale /etc/hosts beantwortet werden, und es entfiele der DNS-Lookup. Und der Xvnc bindet die Oberfläche auch an 127.0.0.1.

"arzi.1.168.192.in-addr.arpa" kenne ich aus dem Umfeld der DNS-Serverkonfiguration; das ist die Form, in der beispielsweise dig bei reverse-lookups das Ergebnis leifert:

Code:
gunnar@arzi:~> dig -x 192.168.1.30

; <<>> DiG 9.3.2 <<>> -x 192.168.1.30
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30540
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;30.1.168.192.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
30.1.168.192.in-addr.arpa. 604800 IN    PTR     arzi.1.168.192.in-addr.arpa.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 604800  IN      NS      bartels.

;; Query time: 1 msec
;; SERVER: 192.168.1.25#53(192.168.1.25)
;; WHEN: Thu Jan 18 09:59:09 2007
;; MSG SIZE  rcvd: 83

@apex76:

Das mag auf Gnome und gdm zutreffen. Die SuSE schreibt für den kdm die entsprechenden Statements offenbar bereits in die /var/adm/kdm/kdmrc.sysconfig (siehe meinen vorigen Beitrag).

@:

Offenbar liegt die Crux in der Namensauflösung, genauer: in dem Target, das der kdm an das System abliefert. Der DNS läuft auf meinem System sauber, so kann ich beispielsweise die einzelnen Rechnernamen von allen Rechnern aus sauber pingen.

Die Lösung liegt darin, den kdm anzuweisen, gleich die numerische IP-Adresse zu verwenden. Hierzu gibt es in der "/opt/kde3/share/config/kdm/kdmrc" im Abschnitt [xdmcp] den Schlüssel "SourceAddress". Der muss auf "true" gesetzt werden.

Code:
...
# Use the numeric IP address of the incoming connection on multihomed hosts
# instead of the host name.
# Default is false
SourceAddress=true
....

Nach einem rcxdm funzt es jetzt. Voila!

Warum das im Übergang von opensuse 10.1 auf 10.2 so ist, weiß ich nicht. Vielleicht findet sich hier ja noch jemand, der das erklären kann....

Bleibt nur noch die Frage: Wie kann ich in die Betreff-Zeile dieses Threads das Wort [gelöst] einfügen????


Allen Beteiligten vielen Dank für ihre Ideen. Ihr habt wirklich sehr weitergeholfen!!

Gruß, Gunnar.
 

pft

Advanced Hacker
na prima - auch wenn ich es nicht hundert Prozent verstanden habe :?

Bleibt nur noch die Frage: Wie kann ich in die Betreff-Zeile dieses Threads das Wort [gelöst] einfügen????

z.b. durch anklicken des thread und drücken ds button "edit" in deinem ersten (?) Beitrag, und dann im Titel vorne [gelöst] einfügen.
 
OP
G

grb

Newbie
Vielen Dank für den Hinweis - nur kann ich so leider nicht viel damit anfangen. Haste mehr Futter?

Gruß

Gunnar.
 
Oben