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