Linux查看端口占用

记录,备忘……

 

1 使用 lsof -i:port

$ lsof -i:8082
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    6666  root   48u  IPv4 6541863      0t0  TCP *:irdmi (LISTEN)

可以看到8082是被java占用的。
另,对lsof输出列解释:

COMMAND:进程的名称 PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称

FD 列中的文件描述符cwd 值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改,txt 类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序。
其次数值表示应用程序的文件描述符,这是打开该文件时返回的一个整数。如上的最后一行文件/dev/initctl,其文件描述符为 10。u 表示该文件被打开并处于读取/写入模式,而不是只读 ® 或只写 (w) 模式。同时还有大写 的W 表示该应用程序具有对整个文件的写锁。该文件描述符用于确保每次只能打开一个应用程序实例。初始打开每个应用程序时,都具有三个文件描述符,从 0 到 2,分别表示标准输入、输出和错误流。所以大多数应用程序所打开的文件的 FD 都是从 3 开始。
与 FD 列相比,Type 列则比较直观。文件和目录分别称为 REG 和 DIR。而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。

 

 

2 使用 netstat -tunlp | grep port

$ netstat -tunlp | grep 8082
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp      0    0      0.0.0.0:8082            0.0.0.0:*              LISTEN      6666/java

另,对netstat参数解释:

    -t (tcp) 仅显示tcp相关选项
    -u (udp) 仅显示udp相关选项
    -n 拒绝显示别名,能显示数字的全部转化为数字
    -l 仅列出在Listen(监听)的服务状态
    -p 显示建立相关链接的程序名

另,对netstat输出解释:

tcp :代表传输协议为TCP
0.0.0.0:8082 :本地IP/Port信息
	1、0.0.0.0代表本机上可用的任意地址。 比如0.0.0.0:1234表示本机上所有地址的1234端口,这样多ip计算机就不用重复显示了
	2、0.0.0.0为默认路由,即要到达不在路由表里面的网段的包都走0.0.0.0这条规则
0.0.0.0:* :目的地址IP/Port信息
	1、此程序只作了绑定套接字操作,没有发送数据到目的地址,也就是没有目的地址。(此时可以是客户端已经发起并建立了与本服务器的通讯,也可以是客户端没有开启。总之是服务器没有向外部发出数据)
	2、有目的地址,且发送了数据,但是由于是UDP传输,没有用connect函数建立两端连接。

 

 

 

 

 

 

 

 

参考:
https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316599.html
https://www.cnblogs.com/wangtao1993/p/6144183.html

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值