lsof、netstat查看端口占用

导读:本篇文章讲解 lsof、netstat查看端口占用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

lsof

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件

常用的参数列表:
lsof filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /DIR/ 显示目录下被进程打开的文件
lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d FD 显示指定文件描述符的进程
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 –> IPv4 or IPv6
protocol –> TCP or UDP
hostname –> Internet host name
hostaddr –> IPv4地址
service –> /etc/service中的 service name (可以不只一个)
port –> 端口号 (可以不只一个)
来自 linux之netstat与lsof

使用

lsof -i:端口号,查看某端口的占用情况
比如查看5005号端口使用情况,lsof -i:5005,如下图

$ lsof -i:5005

在这里插入图片描述

输出参数

COMMAND:进程的名称
PID: 进程标识符
USER:进程所有者
FD:文件描述符
TYPE:文件类型
DEVICE:指定磁盘的名称
SIZE/OFF:文件的大小
NODE:索引节点
NAME:打开文件的确切名称

netstat

netstat是系统自带的命令,用于显示网络状态
利用 netstat 指令可得知整个 Linux 系统的网络情况

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

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

使用

netstat -tunlp|grep 端口号
比如查看5005号端口使用情况,netstat -tunlp|grep 5005,如下图

netstat -tunlp|grep 5005

在这里插入图片描述

netstat -tunlp

在这里插入图片描述

输出参数

输出的参数包括:
Proto:显示连接使用的网络传输协议,主要为tcp和udp
Recv-Q:网络接收队列
Send-Q:网路发送队列
Local Address:本地连接地址
Foreign Address:和本地建立连接的地址
State:端口状态,内部地址与外部地址的连接状态,主要有监听( LISTEN )和建立(ESTABLISED)
PID/Program name: 进程标识符/进程名称

总结

其实这两个命令还是有不同之处的
lsof可以看到进程所有者、文件类型等信息,更为全面,命令也稍微简单一些

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/93747.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!