服务器防火墙开放端口(解决服务器端口无法访问问题)

前言

最近操作服务器的时候,不小心误操作了防火墙,导致除22端口外,其他端口外部都不能访问,试了很多种方法,后最终得到解决。网络上的解决方式很多都比较零碎,所以在这里整理一下具体解决的思路和步骤。

一、解决思路

1. 判断服务器使用的是firewall还是iptable

Linux一共有两款防火墙软件,分别是firewall和iptable。一般来说,ConterOS7.0以上使用的是firewall,ConterOS7.0以下使用的是iptables。开放端口前,我们要先弄清楚自己服务器使用的是哪种软件,才方便使用对应的命令

service iptables status
systemctl status firewalld.service

因为我本地使用的是firewall进行防火墙管理的,所以后续将以firewall进行演示

2. 判断firewall当前开启的服务和端口
  • 查看当前firewall的所有信息
firewall-cmd --list-all

这里可以看到,我们当前没有配置开放的端口,services服务也没有http

3. 添加http服务
firewall-cmd --permanent --add-service=http

注意:我在添加http服务的时候,报了一个Error: Action org.fedoraproject.FirewallD1.all is not registered的错误,如果你也报的话,可能是防火墙版本存在问题,可以yum update firewalld手动更新防火墙版本。更新完成后,即可解决。

4. 重新执行firewall-cmd --list-all查看是否添加成功

如果查不到的话,执行systemctl restart firewalld.service重启一下防火墙服务

5. 添加开放端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
这里的permanent配置是永久生效的意思,不配的话重启后该配置就失效

添加好后,执行firewall-cmd --reload,重新加载策略配置

6、查看端口是否开放成功
firewall-cmd --list-all
或者
firewall-cmd --list-ports

最后我们就可以顺利访问服务器的相关端口啦

二、常用的防火墙命令

1、查看firewall服务状态

systemctl status firewalld

出现Active: active (running)切高亮显示则表示是启动状态。

出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、查看firewall的状态

firewall-cmd --state
3、开启、重启、关闭、firewalld.service服务

# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop

4、查看防火墙规则
firewall-cmd --list-all

5、查询、开放、关闭端口
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2--permanent:表示设置为持久;
3--add-port:标识添加的端口;
posted @ 2020-12-14 14:51  moutory  阅读(829)  评论(0编辑  收藏  举报  来源