如何从外部访问consul UI

时间:2016-02-01 14:11:29

标签: consul

如何从外部访问consul UI?

我想访问consul UI写作

<ANY_MASTER_OR_SLAVE_NODE_IP>:8500

我尝试使用ssh隧道进行访问: ssh -N -f -L 8500:localhost:8500 root@172.16.8.194

然后我访问http://localhost:8500 它有效,但它不是我想要的。我需要在没有ssh隧道的情况下从外部访问。

我的config.json文件是下一个:

{
"bind_addr":"172.16.8.216",
"server": false,
"datacenter": "nyc2",
"data_dir": "/var/consul",
"ui_dir": "/home/ikerlan/dist",
"log_level": "INFO",
"enable_syslog": true,
"start_join": ["172.16.8.211","172.16.8.212","172.16.8.213"]
}

有任何帮助吗? 感谢

6 个答案:

答案 0 :(得分:33)

添加

{
  "client_addr": "0.0.0.0"
}

到您的配置或将选项-client 0.0.0.0添加到consul的命令行,以使您的Web UI可以从外部访问(see the docs for more information)。

请注意,这也可以从外部访问Consul REST API。根据您的环境,您可能希望激活Consul的ACL以限制访问。

答案 1 :(得分:3)

在这种情况下你可以使用socat。

  

socat -d -d TCP-L:8500,bind = 172.16.93.128,fork TCP:localhost:8500&amp;

其中172.16.93.12是我的IP。

答案 2 :(得分:2)

最后我找到了解决方案。 使用作为计算机IP的bind addr和作为他侦听的主机的client_addr添加到配置文件。所以我使用0.0.0.0来收听所有的IP。

"bind_addr":"<machine-ip>",
"client_addr":"0.0.0.0",

答案 3 :(得分:2)

我将它作为码头图像运行,我给了

docker pull consul

docker run -p 8500:8500 consul

我可以访问http://<hostname>:8500/ui

的领事馆

答案 4 :(得分:1)

我还没有与Consul的实践经验,但这里有一些提示:

  • 运行sudo netstat -peanut | grep :8500并检查Consul是否绑定到0.0.0.0或显式IP。如果这是可配置的,应检查文档。
  • 在每个节点上安装SquidNginx或任何其他可充当HTTP代理的软件

答案 5 :(得分:0)

如果没有用户界面,无法获得用户界面) 经典UI它的桌面环境堆栈(x-term ....),所以在获取之前,需要在节点上安装它