目录
一、防火墙基本操作命令
查看防火墙状态:
systemctl status firewalld
开启防火墙:
systemctl start firewalld
关闭防火墙:
systemctl stop firewalld
重启防火墙:
systemctl restart firewalld
设置开机自启:
systemctl enable firewalld
禁用开机启动:
systemctl disable firewalld
若遇到无法开启防火墙时
先解除屏蔽:
systemctl unmask firewalld.service
再开启防火墙服务:
systemctl start firewalld.service
二、查看对外开放的端口状态
查看已开放的端口列表:
firewall-cmd --zone=public --list-ports
查询指定端口是否开放:
# firewall-cmd --query-port=端口号/tcp
firewall-cmd --query-port=3306/tcp
提示 yes,表示开启;no表示未开启。
三、对外开发端口
添加指定需要开放的端口:
# firewall-cmd --add-port=端口号/tcp --permanent
firewall-cmd --add-port=3306/tcp --permanent
重载入添加的端口:
firewall-cmd --reload
查询指定端口是否开启成功:
# firewall-cmd --query-port=端口号/tcp
firewall-cmd --query-port=3306/tcp
移除指定端口:
# firewall-cmd --permanent --remove-port=端口号/tcp
firewall-cmd --permanent --remove-port=3306/tcp
附录
# 第一种 netstat -apn | grep +端口号 以3306为例
netstat -apn | grep 3306# 第二种 firewall-cmd --query-port=端口号/tcp
firewall-cmd --query-port=3306/tcp
两者区别
netstat -apn | grep 3306 :
netstat 命令用于显示网络连接、路由表、接口统计等信息。
-a 选项显示所有的连接和监听端口。
-p 显示进程标识符和进程名称。
-n 以数字形式显示地址和端口号。
grep 3306 用于在 netstat 的输出结果中筛选出包含 3306 端口的行。
这个命令主要用于查看系统中与指定端口(如 3306)相关的网络连接状态和使用该端口的进程信息。
firewall-cmd --query-port=3306/tcp :
这是用于查询防火墙是否允许指定的端口(这里是 3306 端口,TCP 协议)通过。
这个命令主要用于检查防火墙对特定端口的设置,即是否允许通过该端口的 TCP 流量。
例如,如果 netstat -apn | grep 3306 有输出,说明有进程正在使用 3306 端口进行网络通信。而如果 firewall-cmd --query-port=3306/tcp 返回 yes,则表示防火墙允许 3306 端口的 TCP 流量通过;返回 no 则表示不允许。
Linux中有两种防火墙软件,ConterOS 7.0以上使用的是 firewall,ConterOS 7.0以下使用的是 iptables。附文介绍两种防火墙软件的使用。