搭建Consul报错Failed to start RPC layer: listen tcp XX.XXX.XXX.XXX:XXXX:: bind: cannot assign requested
搭建SprinfCloud-Consul报错解决方案搭建步骤报错过程为解决此问题作出的尝试搭建步骤1、解压unzip -o -d /usr/springcloud/consul consul_1.6.0_linux_amd64.zip2、在consul目录下创建conf、data/consulData文件夹3、把basic.json文件放到conf目录。4、开启端口:及其它相关端口f...
搭建SprinfCloud-Consul报错解决方案
搭建步骤
1、解压
unzip -o -d /usr/springcloud/consul consul_1.6.0_linux_amd64.zip
2、在consul目录下创建conf、data/consulData文件夹
3、把basic.json文件放到conf目录。
此处贴上basic.json文件内容
{
"ports": {
"http": 8900,
"dns": 8601,
"grpc": 8401,
"serf_lan": 8311,
"serf_wan": 8312,
"server": 8310
}
}
4、开启端口:及其它相关端口
firewall-cmd --zone=public --add-port=8900/tcp --permanent
报错过程
在这步的时候遇到问题
FirewallD is not running
对于此问题的解决方法:
1)查看防火墙状态
指令:systemctl status firewalld
执行结果:
?.firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
由此可见,防火墙当前是dead状态,即防火墙未开启
2)通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
3)再次通过systemctl status firewalld查看firewalld状态
执行结果:
?.firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Fri 2019-11-22 09:51:57 CST; 8s ago
Docs: man:firewalld(1)
Main PID: 3779 (firewalld)
CGroup: /system.slice/firewalld.service
?..3779 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Nov 22 09:51:56 VM_0_8_centos systemd[1]: Starting firewalld - dynamic firewall daemon…
Nov 22 09:51:57 VM_0_8_centos systemd[1]: Started firewalld - dynamic firewall daemon.
显示防火墙已开启
4)再次执行当前指令,显示success表示执行成功。
5、重载防火墙:firewall-cmd --reload
6、启动consul:
./consul agent -dev -ui -node=node1 -client 0.0.0.0 -bind=XXX.XX.XX.XXX -config-dir /usr/springcloud/consul/conf/ -data-dir /usr/springcloud/consul/data/consulData/
报错过程
在执行第6步的时候出现如下问题:
Error starting agent: Failed to start Consul server: Failed to start RPC layer: listen tcp XX.XXX.XXX.XXX:XXXX: bind: cannot assign requested address
2019/11/21 11:43:16 [INFO] agent: Exit code: 1
为解决此问题作出的尝试
1、查看端口状态
#ssh XX.XXX.XXX.XXX -p XXXX
返回如下:
ssh: connect to host XX.XXX.XXX.XXX port XXXX: No route to host
2、通过搜索No route to host问题,去/etc/hosts配置了一下hosts文件并重启了网络(然而没卵用)
#vim /etc/hosts
#service network restart
Restarting net work (via systemctl): [ OK ]
3、通过搜索下一个回答,进行如下尝试
答案告诉我,
出现No route to host 的时候,有如下几种可能:
1、对方的域名确实不通(然而我发现直接ping域名能通)
2、本机自己开了防火墙
3、本机的etc/hosts 里面没有配置本机的机器名和ip (可能性最大)
于是关闭防火墙
我配置了本机的机器名和ip,同样没卵用
我想起来了,本机的网络ip不是静态的,
使用ifconfig查看ip地址确实不是我配的那个本机ip
那么
我要不要配一个静态ip呢?
尝试配了一个静态ip,然后云服务器就。。连。不。上。了。。。
重装了系统,接着搞
这次进行第6步的时候绑定了内网地址(就是ifcfg的时候看到的地址)
这一次运行成功了,输出如上
但是呢,发生了一个问题:由于是直接跑的指令,所以我要执行下一条指令时Ctrl+c退出时,consul就停了。
如上问题的解决方法是:在运行consul的指令后面加上&符,将指令转为后台执行
7、浏览器登陆:http://XXX.XX.XX.XXX:8900,即安装成功
当我配置成内网的时候,我输入内网ip和外网ip访问发现并不能访问
向上级汇报之后,上级登陆管理员账号,将云服务器的相应端口号的访问权限打开了就好了
8、配置系统变量
指令:vim /etc/profile
编辑系统变量文件,配置如下内容
export CONSUL_HOME=consul目录
export PATH=$PATH:CONSUL_HOME
配置完成之后使用环境变量配置生效指令
指令:source /etc/profile
待配置文件生效之后,可以查看安装的consul版本号等信息
指令:consul --version
输出:
Consul v1.6.0
Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
9、配置开机自启动
1)编辑start.sh
vim /consul目录地址/start.sh
添加如下:
#!/bin/bash
/usr/springcloud/consul/consul agent -dev -ui -node=node1 -client 0.0.0.0 -bind=内网ip -config-dir /consul目录地址/conf/ -data-dir /consul目录地址/data/consulData/
2)给start.sh 授权
chmod -R 777 /consul目录地址/start.sh
3)编辑文件/lib/systemd/system/consul.service
vim /lib/systemd/system/consul.service
添加如下:
[Unit]
Description=consul
After=network.target
[Service]
ExecStart=/consul目录地址/start.sh
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target
10、执行命令重新加载/运行
重新加载
systemctl daemon-reload
开机运行
systemctl enable consul
运行
systemctl start consul
11、如果重新加载配置文件,则直接运行consul reload即可,consul leave同理
更多推荐
所有评论(0)