Centos查询服务使用的端口号 并使用firewall放行服务

Souts 2021年12月03日 1,147次浏览

Centos查询服务使用的端口号 并使用firewall放行服务

前言

firewall防火墙默认是支持直接放行服务功能的,但是在部分场景中需要手动放行服务所使用的端口

实验环境

Centos8

查询服务所占用的端口

这里需要使用的工具是netstat查询相关端口

如果使用的环境中默认没有安装可以手动安装

yum install -y net-tools //安装命令

这里需要分清大多数服务程序使用的是tcp协议但是还有部分服务使用的是udp协议,我们先拿一个httpd服务作为例子演示一下

httpd演示

systemctl restart httpd //重启服务
netstat -lnp | grep "httpd" //列出所有在监听状态的端口不显示别名并显示建立相关链接的程序名,通过管道给grep筛选包含httpd关键字的条目

可以看到反馈了两个端口 80和443端口

接下来只需要通过firewall放行端口即可,http只涉及到了tcp的端口所以这里没有udp的问题

firewall-cmd --zone=public --add-port={80/tcp,443/tcp} --permanent
firewall-cmd --reload //重载firewall服务
chronyd演示

这里使用chrony服务演示一下udp协议的查询放行

systemctl restart chronyd //重启服务
netstat -lnp | grep "chronyd" //列出所有在监听状态的端口不显示别名并显示建立相关链接的程序名,通过管道给grep筛选包含chronyd关键字的条目

可以看到同样反馈了两个端口123和323端口,并且表明了udp协议

接下来同样通过firewall放行udp的123和323端口

firewall-cmd --zone=public --add-port={123/udp,323/udp} --permanent
firewall-cmd --reload //重载firewall服务

补充

进行服务部署的时候可以先关闭防火墙进行配置,以免出现不必要的问题,但是生产环境中绝对不可以使用!

关闭防火墙命令: systemctl stop firewalld

netstat常见参数

-a (all) 显示所有选项,默认不显示LISTEN相关。
-t (tcp) 仅显示tcp相关选项。
-u (udp) 仅显示udp相关选项。
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态。

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

LISTEN和LISTENING的状态只有用-a或者-l才能看到。

常用netstat相关命令

1、列出所有端口 #netstat -a

2、列出所有 tcp 端口 #netstat -at

3、列出所有 udp 端口 #netstat -au

4、只显示监听端口 #netstat -l

5、只列出所有监听 tcp 端口 #netstat -lt

6、只列出所有监听 udp 端口 #netstat -lu

7、列出所有监听 UNIX 端口 #netstat -lx

8、显示所有端口的统计信息 #netstat -s

9、显示 TCP 或 UDP 端口的统计信息 #netstat -st 或 -su

10、 输出中显示 PID 和进程名称 #netstat -p

11、netstat 输出中不显示主机,端口和用户名 (host, port or user)

当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。

同样可以加速输出,因为不用进行比对查询。

#netstat -an

如果只是不想让这三个名称中的一个被显示,使用以下命令

netsat -a --numeric-ports
netsat -a --numeric-hosts
netsat -a --numeric-users
12、持续输出 netstat 信息 #netstat -c

13、找出程序运行的端口 #netstat -ap | grep ':80'

14、查看连接某服务端口最多的的IP地址(前20个)

netstat -nat | grep "10.1.62.23:443" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
15、TCP各种状态列表

#netstat -nat |awk '{print $6}'

统计数量

netstat -nat |awk '{print $6}'|sort|uniq -c

排序

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

16、直接统计tcp数量监听的数量

netstat -ant | wc -l