在Linux系统中,查看端口占用情况是一个常见的需求,通常用于诊断网络服务是否正常运行或排查端口冲突等问题。以下是查看Linux下端口占用情况的基础概念、方法及其应用场景。
netstat
命令netstat
是一个强大的网络统计工具,可以显示网络连接、路由表、接口统计等。
netstat -tuln
-t
:显示TCP连接。-u
:显示UDP连接。-l
:仅显示监听套接字。-n
:以数字形式显示地址和端口号。示例输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 0.0.0.0:123 0.0.0.0:*
ss
命令ss
是 netstat
的替代品,通常更快且更高效。
ss -tuln
示例输出:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:80 [::]:*
lsof
命令lsof
可以列出当前系统打开的文件,包括网络端口。
lsof -i :端口号
示例输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
原因:另一个进程已经在使用该端口。
解决方法:
lsof
或 netstat
查找占用端口的进程ID(PID)。kill
命令终止该进程。kill -9 PID
原因:缺乏详细的进程信息。
解决方法:
结合 lsof
和 ps
命令获取更多信息。
lsof -i :端口号 | grep LISTEN
ps -p PID -o pid,ppid,cmd,%mem,%cpu
通过这些方法,可以有效地查看和管理Linux系统中的端口占用情况,确保网络服务的正常运行。
领取专属 10元无门槛券
手把手带您无忧上云