Linux 查看网络端口占用情况命令

1.lsof -i:端口号

lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。

选项说明:

选项描述
-a列出打开文件存在的进程;
-c<进程名>列出指定进程所打开的文件;
-g列出GID号进程详情;
-d<文件号>列出占用该文件号的进程;
+d<目录>列出目录下被打开的文件;
+D<目录>递归列出目录下被打开的文件;
-n<目录>列出使用NFS的文件;
-i<条件>列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号>列出指定进程号所打开的文件;
-u列出UID号进程详情;
-h显示帮助信息;
-v显示版本信息。

常用方式: 

#列出所有打开的文件:
lsof
备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位# 查看谁正在使用某个文件
lsof   /filepath/file#递归查看某个目录的文件信息
lsof +D /filepath/filepath2/
备注: 使用了+D,对应目录下的所有子目录和文件都会被列出# 比使用+D选项,遍历查看某个目录的所有文件信息 的方法
lsof | grep ‘/filepath/filepath2/’# 列出某个用户打开的文件信息
lsof  -u username
备注: -u 选项,u其实是user的缩写# 列出某个程序所打开的文件信息
lsof -c mysql
备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比第二种方法要少打几个字符了# 列出多个程序多打开的文件信息
lsof -c mysql -c apache# 列出某个用户以及某个程序所打开的文件信息
lsof -u test -c mysql# 列出除了某个用户外的被打开的文件信息
lsof   -u ^root
备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示# 通过某个进程号显示该进行打开的文件
lsof -p 1# 列出多个进程号对应的文件信息
lsof -p 123,456,789# 列出除了某个进程号,其他进程号所打开的文件信息
lsof -p ^1# 列出所有的网络连接
lsof -i# 列出所有tcp 网络连接信息
lsof  -i tcp# 列出所有udp网络连接信息
lsof  -i udp# 列出谁在使用某个端口
lsof -i :3306# 列出谁在使用某个特定的udp端口
lsof -i udp:55# 特定的tcp端口
lsof -i tcp:80# 列出某个用户的所有活跃的网络端口
lsof  -a -u test -i# 列出所有网络文件系统
lsof -N#域名socket文件
lsof -u#某个用户组所打开的文件信息
lsof -g 5555# 根据文件描述列出对应的文件信息
lsof -d description(like 2)# 根据文件描述范围列出文件信息
lsof -d 2-3

2,netstat -tunlp|grep 端口号

选项说明:
选项    功能
-n    拒绝显示别名,能显示数字的全部转化成数字
-l    仅列出有在listen(监听)的服务状态
-p    表示显示哪个进程在调用
-t      仅显示和tcp相关的
-u    仅显示和udp相关的


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部