3 種 Linux 查看 port 被程式佔用的方法

Linux 下查看那個 TCP port 被佔用很實用, 以下列出 3 種在 Linux 下查看那些 port 已經被佔用, 及那些程式佔用這些 port 的方法。
Linux 查到 TCP Port 有開啟, 但是不知道是什麼程式佔用的, 要怎麼查出是被哪隻程式使用呢?

註: netstat -tln # 可以看到有哪些 IP:Port 開啟

1. lsof 指令

RHEL 及 CentOS 預設沒有安裝 lsof, 執行以下指令用 yum 安裝:

# yum install lsof

安裝好後, 使用方法如下:

$ lsof -i -P -n | grep LISTEN

要查看某一個 port 是否被佔用, 在 grep 後面加上 port 即可:

$ lsof -i -P -n | grep :80

2. netstat 指令

用 netstat 的好處是多數系統預設已經安裝好, 使用方法如下:


$ netstat -tulpn | grep LISTEN

查詢 port 80 的語法:

$ netstat -tulpn | grep :80

3. nmap 指令

RHEL 及 CentOS 預設沒有安裝 nmap, 執行以下指令用 yum 安裝:

# yum install nmap

安裝好後, 使用方法如下:

$ sudo nmap -sT -O localhost

輸出類似這樣的結果:

Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 990 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
89/tcp open su-mit-tg
110/tcp open pop3
143/tcp open imap
587/tcp open submission
783/tcp open spamassassin
993/tcp open imaps
995/tcp open pop3s


Leave a Reply