1、问题现象
创建完虚拟机以后,通过nova get-vnc-console命令,获取虚机的vnc连接地址,在浏览器中打开该连接,报1006错误
2、vnc的原理图
3、定位分析
1)分别在控制节点和计算节点上检查nova.conf的配置文件是否有误
2)在控制节点上检查openstack-nova-api,openstack-nova-consoleaut,openstack-nova-novncproxy服务是否正常
3)在计算节点上检查openstack-nova-compute服务是否正常
对这三个方向的可能错误进行排查,发现,这三个方向的内容都是正常,无报错信息,在控制节点上,tail -f 的方式,动态查看,vnc 访问时的报错信息,发现有如下内容:
INFO nova.console.websocketproxy [req-a9ef9047-7b5b-4251-b2c3-3de8fa2db7d1 - - - - -] handler exception: [Errno 113] EHOSTUNREACH,怀疑是iptables导致的
iptables -n -v -L |grep 5900命令行,过滤vnc的端口,发现,没有5900的过滤,添加vnc的rule,
iptables -I INPUT -p tcp -m multiport --ports 5900:6100 -m comment --comment "vnc ports" -j ACCEPT,重新在浏览器上vnc访问虚机,发现可以访问了