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
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