在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
参数含义与netstat
相同。
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 5 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 *:80 *:*
lsof
lsof
(List Open Files)可以列出当前系统打开的所有文件,包括网络端口。
命令示例:
lsof -i -P -n | grep LISTEN
-i
:显示网络文件。-P
:不将端口号转换为服务名。-n
:不将IP地址转换为主机名。输出示例:
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
nginx 5678 www-data 6u IPv4 23456 0t0 TCP *:80 (LISTEN)
现象:尝试启动服务时提示端口已被占用。 解决方法:
sudo lsof -i :端口号
找到占用端口的进程ID(PID),然后使用kill
命令结束该进程:
sudo kill -9 PID
现象:执行查看端口命令时无任何输出或提示权限不足。 解决方法:
通过以上方法,可以有效地在Linux环境中查看和管理端口使用情况。
领取专属 10元无门槛券
手把手带您无忧上云