У меня есть vncserver, работающий на RHEL 6.8. Когда я получаю доступ к этому сеансу через средство просмотра VNC, я замечаю, что не могу запускать программы x (например, xterm), если я изменяю переменную DISPLAY, чтобы включить имя хоста сервера. Например:
[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]
Я могу пинговать себя, используя это имя хоста:
[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-сервер - я получаю то же сообщение «Can't open display». В прошлом, когда я получал это сообщение, проблема всегда была в том, что xhost не разрешал удаленные подключения. Но на этот раз настройка «xhost +» не помогла. Я думал, что использование имени хоста в переменной DISPLAY на локальной машине, также вызывающей проблему, было подсказкой.
Есть мысли о том, как отладить эту проблему? Спасибо!