如何从外部访问consul UI

问题描述 投票:17回答:6

如何从外部访问consul UI?

我想访问consul UI写作

<ANY_MASTER_OR_SLAVE_NODE_IP>:8500

我尝试使用ssh隧道进行访问:ssh -N -f -L 8500:localhost:8500 [email protected]

然后,如果我访问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"]
}

有帮助吗?谢谢

consul
6个回答
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以限制访问。


3
投票

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

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

其中172.16.93.12是我的IP。


2
投票

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

docker pull consul

docker run -p 8500:8500 consul

我可以访问http://<hostname>:8500/ui的领事馆


2
投票

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

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

1
投票

我还没有与Consul的亲身体验,但这里有一些提示:

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.