在通过httpClient调用某个接口时,报错 No route to host
我们首先查看 linux版本,不同的版本,指令有些差异,
cat /etc/centos-release 或 uname -a
可以查看到
随后,查看防火墙状态
systemctl status firewalld
防火墙关闭
如果没有关闭是 active
systemctl stop firewalld 关闭防火墙
查看SELinux状态
/usr/sbin/sestatus -v
如果没有关闭显示如下
SELinux status: enabled
临时关闭
setenforce 0 #设置SELinux 成为permissive模式 setenforce 1 #设置SELinux 成为enforcing模
永久关闭
vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
重启服务reboot
当firewalld 和 SELinux 都处于关闭,依旧不行时
检查防火墙对外开放端口
firewall-cmd --list-ports 用时会提示防火墙 不是启动状态
那么此时先开启防火墙,随后再执行
上图可以看到此时开启了 3306 2181 8080 7776这些端口,你api调用的端口不在其中,
因此,你需要开启 调用的端口
以80端口为例
firewall-cmd --zone=public --add-port=80/tcp --permanent 开启 80端口
–zone #表示作用域
–add-port=9000/tcp #开放的端口号,端口号/通讯协议
–permanent #永久生效,未添加此项,则重启后失效
//重新载入,才能生效
firewall-cmd --reload
会提示: success
此时再次调用查看,发现功能调用正常!
关闭某个端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent