Tcp
如何確定給定程序(linux)正在打開哪些 TCP/UDP 埠?
我知道如何使用 lsof 或 netstat 做相反的事情(找出打開給定埠的程序),但對 Google 的廣泛研究並沒有幫助我解決相反的問題。
我知道我可以將“netstat -np”與一些 grep 和 sed 結合使用,但它看起來很老套。是否有“lsof -i tcp:80”的反轉版本可以顯示給定程序打開的所有本地埠?
查看手冊頁,您會發現可以使用
-p
選項指定程序 ID,以及將-i
顯示限制為 Internet 域套接字的選項(-i4
僅適用於 ipv4 和-i6
僅適用於 ipv6)。所以如果你把它們串起來…lsof -p <pid> -i
…你得到的並不完全是你想要的,因為預設情況下
lsof
會或一起你的請求。所以添加-a
(和) 標誌…lsof -p <pid> -a -i
…您將獲得由指定程序 ID 打開的 IPv4 套接字列表。
我知道我可以
netstat -np
結合一些 grep 和 sed 使用,但它看起來很老套。這個怎麼樣:
# netstat --inet -nlp | grep <processname>
是否有相反的版本
lsof -i tcp:80
會顯示給定程序打開的所有本地埠?# lsof -c <processname> | grep LISTEN