CentOS7查看端口占用情况
CentOS7系统中,我们可以使用以下命令查看端口占用情况:
netstat -anp | grep LISTEN | grep -E "(tcp|udp)"
该命令的含义为:利用netstat命令显示所有网络连接情况,grep过滤出监听(LISTEN)状态的端口,并显示其进程ID(PID)和进程名。
例如:
$ netstat -anp | grep LISTEN | grep -E "(tcp|udp)"
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 914/sshd
tcp6 0 0 :::22 :::* LISTEN 914/sshd
tcp6 0 0 :::80 :::* LISTEN 1094/httpd
tcp6 0 0 :::443 :::* LISTEN 1094/httpd
udp 0 0 0.0.0.0:68 0.0.0.0:* 771/dhclient
上述输出结果的意思是:22端口(SSH)占用了进程ID为914的sshd进程;80和443端口占用了进程ID为1094的httpd进程。
CentOS7查看端口状态
通过netstat命令,我们可以查看端口的监听状态,主要有以下几种:
- LISTEN:正在等待传入连接请求;
- ESTABLISHED:正常数据传输状态;
- TIME_WAIT:连接成功关闭,等待套接字关闭的时间。
我们可以使用以下命令查看指定端口的状态:
netstat -anp | grep 端口号
例如,查看端口80的状态:
$ netstat -anp | grep 80
tcp6 0 0 :::80 :::* LISTEN 1094/httpd
上述输出结果中,LISTEN状态表示端口正在等待传入连接请求。
CentOS7查看端口
可以使用nmap命令进行扫描。
使用以下命令进行扫描,查看目标服务器的端口情况:
nmap -sT -O localhost
上述命令中,-sT参数表示使用TCP进行扫描,-O参数表示识别目标操作系统。
例如,查看本地服务器的端口情况:
$ nmap -sT -O localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2021-05-13 18:39 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000076s latency).
Not shown: 992 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
631/tcp open ipp
3306/tcp open mysql
6081/tcp open nqs
8000/tcp open http-alt
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
上述输出结果中,open状态表示相应的端口已经打开。
CentOS7查看端口进程
我们可以使用lsof命令查看指定端口的进程信息。
使用以下命令查看80端口的进程信息:
lsof -i :80
例如:
$ lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1094 root 4u IPv6 13791 0t0 TCP *:http (LISTEN)
httpd 1096 apache 4u IPv6 13791 0t0 TCP *:http (LISTEN)
httpd 1097 apache 4u IPv6 13791 0t0 TCP *:http (LISTEN)
httpd 1098 apache 4u IPv6 13791 0t0 TCP *:http (LISTEN)
httpd 1099 apache 4u IPv6 13791 0t0 TCP *:http (LISTEN)
httpd 1100 apache 4u IPv6 13791 0t0 TCP *:http (LISTEN)
上述输出结果中,第二列为进程ID(PID),第三列为用户,第七列为端口信息。
CentOS7查看端口流量
我们可以使用iftop命令查看指定端口的流量情况。
使用以下命令查看80端口的流量情况:
sudo iftop -f "port 80"
例如:
$ sudo iftop -f "port 80"
interface: ens33
IP address: 192.168.38.128/24
MAC address: 00:0c:29:43:93:25 (VMware, Inc.)
Started at 2021-May-13 18:36:13 CST (0.0 s)
[...]
---------------------------------------------------------------------------------------------
192.168.38.128 => 173.194.38.137 8.74Mb 10.3Mb 11.0Mb
<= 0b 0b 0b
---------------------------------------------------------------------------------------------
1 host(s) displayed.
上述输出结果中,第一列为源IP地址,第三列为目的IP地址,第四列为上传流量,第五列为下载流量。
CentOS7查看端口占用
我们还可以使用fuser命令查看指定端口的进程占用情况。
使用以下命令查看80端口的进程占用情况:
sudo fuser 80/tcp
例如:
$ sudo fuser 80/tcp
80/tcp: 1094
上述输出结果中,1094为进程ID。