Linux 檢查佔用埠號進程

在 Linux 要檢查那一個進程 (process) 佔用特定埠號, 可以用 netstat 或 lsof 來做, 例如想列出所有開啟的埠號, 可以 netstat 指令:

# netstat -ntlp

假如只想輸出佔用埠號 80 的進程, 可以加上 grep 過濾:

# netstat -ntlp | grep :80
tcp   0   0 :::80   :::*   LISTEN   779/httpd

上面可以看到是 httpd 佔用埠號 80, 進程的 pid 是 779

除了用 netstat 外, 也可以用 lsof (List Open Files), losf 是非常實用的系統監控工具, 它可以列出進程開啟的檔案資料, 包括 pipe, socket, 目錄, 裝置等, 所以 lsof 一樣可以檢查埠號佔用進程, 例如檢查佔用埠號 80 指令是這樣:

# lsof -i tcp:80

輪出結果類似這樣:

可以看到佔用埠號 80 的進程是 httpd, 用戶是 root, pid 是 779, 而後面十幾行是 apache 的子進程。




Leave a Reply