Je n'arrive pas à lancer mon serveur VNC (x11vnc)

Salut à toutes et à tous!

Je viens de remplacer une Debian Lenny par une Sid, j’en ai également profité pour remplacer mon environnement de bureau Gnome par KDE 4.

Du coup je remets tout les services et autre en ordre, tout à l’air de fonctionner sauf le serveur VNC.

Je précise qu’il fonctionnait sous Gnome et j’utilisais le menu “Sessions” pour le lancer au démarrage (il s’agit d’un .sh) dont voici la seule ligne :

Le problème, c’est que lorsque j’essaye de le lancer en faisant sh vnc-server.sh cela me renvoie ça :

[code]20/10/2009 18:38:37 -usepw: found /root/.vnc/passwd
20/10/2009 18:38:37 x11vnc version: 0.9.8 lastmod: 2009-06-14
No protocol specified
20/10/2009 18:38:37 XOpenDisplay(":0") failed.
20/10/2009 18:38:37 Trying again with XAUTHLOCALHOSTNAME=localhost …
No protocol specified

20/10/2009 18:38:37 ***************************************
20/10/2009 18:38:37 *** XOpenDisplay failed (:0)

*** x11vnc was unable to open the X DISPLAY: “:0”, it cannot continue.
*** There may be “Xlib:” error messages above with details about the failure.

Some tips and guidelines:

** An X server (the one you wish to view) must be running before x11vnc is
started: x11vnc does not start the X server. (however, see the -create
option if that is what you really want).

** You must use -display , -OR- set and export your $DISPLAY
environment variable to refer to the display of the desired X server.

  • Usually the display is simply “:0” (in fact x11vnc uses this if you forget
    to specify it), but in some multi-user situations it could be “:1”, “:2”,
    or even “:137”. Ask your administrator or a guru if you are having
    difficulty determining what your X DISPLAY is.

** Next, you need to have sufficient permissions (Xauthority)
to connect to the X DISPLAY. Here are some Tips:

  • Often, you just need to run x11vnc as the user logged into the X session.
    So make sure to be that user when you type x11vnc.
  • Being root is usually not enough because the incorrect MIT-MAGIC-COOKIE
    file will be accessed. The cookie file contains the secret key that
    allows x11vnc to connect to the desired X DISPLAY.
  • You can explicitly indicate which MIT-MAGIC-COOKIE file should be used
    by the -auth option, e.g.:
    x11vnc -auth /home/someuser/.Xauthority -display :0
    x11vnc -auth /tmp/.gdmzndVlR -display :0
    you must have read permission for the auth file.

** If NO ONE is logged into an X session yet, but there is a greeter login
program like “gdm”, “kdm”, “xdm”, or “dtlogin” running, you will need
to find and use the raw display manager MIT-MAGIC-COOKIE file.
Some examples for various display managers:

 gdm:     -auth /var/gdm/:0.Xauth
          -auth /var/lib/gdm/:0.Xauth
 kdm:     -auth /var/lib/kdm/A:0-crWk72
          -auth /var/run/xauth/A:0-crWk72
 xdm:     -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
 dtlogin: -auth /var/dt/A:0-UgaaXa

Sometimes the command “ps wwwwaux | grep auth” can reveal the file location.

Only root will have read permission for the file, and so x11vnc must be run
as root (or copy it). The random characters in the filenames will of course
change and the directory the cookie file resides in is system dependent.

See also: http://www.karlrunge.com/x11vnc/faq.html[/code]

J’ai donc fais un petit ps wwwwaux | grep auth pour déterminer la session et trouvé :

Donc j’ai essayé de bidouiller la ligne en conséquence mais sans résultat.

Je précise que de cette manière cela fonctionnait directement et sans erreurs sous GNOME.

Avez-vous une idée de comment résoudre le problème ?

Merci d’avance !

[quote] Only root will have read permission for the file, and so x11vnc must be run
as root (or copy it).[/quote]

Ne serais tu pas en root par hasard ?

Salut,

Si, je suis en root lorsque j’essaye de le lancer, si je ne le suis pas j’ai le droit a :

Enter VNC password: stty: entrée standard: Ioctl() inappropré pour un périphérique ymer@freedom:~$ stty: entrée standard: Ioctl() inappropré pour un périphérique x11vnc -usepw: could not find a password to use.

Ca ne m’étonne pas trop étant donné que le mot de passe est dans le répertoire /root/.vnc/

En revanche les erreurs Ioctl(), je ne comprends pas…

Un serveur vnc est peut-être encore actif

netstat -tap

Tu repères vnc , son pid et tu le “kill”.

Tu relances le serveur vnc mais pas en root .
Dans /root tu renommes .vnc en ancien.vnc.
Pareil dans les $HOME des utilisateurs, éventuellement purger /tmp, arrêter gdm/kdm/xdm
pour la peine .

Nouveau serveur vnc = nouveau mot de passe.
Même si c’est le même, à renseigner à nouveau.

Par défaut en debian tu ne peux te connecter à X en root .
root et X c’est pas conseillable
root et X en réseau c’est doublement déconseillé.
La porte sera fermée par défaut pour le serveur et le client .

Tu peux toutefois la forcer , la preuve tu l’as auparavant forcée en lenny.

Reviens à un vnc en simple utilisateur ça vaudra mieux.

Alternative à vnc , le X en réseau
XDCMP marche impeccable pour peu que la porte soit ouverte.

Merci de ta réponse,

J’ai fais ce que tu m’as conseillé, et ça fonctionne niquel. Je ne sais pas où j’avais la tête pour lancer le serveur en root… C’te honte

En tout cas merci beaucoup pour ton aide !
:smt002

Bonne soirée