linux下查看指定进程的所有连接信息(转)
定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息。通常查找某个端口的连接信息使用 ss 或者 netstat 可以轻松拿到,如果是主动与别的机器建立的连接信息则可以通过 lsof 命令来获得。
例如我想要查看进程 frps
当前的所有连接信息,先获得进程的 pid:
ps -ef|grep frps
结果为:
wcl 4721 1 0 10:27 ? 00:00:01 ./frps
可以看到进程 pid 为 4721,之后通过 lsof 命令查看所有 TCP 连接信息:
lsof -p 4721 -nP | grep TCP
显示结果为:
frps 4721 wcl 4u IPv6 117051764 0t0 TCP *:7000 (LISTEN) frps 4721 wcl 6u IPv6 117051765 0t0 TCP *:7003 (LISTEN) frps 4721 wcl 7u IPv6 117092563 0t0 TCP 139.129.11.120:7000->116.231.70.223:61545 (ESTABLISHED) frps 4721 wcl 8u IPv6 117092565 0t0 TCP *:6000 (LISTEN) frps 4721 wcl 9u IPv6 117334426 0t0 TCP 139.129.11.120:7000->116.237.93.230:64898 (ESTABLISHED) frps 4721 wcl 10u IPv6 117053538 0t0 TCP 139.129.11.120:7000->115.231.20.123:41297 (ESTABLISHED) frps 4721 wcl 11u IPv6 117053540 0t0 TCP *:6005 (LISTEN) frps 4721 wcl 12u IPv6 117334428 0t0 TCP *:6004 (LISTEN)
从 lsof 的输出结果中可以清楚的看到 frps 进程监听了 5 个端口,并且在 7000 端口上建立了 3 个连接,连接两端的 ip 信息也都可以查到。
lsof 的 -nP 参数用于将 ip 地址和端口号显示为正常的数值类型,否则可能会用别名表示。
作者:fatedier
本文出处:http://blog.fatedier.com/2016/07/18/stat-all-connection-info-of-special-process-in-linux/
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2018-05-20 包管理和环境管理软件Anaconda
2017-05-20 startActivity启动过程分析(转)
2017-05-20 进程篇—进程整理(转)