使用linux,不会防火墙和端口查看命令,这就说不过去了
工作中,在使用linux系统时,部署服务,排查问题,都离不开防火墙和端口的相关操作,比如怎么查看防火墙状态,不知道端口占用怎么查看,以及如何开放一个端口等,今天同哥就把linux防火墙操作的命令做一个总结,希望对刚入门linux童鞋一点帮助。
先了解点背景知识:
防火墙实现原理图:
有点晕,简单来说,就是在用户和服务器之间,通过硬件和软件设置一系列的过滤规则,允许或是限制传输的数据通过。
下面的命令主要以主流的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 进程号
那怎么开启一个端口呢
# 添加端口
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
这些命令收藏了,下次防火墙操作,跟着敲就行了。