我想查看哪個端口,例如 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
您還可以對結果使用任何標準文字處理工具來僅獲得所需的內容。