在Linux系统中,网络端口的管理与监控是系统运维的重要环节,无论是排查服务异常、安全审计还是优化网络配置,掌握查看网络端口的方法都是必备技能,本文将详细介绍Linux系统中查看网络端口的多种命令及其使用场景,帮助读者全面掌握相关操作。

使用netstat命令查看网络端口
netstat是传统的网络工具,尽管在新版Linux中逐渐被ss替代,但仍因其广泛的兼容性和丰富的功能被许多用户使用。
基本语法与常用选项
netstat的基本语法为netstat [选项],常用选项包括:
-t:显示TCP端口-u:显示UDP端口-l:仅显示监听端口-n:以数字形式显示地址和端口,避免域名解析(提升速度)-p:显示进程ID和进程名称(需root权限)-a:显示所有端口(包括监听和非监听)
实用示例
-
查看所有监听端口
netstat -tuln
输出结果中,
Local Address列显示监听地址和端口,State列显示端口状态(如LISTEN表示正在监听)。 -
显示所有端口及进程信息
sudo netstat -tulpn
此命令会列出TCP、UDP的所有监听端口,并关联对应的进程ID和名称,便于快速定位占用端口的进程。
-
查看特定端口的连接状态
netstat -an | grep :80
通过
grep过滤特定端口(如80端口),可查看该端口的详细连接情况,包括本地和远程地址、状态等。
使用ss命令查看网络端口
ss是iproute2包中的工具,旨在替代netstat,具有更快的执行效率和更丰富的功能,在新版Linux发行版(如Ubuntu、CentOS 7+)中,ss已成为默认工具。
基本语法与常用选项
ss的基本语法为ss [选项],常用选项包括:

-t:TCP端口-u:UDP端口-l:仅显示监听端口-n:数字形式显示-p:显示进程信息-a:显示所有端口4或6:分别显示IPv4或IPv6端口
实用示例
-
查看所有监听端口
ss -tuln
输出格式与
netstat类似,但ss默认显示更多统计信息,如Netid(协议类型)、State(状态)、Local Address:Port等。 -
显示TCP端口及其进程
sudo ss -tulpn
此命令可清晰列出TCP端口对应的进程信息,对于排查端口占用问题非常高效。
-
查看ESTABLISHED状态的连接
ss -an | grep ESTABLISHED
通过过滤
ESTABLISHED状态,可查看当前活跃的网络连接,适用于分析网络流量和连接数。
使用lsof命令查看端口关联进程
lsof(List Open Files)是一个列出系统打开文件的工具,在Linux中,一切皆文件,网络端口也被视为文件,因此可通过lsof查看端口关联的进程。
基本语法与常用选项
lsof的基本语法为lsof [选项] [文件/端口],常用选项包括:
-i:显示网络文件(端口)-P:不显示端口号的名称(显示数字)-n:不解析主机名-t:仅显示进程ID
实用示例
-
查看指定端口占用的进程
sudo lsof -i :8080
输出结果包含进程ID、用户、命令、端口等信息,若端口未被占用,则无输出。

-
查看所有监听端口及其进程
sudo lsof -i -P -n | grep LISTEN
通过组合
-i、-P、-n选项,并过滤LISTEN状态,可快速获取所有监听端口的进程信息。
使用/proc文件系统查看端口信息
Linux的/proc文件系统是一个虚拟文件系统,包含系统运行的实时信息,通过读取/proc/net/目录下的文件,可直接查看网络端口和连接状态。
常用文件
/proc/net/tcp:TCP端口信息/proc/net/udp:UDP端口信息/proc/net/tcp6:IPv6 TCP端口信息/proc/net/udp6:IPv6 UDP端口信息
示例:查看TCP监听端口
cat /proc/net/tcp | grep "06" # 06表示LISTEN状态
输出结果为十六进制格式,需结合工具(如ss)或手动转换端口号(将十六进制端口号转换为十进制)。
端口状态解析
在查看端口时,理解常见状态至关重要:
- LISTEN:端口正在监听,等待连接请求(如HTTP服务器的80端口)。
- ESTABLISHED:连接已建立,数据传输中(如浏览器与服务器之间的连接)。
- TIME_WAIT:连接已关闭,但等待足够时间确保对方收到终止请求(常见于高并发场景)。
- CLOSED:端口未开放或连接已关闭。
常见问题排查
-
端口被占用如何处理?
- 使用
ss -tulpn或netstat -tulpn定位占用端口的进程ID。 - 通过
kill [PID]终止进程,或kill -9 [PID]强制终止(慎用)。
- 使用
-
端口无法访问?
- 检查端口是否处于
LISTEN状态:ss -tuln | grep :端口号。 - 确认防火墙(如iptables、firewalld)是否允许该端口访问。
- 检查服务是否正常运行(如
systemctl status 服务名)。
- 检查端口是否处于
Linux查看网络端口的工具各有特点:netstat经典稳定,ss高效现代,lsof专注于进程关联,/proc文件系统则提供底层信息,根据实际需求选择合适工具,并结合端口状态和防火墙配置,可有效解决网络端口相关问题,熟练掌握这些命令,将极大提升系统运维效率。



















