如何从外部访问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"]
}
有任何帮助吗? 感谢
答案 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的实践经验,但这里有一些提示:
答案 5 :(得分:0)
如果没有用户界面,无法获得用户界面) 经典UI它的桌面环境堆栈(x-term ....),所以在获取之前,需要在节点上安装它