Ubuntu

netstat 顯示埠號而不是程序名

  • May 28, 2017

我想查看哪個埠,例如 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 確定任何程序正在偵聽哪個埠?

netstat正在將(預設)埠轉換為服務名稱,它從/etc/services文件中獲取此映射。

因此,您可以從以下位置獲取埠/etc/services

grep '^postgresql' /etc/services

或者更好地添加-n選項以netstat防止任何(主機、埠、主機名)解析並以數字形式發布輸出:

netstat -nl

-t您可以通過添加僅顯示偵聽 TCP 套接字的選項來限制搜尋界面(類似於-uUDP,-x對於 UNIX 域套接字):

netstat -nlt

您還可以在結果上使用任何標准文本處理工具來僅獲取所需的內容。

引用自:https://unix.stackexchange.com/questions/367695