linux环境下,查看端口的占用情况,有两个命令。分别是 lsof和 netstat。lsof (list open files)打印系统当前打开的文件,linux下,一切皆文件,网络也可以当做文件处理。netstat是在内核中访问网络连接状态及其相关信息的程序。这两个命令都可以很方便查看,那些端口被占用了。
这里简单介绍一下,这两个命令是如何使用的。如果losf 命令没有找到,需要先安装以下。
yum install -y lsof
# 查看3306(mysql)端口是否占用
lsof -i:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 1319 mysql 14u IPv4 19747 0t0 TCP *:mysql (LISTEN
lsof 可以打印系统当前打开的所有文件, 使用 i
选项可以查看所有的的网络连接。
# 查看所有的网络连接
lsof -i
# 查看所有的 tcp 连接
lsof -i tcp
# 查看所有的 utp 连接
lsof -i utp
# 查看 80端口谁在使用
lsof -i :80
lsof -i tcp:80
使用 netstat 查看端口是否被被占用
# -a 显示所有的端口
# -n 显示数字,不显示协议比如(http)或者hostname don't resolve names
# -p 显示进程的名字 和 PID
netstat -anp | grep ":80"
root 1626 0.0 0.0 75780 1484 ? Ss 21:31 0:00 nginx: master process /usr/sbin/nginx
netstat -ap | grep "nginx"
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN 1626/nginx: master
# 查看http是否运行
netstat -a | grep "http"
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
# 或者这个命令
netstat -an | grep ":80"
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN