linux查看3306是哪个进程占用,linux查看端口占用

发表于 2019-08-18 21:00:36 by 月小升

一、

例子

lsof -i:7000

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

frps 1249 root 3u IPv6 15992 0t0 TCP *:afs3-fileserver (LISTEN)

frps 1249 root 8u IPv6 31866 0t0 TCP iz2ze9n3z2fl9zj9hrv58vz:afs3-fileserver->181.118.50.55:49238 (ESTABLISHED)

端口被

# lsof -i:80

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

AliYunDun 1049 root 20u IPv4 13083 0t0 TCP iz2ze9n3z2fl9zj9hrv58vz:37170->100.100.30.25:http (ESTABLISHED)

nginx 1310 root 6u IPv4 16343 0t0 TCP *:http (LISTEN)

nginx 1311 nginx 6u IPv4 16343 0t0 TCP *:http (LISTEN)

nginx 1311 nginx 17u IPv4 526207 0t0 TCP iz2ze9n3z2fl9zj9hrv58vz:http->crawl-66-249-79-209.googlebot.com:38231 (ESTABLISHED)

nginx 1312 nginx 6u IPv4 16343 0t0 TCP *:http (LISTEN)

解释下LISTEN 和 ESTABLISHED的意义

1).LISTEN 端口启动后服务器的nginx对80端口首先处于侦听(LISTENING)状态。

2).ESTABLISHED 建立连接。表示两台机器正在80端口通信。

3).TIME_WAIT 我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。

4)CLOSE_WAIT 对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭

COMMAND:进程名称

PID:进程标识符

USER:进程所有者

FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd,txt等

TYPE:文件类型,如DIR,REG等

DEVICE:指定磁盘的名称

SIZE:文件的大小

NODE:索引节点(文件在磁盘上的标识)

NAME:打开文件的进程名称

lsof -i:80:查看80端口占用

lsof abc.txt:显示开启文件abc.txt的进程

lsof -c abc:显示abc进程现在打开的文件

lsof -d 4:显示使用fd为4的进程

lsof -i -U:显示所有打开的端口和UNIX domain文件

lsof -c -p 1234:列出进程号为1234的进程所打开的文件

lsof -g gid:显示归属gid的进程情况

lsof +d /usr/local/:显示目录下被进程开启的文件

lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长

二、 netstat 查看端口占用

netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

netstat 查看端口占用语法格式:

netstat -tunlp | grep 端口号

-t (tcp) 仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 拒绝显示别名,能显示数字的全部转化为数字

-l 仅列出在Listen(监听)的服务状态

-p 显示建立相关链接的程序名

例如查看 8000 端口的情况,使用以下命令:

netstat -tunlp | grep 8000

tcp6 0 0 :::7000 :::* LISTEN 1249/./

更多netstat查看端口占用的命令:

netstat -ntlp //查看当前所有tcp端口

netstat -ntulp | grep 80 //查看所有80端口使用情况

netstat -ntulp | grep 3306 //查看所有3306端口使用情况

netstat 实战如何查询一个服务占用的端口

1.查询squid占用的进程

ps aux|grep squid

root 10870 0.0 0.0 92644 3744 ? Ss 13:21 0:00 /usr/sbin/squid -f /etc/squid/squid.conf

squid 10872 0.0 0.4 106168 16084 ? S 13:21 0:00 (squid-1) -f /etc/squid/squid.conf

squid 10873 0.0 0.0 27436 1228 ? S 13:21 0:00 (logfile-daemon) /var/log/squid/access.log

root 10921 0.0 0.0 112680 740 pts/0 S+ 13:29 0:00 grep --color=auto squid

2.查看端口监听

netstat -nap | grep squid

tcp6 0 0 :::3128 :::* LISTEN 10872/(squid-1)

udp 0 0 0.0.0.0:37679 0.0.0.0:* 10872/(squid-1)

udp6 0 0 :::46994 :::* 10872/(squid-1)

unix 2 [ ] DGRAM 617223 10870/squid

unix 3 [ ] STREAM CONNECTED 618094 10872/(squid-1)

tcp在用3128 进程号为10872,对应了ps aux|grep squid 的第二条记录10872

判断squid占用了3128端口

netstat -nap | grep 3128

tcp6 0 0 :::3128 :::* LISTEN 10872/(squid-1)

三、fuser是查看某个文件被哪个进程占用的

fuser查看7000端口的进程占用情况

fuser 7500/tcp -v

USER PID ACCESS COMMAND

7500/tcp: root 1249 F.... frps

This entry was posted in Linux and tagged linux, 端口. Bookmark the permalink.

月小升QQ 2651044202, 技术交流QQ群 178491360

首发地址:月小升博客 – https://java-er.com/blog/linux-port-using/

无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值