netstat 顯示連接埠號碼而不是進程名稱

netstat 顯示連接埠號碼而不是進程名稱

我想查看哪個端口,例如 postgresql 正在偵聽,所以我使用:

netstat -l

但這是想變得聰明並列印進程名稱而不是連接埠:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:postgresql    *:*                     LISTEN     
tcp        0      0 *:31416                 *:*                     LISTEN   

如何使用 netstat 確定任何進程正在偵聽哪個連接埠?

答案1

netstat正在將(預設)連接埠轉換為服務名稱,它從/etc/services檔案中取得此對應。

因此,您可以從以下位置取得連接埠/etc/services

grep '^postgresql' /etc/services

或更好地新增-n選項以netstat防止任何(主機、連接埠、主機名稱)解析並以數位形式發布輸出:

netstat -nl

-t您可以透過新增僅顯示偵聽 TCP 套接字的選項來限制搜尋介面(-u對於 UDP,-x對於 UNIX 網域套接字也類似):

netstat -nlt

您還可以對結果使用任何標準文字處理工具來僅獲得所需的內容。

相關內容