📌  相关文章
📜  linux 获取端口使用情况 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:32:42.444000             🧑  作者: Mango

Linux 获取端口使用情况

为了监控和维护正在运行的服务器,了解端口的使用情况非常重要。在Linux上获取端口的使用情况是非常简单的,下面介绍几种方法。

命令行工具
netstat

可以使用 netstat 命令获取端口的使用情况。

netstat -tunlp

其中:

  • -t:表示 TCP。
  • -u:表示 UDP。
  • -n:表示不需要将IP地址和端口号转换成对应的域名和服务名。
  • -l:表示监听状态的端口。
  • -p:表示应用程序的 PID。

输出结果类似如下:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1242/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1344/master         
tcp6       0      0 :::80                   :::*                    LISTEN      1391/httpd          
tcp6       0      0 :::22                   :::*                    LISTEN      1242/sshd            
udp        0      0 0.0.0.0:68              0.0.0.0:*                           715/dhclient        
lsof

还可以使用 lsof 命令获取端口的使用情况。

lsof -nP -iTCP -sTCP:LISTEN

其中:

  • -n:表示不需要将IP地址和端口号转换成对应的域名和服务名。
  • -P:表示不需要转换端口号和协议名称。
  • -iTCP:表示过滤掉所有非 TCP 的连接。
  • -sTCP:LISTEN:表示只显示处于 Listening 监听状态的端口。

输出结果类似如下:

COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1242   root    3u  IPv4  10935      0t0  TCP *:22 (LISTEN)
sshd    1242   root    4u  IPv6  10946      0t0  TCP *:22 (LISTEN)
master  1344   root   13u  IPv4  11075      0t0  TCP 127.0.0.1:25 (LISTEN)
httpd   1391   apache  4u  IPv6  11415      0t0  TCP *:80 (LISTEN)
httpd   1398   apache  4u  IPv6  11415      0t0  TCP *:80 (LISTEN)
httpd   1399   apache  4u  IPv6  11415      0t0  TCP *:80 (LISTEN)
httpd   1400   apache  4u  IPv6  11415      0t0  TCP *:80 (LISTEN)
httpd   1401   apache  4u  IPv6  11415      0t0  TCP *:80 (LISTEN)
httpd   1402   apache  4u  IPv6  11415      0t0  TCP *:80 (LISTEN)
安装工具
nmap

nmap 是一个非常流行的端口扫描工具,也可以使用它来获取端口的使用情况。

nmap localhost

输出结果类似如下:

Starting Nmap 7.80 ( https://nmap.org ) at 2021-01-01 00:00 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000047s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
443/tcp  open  https
3000/tcp open  ppp
8080/tcp open  http-proxy
总结

本文介绍了三种获取端口使用情况的方法,其中命令行工具的使用是最为简单和方便的,只需要在终端输入命令即可,而安装工具则需要先安装才可使用。这里只列举了少量的命令和选项,可以自行查看命令的帮助文档以获取更详细的信息。