在 Linux 系统中,可以使用 netstat
命令来查看当前哪些端口正在被占用。netstat
是一个功能强大的网络工具,可以显示与操作系统相关的各种网络状态信息,包括协议、端口、会话状态、IP 地址等。 netstat
命令与 Linux 系统发行版和版本有关,下面提供两种常见的用法:
- 使用
netstat
命令查看所有端口占用情况
netstat -tunlp
输出内容示例:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::22 :::* LISTEN 1285/sshd
tcp6 0 0 :::80 :::* LISTEN 1318/httpd
tcp6 0 0 ::1:25 :::* LISTEN 1200/master
tcp6 0 0 :::443 :::* LISTEN 1318/httpd
udp 0 0 0.0.0.0:111 0.0.0.0:* 447/rpcbind
udp 0 0 0.0.0.0:40428 0.0.0.0:* 328/avahi-daemon:
- 使用
lsof
命令查看端口占用情况
lsof
是一条列出已打开的文件的命令,同时也可以列出当前所有已经打开运行的端口。
lsof -i :端口号
例如:
lsof -i :80
输出内容示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 1318 root 4u IPv6 18148 0t0 TCP *:http (LISTEN)
httpd 1428 apache 4u IPv6 18148 0t0 TCP *:http (LISTEN)
httpd 1429 apache 4u IPv6 18148 0t0 TCP *:http (LISTEN)
httpd 1430 apache 4u IPv6 18148 0t0 TCP *:http (LISTEN)
httpd 1431 apache 4u IPv6 18148 0t0 TCP *:http (LISTEN)
其中,-i
参数用于指定查询网络文件类型的文件名或描述。在上述示例中,使用 lsof -i :80
命令可以查看端口 80 的占用情况。输出结果中,COMMAND
表示占用端口的进程名,PID
表示占用端口的进程 ID。