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/ 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM