我在 RHEL 6.8 机器上运行了一个 vncserver。当我通过 VNC 查看器访问此会话时,我注意到,如果我修改 DISPLAY 变量以包含服务器的主机名,我将无法运行 x 程序(如 xterm)。例如:
[foo][/home/user]>echo $DISPLAY
:5.0
[foo][/home/user]>xhost +
access control disabled, clients can connect from any host
[foo][/home/user]>xterm
<xterm window opens - I type 'exit' in the xterm to close it>
[foo][/home/user]>hostname
foo.mydomain.com
[foo][/home/user]>export DISPLAY=foo.mydomain.com:5.0
[foo][/home/user]>xterm
xterm Xt error: Can't open display: foo.mydomain.com:5.0
[foo][/home/user]>xhost
xhost: unable to open display "foo.mydomain.com:5.0"
[foo][home/user]
我可以使用此主机名 ping 自己:
[foo][/home/user]>ping foo.mydomain.com
PING foo.mydomain.com (192.168.1.200) 56(84) bytes of data.
64 bytes from foo.mydomain.com (192.168.1.200): icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from foo.mydomain.com (192.168.1.200): icmp_seq=2 ttl=64 time=0.027 ms
64 bytes from foo.mydomain.com (192.168.1.200): icmp_seq=3 ttl=64 time=0.029 ms
这是进程列表中的 VNC 条目:
user 22129 1 0 16:15 pts/70 00:00:22 /usr/bin/Xvnc :5 -desktop foo.mydomain.com:5 (user) -auth /home/user/.Xauthority -geometry 1270x1014 -rfbwait 30000 -rfbauth /home/user/.vnc/passwd -rfbport 5905 -fp catalogue:/etc/X11/fontpath.d -pn
.Xauthority 的内容如下:
[foo][/home/user]>xauth
Using authority file /home/user/.Xauthority
xauth> list
foo.mydomain.com:5 MIT-MAGIC-COOKIE-1 <long hex value>
foo.mydomain.com/unix:5 MIT-MAGIC-COOKIE-1 <same long hex value as above>
xauth>
披露:我意识到 DISPLAY 是否包含主机名对本地系统影响不大。我遇到的问题是真的试图弄清楚为什么我在将 DISPLAY 从远程主机导出到此 VNC 服务器时遇到同样的问题 - 我收到相同的“无法打开显示”消息。过去当我收到该消息时,问题总是 xhost 不允许远程连接。但这次设置“xhost +”没有帮助。我认为在本地计算机上的 DISPLAY 变量中使用主机名也会触发问题这一事实是一个线索。
关于如何调试此问题,您有什么想法吗?谢谢!
答案1
尝试-listen tcp
添加VNCSERVERARGS
:
VNCSERVERARGS[2]="-geometry 800x600 -listen tcp"
或者,如果您直接从命令行打开会话:
vncserver -listen tcp