定位某个进程的网络故障时常常须要用到的一个功能就是查找全部链接的信息。一般查找某个端口的链接信息使用 ss 或者 netstat 能够轻松拿到,若是是主动与别的机器创建的链接信息则能够经过 lsof 命令来得到。linux
例如我想要查看进程 frps
当前的全部链接信息,先得到进程的 pid:网络
ps -ef|grep frps
结果为:spa
wcl 4721 1 0 10:27 ? 00:00:01 ./frps
能够看到进程 pid 为 4721,以后经过 lsof 命令查看全部 TCP 链接信息:code
lsof -p 4721 -nP | grep TCP
显示结果为:blog
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 地址和端口号显示为正常的数值类型,不然可能会用别名表示。ip
做者:fatedier
本文出处:http://blog.fatedier.com/2016/07/18/stat-all-connection-info-of-special-process-in-linux/ ci