无法通过VNC连接Google Compute Engine

10

我花了几天时间在Google Compute Engine(GCE)上安装软件,然后尝试从Windows PC或本地Linux机器远程访问它。

我可以安装软件,例如Google Chrome,但无法打开应用程序,因为我一直遇到显示问题(显然是因为GCE是无头的)。 因此,我正在尝试VNC进入GCE实例。

我已经尝试在服务器上安装以下内容:(实例名称为“talend”)

vnc4server:我得到输出,表示服务器正在运行,一切看起来都很好。 我唯一遇到的错误是语言错误,如下所示:

steven@talend:~$ vnc4server -geometry 1440x900 :1 perl:警告:设置区域设置失败。 perl:警告:请检查您的区域设置:LANGUAGE =(未设置),LC_ALL =(未设置),LANG =“en_ZA.UTF-8”是否受支持并已安装在您的系统上。 perl:警告:回退到标准语言环境(“C”)。 一个VNC服务器已经作为:1运行

steven@talend:~$ vnc4server -geometry 1440x900 :2 perl:警告:设置区域设置失败。 perl:警告:请检查您的区域设置:LANGUAGE =(未设置),LC_ALL =(未设置),LANG =“en_ZA.UTF-8”是否受支持并已安装在您的系统上。 perl:警告:回退到标准语言环境(“C”)。 新的'talend:2(steven)'桌面是talend:2 启动在/home/steven/.vnc/xstartup中指定的应用程序 日志文件位于/home/steven/.vnc/talend:2.log中

远程访问:使用Windows TightVNC客户端

我收到以下消息:

No connection could be made because the target machine actively refused it.

远程访问:使用Linux中的Vinagre

Connection to host 8.34.210.67::5902 was closed.

通过Google Compute Engine Web控制台:

尝试更改为静态IP > 没有区别

尝试添加tcp:80,使用源:0.0.0.0/0 > 没有区别

我确定这个问题有一个简单的解决方案,但我似乎找不到它。任何帮助将不胜感激,然后将发布最终解决方案的链接。

谢谢。

3个回答

9
您需要配置三个设置,以便所有内容都在同一个端口上达成一致:
- vnc4server正在侦听的端口。 - 允许该端口上的流量的Compute Engine防火墙规则。 - TightVNC尝试连接的端口。
从错误消息“连接到主机8.34.210.67::5902被关闭。”看来,TightVNC正试图连接到5902。假设vnc4server也在该端口上侦听,则应添加Compute Engine防火墙规则以允许该端口。
请访问https://cloud.google.com/console控制台,单击您的项目,然后单击计算引擎,然后单击网络。在“防火墙”旁边单击“创建新的”,并添加一个新规则,将tcp:5902设置为端口/协议字段。
如果您正在运行Centos,则还有一个额外的步骤是禁用本地防火墙:CentOS Firewall Issues on GCE

谢谢Brian。在防火墙添加tcp:5902规则后,我通过TightVNC成功连接了。现在我面临的下一个问题是能否启动图形化应用程序,例如Chrome或在我这种情况下的Talend Open Studio。我遇到了无法启动显示器的错误,但我猜想这是Linux部分的问题。我正在运行带有GCE实例的DEBIAN默认安装。 - steven.levey
Xwindows支持多个显示器,图形应用程序默认使用显示器0,通常是本地显示器。vnc4server似乎正在使用显示器2("桌面是talend:2")。如果您能够通过VNC连接到交互式桌面,那通常就足够了 - 桌面知道在同一显示器上启动应用程序。然而,听起来这对您不起作用。我猜测应用程序正试图使用显示器0。如果是这样,有两种方法可以使事情正常工作:更改vnc4server设置以启动为显示器0,或者启动指向显示器2的应用程序。 - Brian Dorsey
1
谢谢Brian。我设法让它工作了。对于其他人,这是我所做的。在终端中运行以下命令:$ vnc4server -geometry 1440x900 :1...然后 $ export DISPLAY=:1 。然后我从Windows机器使用tightvnc连接到ipaddress并在末尾添加显示号码,就像这样...123.12.12.123:1,它起作用了! - steven.levey

0

另一个选择是使用Guacamole和Tomcat通过浏览器或VNC客户端访问您的桌面。

使用Aptitude或apt-get安装guacamole-tomcat。我在防火墙设置中(通过标记)设置了VNC端口以及http和https。我还设置了“guacamole”标签以供与防火墙一起使用。您的GCE实例将需要分配这些标记。还有一些配置要在/ etc / guacamole /中进行,用于用户/登录等,但基本上是这样...

安装完成后,默认端口为8080。因此,请浏览到http://:8080 / guacamole /,您将获得Guacamole登录屏幕。登录后,您将有链接可单击,以在浏览器窗口中启动您的桌面。

您还可以直接通过:5901(或您配置Guacamole的任何端口)进行VNC(无浏览器)。当然最好是设置一个st


0

尝试:

$ sudo iptables -L

链 INPUT(策略接受) 目标 协议 源 目的地
链 FORWARD(策略接受) 目标 协议 源 目的地
链 OUTPUT(策略接受) 目标 协议 源 目的地

如果不相似则清空:

sudo iptables -F

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接