注意:在这个问题的底部,我附加了一些我发现的细节,我认为这些细节是有关潜在问题的线索。
我从一个干净的 Ubuntu 14.04 实例开始急性心肌梗死并采取了以下步骤尝试通过 Windows 8.1 上的 TightVNC Viewer 连接:
sudo apt-get update
sudo apt-get install ubuntu-desktop
sudo apt-get install vnc4server
vncserver
- 输入 VNC 密码
vncserver -kill :1
nano .vnc/xstartup
- 取消注释指定的 2 行以获得“正常桌面”
- 添加
sh
后,行内容如下exec sh /etc/X11/xinit/xinitrc
- 保存了文件
- 重新启动,重新连接PuTTY
- 输入
vncserver
;它表示已成功启动 VNC,屏幕上显示:1 127.0.0.1:9000
尝试通过--连接到 VNC失败的127.0.0.1::9000
尝试通过--连接到 VNC失败的- 尝试通过公共 DNS 连接到 VNC :5901 --失败的
- 尝试通过公共 DNS ::5901 连接到 VNC --失败的
- 尝试通过公网 IP 连接 VNC :5901 --失败的
- 尝试通过公网 IP ::5901 连接到 VNC --失败的
- 尝试通过未指定端口的公共 DNS 连接到 VNC——失败的
- 尝试通过未指定端口的公共 IP 连接到 VNC——失败的
- 尝试通过公共 DNS ::5902 连接到 VNC --失败的
- 尝试通过公共 DNS 连接到 VNC ::1 --失败的
- 检查了日志,发现有些
xfonts
缺失,就安装它们 - 被剛剛
vncserver
- 重新启动,通过 PuTTY 重新连接,重新启动 VNC
- 重复步骤13-22,结果相同
- 尝试了一个我发现的建议,尝试改变
x-manager-window &
为gnome-session &
xstartup
- 重启后仍然无法连接
我的xstartup
文件现在如下所示:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec sh /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
gnome-session &
我的日志如下:
Xvnc Free Edition 4.1.1 - built Jan 14 2013 22:28:40
Copyright (C) 2002-2005 RealVNC Ltd.
See http://www.realvnc.com for information on VNC.
Underlying X server release 40300000, The XFree86 Project, Inc
Sun Nov 30 15:03:35 2014
vncext: VNC extension running!
vncext: Listening for VNC connections on port 5901
vncext: created VNC server for screen 0
error opening security policy file /etc/X11/xserver/SecurityPolicy
我检查过了ufw
,但状态是不活动的,所以这不是问题。
如果我使用tightvncserver
而不是vncserver
那么我会得到相同的错误,但日志显示:
30/11/14 16:55:37 Xvnc version TightVNC-1.3.9
30/11/14 16:55:37 Copyright (C) 2000-2007 TightVNC Group
30/11/14 16:55:37 Copyright (C) 1999 AT&T Laboratories Cambridge
30/11/14 16:55:37 All Rights Reserved.
30/11/14 16:55:37 See http://www.tightvnc.com/ for information on TightVNC
30/11/14 16:55:37 Desktop name 'X' (ip-172-31-57-160:1)
30/11/14 16:55:37 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
30/11/14 16:55:37 Listening for VNC connections on TCP port 5901
我还发现 - 尽管ufw
已关闭并且我拥有此 AWS EC2 实例的默认安全设置 - 但根据此工具,端口显然已被阻止:http://www.yougetsignal.com/tools/open-ports/。我已经输入iptables
命令来打开它,但至今仍无济于事。
答案1
我终于让它工作了。
除了确保 AWS 安全组允许所有相关端口之外,我还对 PuTTY(我的 Windows SSH 客户端)进行了以下更改:
PuTTY Configuration
在-->Connection
-->SSH
-->下启用 X11 转发X11
PuTTY Configuration
在-->Connection
-->SSH
-->下Tunnels
为 5901设置端口转发
然后我就可以通过设置为 的 VNC 查看器进行连接localhost::5901
。