我正在尝试在 Ubuntu 10.10(我的服务器在 Amazon EC2)中启动 x11vnc,但出现了以下错误
$ sudo x11vnc -forever -usepw -httpdir /usr/share/vnc-java/ -httpport 5900 -auth /usr/sbin/gdm
25/11/2010 13:29:51 passing arg to libvncserver: -httpport
25/11/2010 13:29:51 passing arg to libvncserver: 5900
25/11/2010 13:29:51 -usepw: found /home/ubuntu/.vnc/passwd
25/11/2010 13:29:51 x11vnc version: 0.9.10 lastmod: 2010-04-28 pid: 3504
25/11/2010 13:29:51 XOpenDisplay(":0.0") failed.
25/11/2010 13:29:51 Trying again with XAUTHLOCALHOSTNAME=localhost ...
25/11/2010 13:29:51 ***************************************
25/11/2010 13:29:51 *** XOpenDisplay failed (:0.0)
*** x11vnc was unable to open the X DISPLAY: ":0.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 <disp>, -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 may 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.
See also '-auth guess' and '-findauth' discussed below.
** 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.
Starting with x11vnc 0.9.9 you can have it try to guess by using:
-auth guess
(see also the x11vnc -findauth option.)
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
我已经尝试了一些 -auth 选项,但错误仍然存在。我正在运行 gdm。
先感谢您
答案1
您没有要导出的 X 显示。在 /var/logs 中查找 X*.log。这应该会显示 x 无法启动的原因。
您是否已将 gmd 配置为侦听 TCP?如果没有,它不会为您生成服务器。我发现 vnc4server 最适合我。我使用不同的端口从 xinetd 启动它,以获得不同的结果,使用类似的配置。这使我能够登录到系统上的 gnome。
服务 Xvnc-3 { 禁用 = 否 端口 = 5903 socket_type = 流 log_type = syslog 守护进程 log_on_success = PID 主机退出持续时间 log_on_failure = 主机尝试 协议 = tcp 等待 = 不 用户 = 无人 服务器 = /usr/bin/Xvnc server_args = -inetd -geometry 1280x800 -depth 16 -query localhost -once -SecurityTypes none -extension XFIXES -desktop X-1280x800 }
在 /etc/gdm/custom.conf 中我做了一些更改,包括
[xdmcp] 每个主机显示数=10 启用=true HonorIndirect=false