{"id":4257,"date":"2019-04-12T17:56:45","date_gmt":"2019-04-12T12:26:45","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=4257"},"modified":"2026-10-21T13:33:27","modified_gmt":"2026-10-21T08:03:27","slug":"failed-to-connect-to-server-vnc-console-in-openstack","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/failed-to-connect-to-server-vnc-console-in-openstack\/","title":{"rendered":"Failed to connect to server VNC console in Openstack"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Post Date:<\/strong> April 12, 2019<br><strong>Last Updated:<\/strong> October 17, 2026<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This guide explains how to fix the VNC console in OpenStack when the Horizon dashboard shows a console error, usually &#8220;Failed to connect to server (code: 1006)&#8221;. The instance itself is fine. The console just can&#8217;t reach it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/openstack_vnc_failed_to_connect-1024x362-1.png\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"362\" src=\"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/openstack_vnc_failed_to_connect-1024x362-1.png\" alt=\"\" class=\"wp-image-12355\" srcset=\"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/openstack_vnc_failed_to_connect-1024x362-1.png 1024w, https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/openstack_vnc_failed_to_connect-1024x362-1-300x106.png 300w, https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/openstack_vnc_failed_to_connect-1024x362-1-768x272.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The cause is almost always a wrong address in <code>nova.conf<\/code> on the compute node. The VNC console in OpenStack depends on a short chain of addresses, and if one is wrong, the chain breaks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before you fix the VNC console in OpenStack, make sure you have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Root or sudo access to the compute node, and to the controller for the checks<\/li>\n\n\n\n<li>The compute node&#8217;s internal (management network) IP address<\/li>\n\n\n\n<li>A running instance to test with<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Architecture<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You click the console in Horizon, which opens a URL built from <code>novncproxy_base_url<\/code>. This is the address your <strong>browser<\/strong> uses, so it must be reachable from your workstation<\/li>\n\n\n\n<li>That URL points to <code>nova-novncproxy<\/code>, a proxy that normally runs on the controller and listens on port 6080<\/li>\n\n\n\n<li>The proxy then connects to the compute node at the address set in <code>server_proxyclient_address<\/code>, which is the compute node&#8217;s own internal address<\/li>\n\n\n\n<li>On the compute node, the instance&#8217;s VNC server listens at the address set in <code>server_listen<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To see why the VNC console in OpenStack fails, follow that chain from browser to proxy to compute node to instance. By default <code>server_proxyclient_address<\/code> is <code>127.0.0.1<\/code>, so the proxy tries to connect to itself on the controller instead of to the compute node, and the console fails with &#8220;Failed to connect to server&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/OpenStack-VNC-Console-Troubleshooting-Guide.png\"><img decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/OpenStack-VNC-Console-Troubleshooting-Guide-1024x576.png\" alt=\"\" class=\"wp-image-12353\" srcset=\"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/OpenStack-VNC-Console-Troubleshooting-Guide-1024x576.png 1024w, https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/OpenStack-VNC-Console-Troubleshooting-Guide-300x169.png 300w, https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/OpenStack-VNC-Console-Troubleshooting-Guide-768x432.png 768w, https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/OpenStack-VNC-Console-Troubleshooting-Guide-1536x864.png 1536w, https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/OpenStack-VNC-Console-Troubleshooting-Guide.png 1672w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For the full reference, see the OpenStack documentation on <a href=\"https:\/\/docs.openstack.org\/nova\/latest\/admin\/remote-console-access.html\" target=\"_blank\" rel=\"noopener\">configuring remote console access<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Steps to Fix the VNC Console in OpenStack<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Find the Compute Node&#8217;s Internal IP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On the compute node:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">hostname -I\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pick the address on the network the controller uses to reach this node, usually the management network.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Correction to the original:<\/strong> The original guide said the problem was a missing &#8220;controller IP&#8221; and described the compute node&#8217;s address as its &#8220;public IP&#8221;. Neither is accurate. The setting you change is the compute node&#8217;s <strong>own internal address<\/strong>, which OpenStack&#8217;s documentation describes as the private address the proxy should connect to. If you have several compute nodes, each one needs its own IP.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">2. Edit nova.conf on the Compute Node<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To get the VNC console in OpenStack working again, open the file:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo vi \/etc\/nova\/nova.conf\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Make sure the <code>[vnc]<\/code> section contains:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[vnc]\nenabled = true\nserver_listen = 0.0.0.0\nserver_proxyclient_address = 192.168.1.5\nnovncproxy_base_url = http:\/\/controller-public-name:6080\/vnc_auto.html\n<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Replace <code>192.168.1.5<\/code> with this compute node&#8217;s internal IP from Step 1<\/li>\n\n\n\n<li>Replace <code>controller-public-name<\/code> with a hostname or IP of the controller that <strong>your browser<\/strong> can reach<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Notes:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The original used the option name <code>vncserver_proxyclient_address<\/code>. Older releases used that name, but current releases use <code>server_proxyclient_address<\/code> in the <code>[vnc]<\/code> section. If you run a very old release, check its own documentation for the exact name.<\/li>\n\n\n\n<li><code>server_listen = 0.0.0.0<\/code> makes instance VNC ports listen on every interface of the compute node. Restrict access to those ports so only the controller can reach them, or use the node&#8217;s internal IP here instead of <code>0.0.0.0<\/code>.<\/li>\n\n\n\n<li>If you serve consoles over HTTPS, set <code>novncproxy_base_url<\/code> explicitly to the <code>https:\/\/<\/code> address.<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">3. Restart the Compute Service<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On RDO\/CentOS-style systems:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl restart openstack-nova-compute.service\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On Ubuntu:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl restart nova-compute\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Check the Proxy on the Controller<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On the controller, confirm the proxy behind the VNC console in OpenStack is running and listening on port 6080:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl status openstack-nova-novncproxy.service\nsudo ss -tlnp | grep 6080\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On Ubuntu the service is named <code>nova-novncproxy<\/code>. Also make sure your firewall or security group allows TCP port 6080 from your workstation to the controller.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Test with a Fresh Console URL<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Console links are short-lived, so test the VNC console in OpenStack with a new link rather than reusing an old page:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">openstack console url show &lt;server-name>\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Open the URL it prints, or reload the console tab in Horizon.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Still Seeing &#8220;Failed to Connect to Server&#8221;?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If the VNC console in OpenStack still won&#8217;t connect, check these:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The browser can&#8217;t reach <code>novncproxy_base_url<\/code>.<\/strong> A common mistake is an internal-only name like <code>controller<\/code> that your workstation can&#8217;t resolve. Use a name or IP reachable from where you open Horizon<\/li>\n\n\n\n<li><strong>Port 6080 is blocked<\/strong> between your browser and the controller<\/li>\n\n\n\n<li><strong>The same IP was copied to every compute node.<\/strong> Each node needs its own <code>server_proxyclient_address<\/code><\/li>\n\n\n\n<li><strong><code>nova-novncproxy<\/code> isn&#8217;t running<\/strong> on the controller<\/li>\n\n\n\n<li><strong>The logs have the answer.<\/strong> Check <code>\/var\/log\/nova\/nova-novncproxy.log<\/code> on the controller and <code>\/var\/log\/nova\/nova-compute.log<\/code> on the compute node<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The VNC console in OpenStack fails with &#8220;Failed to connect to server&#8221; when the proxy can&#8217;t reach the instance&#8217;s console, most often because <code>server_proxyclient_address<\/code> still has its default value of <code>127.0.0.1<\/code>. Set it to each compute node&#8217;s own internal IP, check that <code>novncproxy_base_url<\/code> is reachable from your browser, restart the compute service, and test with a fresh console URL.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why does the VNC console in OpenStack work for some instances but not others?<\/strong> Instances on different compute nodes use that node&#8217;s <code>nova.conf<\/code>. If one node has the wrong address, only the instances running on it will fail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Do I need to reboot instances after I fix the VNC console in OpenStack?<\/strong> Usually not for <code>server_proxyclient_address<\/code>, because the proxy reads it when you open a console. A change to <code>server_listen<\/code> generally applies only to instances that are started or hard rebooted afterward, since that address is set when the instance is created.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Should the compute node&#8217;s address be public or private?<\/strong> Private. It&#8217;s the internal address the proxy uses to reach the node. Only <code>novncproxy_base_url<\/code> needs to be reachable from outside.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why does the error appear again after a while?<\/strong> Console URLs expire after a short time. Open a new console from Horizon instead of reusing an old tab.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related Articles<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pheonixsolutions.com\/blog\/how-to-install-openstack-utils-package-on-centos-7-6\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to install openstack-utils package On CentOS 7.6<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pheonixsolutions.com\/blog\/how-to-install-single-node-openstack-on-centos-7-6\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to Install single node OpenStack on CentOS 7.6<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Talk to Our Technology Experts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Running into OpenStack console or networking issues? Our team can help with OpenStack deployment, cloud infrastructure troubleshooting, and ongoing support.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pheonixsolutions.com\/contact\">Connect with our technology experts.<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Post Date: April 12, 2019Last Updated: October 17, 2026 Introduction This guide explains how to fix the VNC console in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":12408,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1019],"tags":[622],"class_list":["post-4257","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-aws","tag-openstack","psol-cat-cloud-aws"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-16F","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/pheonixsolutions.com\/blog\/wp-content\/uploads\/2019\/04\/Fixing-VNC-Console-in-OpenStack-1.png","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=4257"}],"version-history":[{"count":2,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4257\/revisions"}],"predecessor-version":[{"id":12356,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4257\/revisions\/12356"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media\/12408"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=4257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=4257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=4257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}