前天在部署java项目到linux服务器后居然发现在postman和地址栏均无法访问接口,具体情况如下图所示:
在这里插入图片描述

  从上图可以看出在请求这个接口时产生了一个错误,那么到底是什么原因呢?我尝试使用了curl这个命令请求这个接口在xshell中是成功的,难道又是防火墙问题?之前也遇到类似的问题,当时我是直接关闭了防火墙(firewall)然后就可以了,但现在我尝试关闭了,发现这个方法行不通了。经过一顿排查,发现原来是防火墙(firewall)对于9030这个端口没有开放,于是使用命令开发了9030这个端口并且重启了下防火墙再一请求接口,发现可以了!那么我是如何解决的呢?且听我下面慢慢讲解。

  Linux中有两种防火墙软件,CentOS 7.0以上使用的是firewall,CentOS 7.0以下使用的是iptables。我的linux服务器正是使用了firewall。下面我只讲解使用firewall的防火墙的情况,使用iptables的同学请自行另外查询。

  1. 首先使用systemctl status firewalld命令查看firewalld防火墙是否有启动,如果为inactive (dead)状态,则需要使用systemctl start firewalld命令开启服务,然后再查看它的状态已经更改为active (running),具体效果如下图所示:在这里插入图片描述

  2. 紧接着既然防火墙已经启动起来了,所以可以使用firewall-cmd --list-ports命令查看已经开发的端口,在开放的端口列表中发现果然没有9030这个端口,具体效果如下图所示:在这里插入图片描述

  3. 于是可以使用firewall-cmd --zone=public --add-port=9030/tcp --permanent命令开放9030端口,执行命令如果返回success则代表开放成功了,接着使用firewall-cmd --reload命令重启下防火墙后从开放的端口列表中就可以看到有9030这个端口了,具体效果如下图所示:在这里插入图片描述
      哈哈,是不是很简单?写这篇博客时部分思路和内容我主要参考了以下两篇博客,大家如果有兴趣也可以看下。
    Linux防火墙Firewall和Iptables的使用
    postMan和地址栏无法访问接口-centos出现“FirewallD is not running”怎么办

    每周坚持更新一篇博客,欢迎大家监督!

GitHub 加速计划 / li / linux-dash
6
1
下载
A beautiful web dashboard for Linux
最近提交(Master分支:3 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐