使用 VNC 访问服务器时出现问题

使用 VNC 访问服务器时出现问题

我很茫然,我已经按照指南进行了https://www.linode.com/docs/applications/remote-desktop/using-vnc-to-operate-a-desktop-on-ubuntu-12-04配置我的无头服务器以允许通过vnc.我还没有使用任何 ssh 转发,但只是想直接连接到端口上的服务器5901,但我不能,我只收到一条消息说连接到主机主机名::5901已关闭但我可以确认ps ax | grep vnc我的服务器正在运行:

$ ps ax | grep vnc
21895 ?        S    158:03 Xtightvnc :1 -desktop X -auth /home/semios/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 120000 -rfbauth /home/semios/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb -localhost
22477 pts/5    S+     0:00 grep --color=auto vnc

并使用 netstat 我可以确认它正在侦听端口5901

$ netstat -an | grep 5901
tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN 

那么这里可能出了什么问题呢?另外,我似乎找不到Xtightvnc可以为我提供更多信息的日志文件......

如果我连接$ ssh -p 2200 -X user@server然后连接我的 VNC 客户端,127.0.0.1:5901我会收到相同的消息与主机 127.0.0.1::5901 的连接已关闭。

答案1

因为您已使用参数调用 VNC 服务器-localhost,所以它仅接受本地主机接口上的连接 - 正如输出127.0.0.1:5901中的条目所确认的netstat那样(外部开放接口将读取0.0.0.0:5901)。从Xvnc联机帮助页:

   -localhost
          Only  allow connections from the same machine. Useful if you use
          SSH and want to stop non-SSH connections from any  other  hosts.
          See the guide to using VNC with SSH on the web site.

在此配置中,您必须隧道连接,否则将被拒绝。要通过 SSH 建立隧道,您可以执行以下操作:

ssh -p 2200 -L5901:localhost:5901 user@remotehost -Nf

(这-Nf是可选的:它只是将隧道放在后台)然后启动 VNC 客户端并将其指向隧道端点:详细信息将取决于您使用的客户端,例如

vncviewer localhost:1

相关内容