一、安装netstat
netstat默认安装了,如果没有安装的话,参考以下指令进行安装

yum install net-tools -y

Debian/Ubuntu

apt install net-tools -y

netstat命令各个参数说明如下:

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

二、实操
1、netstat -anp |grep 端口号
如下,我以3306为例,netstat -anp | grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看),如下图1:

netstat -anp | grep 3306


图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。

2、netstat -nultp(此处不用加端口号)

netstat -nultp

该命令是查看当前所有已经使用的端口情况,如图2:

图中可以看出我的82端口没有被占用

3、netstat -anp |grep 82查看82端口的使用情况,如图3:

netstat -anp |grep 82

可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了

4、关闭端口进程

yum install lsof  ##安装lsof命令
lsof -i:8090      ##利用lsof命令查看端口占用的进程号,此处的8090为端口号
kill -9 8888      ##此处的8888为进程PID号

5、常用netstat相关命令
查看当前所有tcp端口·

netstat -ntlp

查看所有80端口使用情况

netstat -ntulp |grep 80

查看所有3306端口使用情况

netstat -an | grep 3306

查看一台服务器上面哪些服务及端口

netstat  -lanp

查看一个服务有几个端口。比如要查看mysqld

ps -ef |grep mysqld

查看某一端口的连接数量,比如3306端口

netstat -pnt |grep :3306 |wc

查看某一端口的连接客户端IP 比如3306端口

netstat -anp |grep 3306

查看网络端口

netstat -an

端口扫描

nmap

UDP类型的端口

netstat -nupl

TCP类型的端口

netstat -ntpl

显示系统端口使用情况

netstat -anp