Consul web-ui 8500端口实现公网访问

第一种办法  端口映射

一 、背景信息

需求

consult server  8500 , 8600 启动时绑定127.0.0.1,无法对外访问。

    2018/02/23 17:46:11 [INFO] agent: Started DNS server 127.0.0.1:8600 (tcp)
    2018/02/23 17:46:11 [INFO] agent: Started HTTP server on 127.0.0.1:8500 (tcp)

网络结构

  IP地址:  111.2.154.72 (根据实际情况变化)

  源端口: 37170 (根据实际情况变化)

  源端口: 8500

二 、安装rinetd

1、在服务器Linux上安装rinetd。

yum install -y gcc g++ autoconf make telnet 

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

tar -xvf rinetd.tar.gz  

cd rinetd

sed -i 's/65536/65535/g' rinetd.c 

mkdir -pv /usr/man && make && make install

2、编辑配置文件。

 vi /etc/rinetd.conf

3、在配置文件中输入如下内容:

 0.0.0.0 37170 127.0.0.1 8500
 logfile /var/log/rinetd.log
  •  将所有发往本机37170端口的请求转发到127.0.0.1的8500端口。

 命令格式

bindaddress   bindport   connectaddress   connectport
绑定的地址     绑定的端口   连接的地址        连接的端口

扫描二维码关注公众号,回复: 94936 查看本文章
[Source Address] [Source Port] [Destination Address] [Destination Port]
源地址               源端口            目的地址               目的端口

4、执行如下命令启动rinetd。

rinetd

# 等价于 /usr/sbin/rinetd -c /etc/rinetd.conf

注意:通过echo rinetd >>/etc/rc.local可以设置为自启动。

5、查看端口状态

[root@VM_241_61_centos rinetd]# netstat -tlanp | grep 37170
tcp        0      0 0.0.0.0:37170           0.0.0.0:*               LISTEN      4081/rinetd         
tcp        0      0 10.104.241.61:37170     113.116.140.97:7373     ESTABLISHED 4081/rinetd         
tcp        0      0 10.104.241.61:37170     113.116.140.97:7374     ESTABLISHED 4081/rinetd         
tcp        0      0 10.104.241.61:37170     113.116.142.213:6888    ESTABLISHED 4081/rinetd   

6、测试端口连通性

[root@VM_138_47_centos ~]# telnet 111.2.154.72 37170
Trying 111.2.154.72...
Connected to 111.2.154.72.
Escape character is '^]'.

看到此信息,说明端口是连通的。

7、注意事项

1)rinetd.conf中绑定源端口号必须未被其它程序占用。
2)传统服务器运行rinetd iptables防火墙打开绑定的源端口。
3)阿里云ECS,腾讯CVM运行rinetd需要添加安全组规则、iptables防火墙打开绑定的源端口。

三、验证测试

http://111.2.154.72:37170/ui/#/dc1/services

----------------------------------分隔线----------------------------------

第二种办法 Consul -client参数

Consul Server 启动参数 -client 0.0.0.0

启动 Consul Server

consul agent -server -bootstrap-expect 3 -data-dir /tmp/consul -node=s1 -bind=10.201.102.198 -ui-dir ./consul_ui/ -rejoin -config-dir=/etc/consul.d/ -client 0.0.0.0

运行cosnul agent以server模式,

  • -server : 定义agent运行在server模式
  • -bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用
  • -bind:该地址用来在集群内部的通讯,集群内的所有节点到地址都必须是可达的,默认是0.0.0.0
  • -node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
  • -ui-dir: 提供存放web ui资源的路径,该目录必须是可读的
  • -rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
  • -config-dir::配置文件目录,里面所有以.json结尾的文件都会被加载
  • -client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0

猜你喜欢

转载自my.oschina.net/longhtml/blog/1623136