Centos7 防火墙及端口查看命令,这些linux命令必须收藏

928 阅读2分钟

使用linux,不会防火墙和端口查看命令,这就说不过去了

工作中,在使用linux系统时,部署服务,排查问题,都离不开防火墙和端口的相关操作,比如怎么查看防火墙状态,不知道端口占用怎么查看,以及如何开放一个端口等,今天同哥就把linux防火墙操作的命令做一个总结,希望对刚入门linux童鞋一点帮助。

先了解点背景知识:

防火墙实现原理图:

image-20210310172657583.png

有点晕,简单来说,就是在用户和服务器之间,通过硬件和软件设置一系列的过滤规则,允许或是限制传输的数据通过。

下面的命令主要以主流的Centos7系统为准,其他发行版本大家可以自行学习。

firewalld基本命令

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
更新防火墙规则: firewall-cmd --reload
查看区域信息:  firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic

firewalld服务操作

# 查看firewall状态:
systemctl status firewalld.service
# 启动firewall服务: 
systemctl start firewalld.service 
 #停止firewall服务
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service    

端口占用查看

查看所有打开的端口: firewall-cmd --zone=public --list-ports

查看监听的端口:netstat -lnpt

netstat参数说明:

   -t : 指明显示TCP端口
   -a : 显示所有socket(套接字),包括正在监听的(LISTEN)
   -u : 指明显示UDP端口
   -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
   -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
   -n : 不进行DNS轮询,显示IP(可以加速操作)

查看指定端口的进程信息:

#查看端口被那个进程占用
方法一:netstat -lnpt |grep 3306
方法二:lsof  -i :3306
#查看该进程详细信息
ps 进程号

image-20210311153842324.png

那怎么开启一个端口呢

# 添加端口
firewall-cmd --zone=public --add-port=80/tcp --permanent--permanent永久生效,没有此参数重启后失效)
# 重新载入
firewall-cmd --reload
# 查看端口是否开放
firewall-cmd --zone=public --query-port=80/tcp
# 删除添加的开放端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent

这些命令收藏了,下次防火墙操作,跟着敲就行了。