我在虚拟机中运行 OpenStack 部署,用于测试目的。我的设置如下:使用 Virtualbox 托管 Ubuntu x64 -> 使用 OpenStack 的客户机 Ubuntu x64 -> 通过 Openstack 运行 Ubuntu X64 服务器测试实例。
我知道它没有实际用途,但正如所说,它仅用于测试目的。我成功启动了一个实例,将其绑定到 11.1.0.3 和 172.16.1.1(主机为 172.16.0.1),并且我可以使用 (或) 从主机或客户虚拟机成功 ssh 进入它。不幸的是,通过 Horizon 的 NoVNC 不起作用(开始 VNC 握手 -> 连接失败)。ssh -i key.pem [email protected]
172.16.1.1
我的 nova.conf 中的相关行如下:
--novnc_enabled=true
--novncproxy_base_url=http://172.16.0.1:6080/vnc_auto.html
--vncserver_proxyclient_address=172.16.0.1
--vncserver_listen=172.16.0.1
所以我不确定出了什么问题。与我 ssh 使用的 .pem 文件匹配的密钥对当然与实例耦合,并且实例处于活动状态并正在运行。
任何帮助将不胜感激。
编辑:nova get-vnc-console [id] novnc
正确地为我提供了进入虚拟机的 vnc 链接,但连接也失败了。
编辑2:澄清一下:我有一个活动且正在运行的实例,它已通过 OpenStack 仪表板成功启动。我可以 ping 该实例,也可以通过 ssh 进入该实例(使用'ssh -i key.pem ip
),但我无法通过 VNC(特别是仪表板上的 novnc)访问它。尝试通过 nova 通过 get-vnc-console 提供的 URL 访问 VM 也不起作用。我希望通过 VNC 访问此实例。
答案1
我认为您的 URL 引用应该是您的公共 IP。
novncproxy_base_url=http://:6080/vnc_auto.html
xvpvncproxy_base_url=http://:6081/console
尝试一下。
答案2
--vncserver_listen=0.0.0.0
在您的配置中设置。--vncserver_listen=172.16.0.1
重新启动相关服务,然后尝试通过 VNC 访问实例。它应该可以工作。
答案3
在您想要从 NoVNC 访问的计算节点上尝试此操作
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5950 -j ACCEPT
iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
如果这是正确的解决方案,请保存
iptables-save
希望您能找到解决方案。问候 Gerardo