在Linux系统中,端口作为网络通信的核心接口,承载着服务监听与数据传输的重要功能。同一台服务器可通过单个IP地址配置多个端口,每个端口对应不同的网络服务。本文将系统介绍三种查看Linux端口使用情况的实用命令,帮助管理员快速掌握端口监控技巧。

Linux端口是操作系统为网络进程分配的通信标识符,范围从0到65535。其中:
0-1023:系统保留端口(需root权限)
1024-49151:注册端口
49152-65535:动态/私有端口
通过端口监控,管理员可以:
确认服务是否正常运行
排查端口冲突问题
检测异常连接
优化网络配置
虽然部分新发行版已默认移除,但通过安装net-tools包仍可使用:
bashsudo apt install net-tools # Debian/Ubuntusudo yum install net-tools # CentOS/RHEL常用参数组合:
bashnetstat -tulnp-t:显示TCP连接
-u:显示UDP连接
-l:仅监听端口
-n:数字格式显示
-p:显示进程信息
实战示例:
bash# 查找80端口占用情况netstat -tulnp | grep :80# 查看所有TCP监听端口netstat -tnlp作为netstat的升级版,ss具有以下优势:
性能提升3-10倍
支持更详细的过滤条件
显示更完整的连接状态
基础用法:
bashss -tulnp参数含义与netstat完全对应,输出格式更紧凑。
高级过滤:
bash# 查看SSH服务端口ss -tulnp | grep :22# 显示所有ESTABLISHED状态的TCP连接ss -tn state established基于"一切皆文件"的Linux哲学,lsof可查看所有打开的文件(包括网络连接):
安装命令:
bashsudo apt install lsof # Debian/Ubuntusudo yum install lsof # CentOS/RHEL典型用法:
bash# 查看特定端口lsof -i :3306# 按协议查看lsof -i TCP # 所有TCP连接lsof -i UDP # 所有UDP连接lsof -i :8080 # 精确匹配端口输出字段解析:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEmysqld 1234 mysql 12u IPv6 12345 0t0 TCP *:3306 (LISTEN)COMMAND:进程名称
PID:进程ID
USER:运行用户
FD:文件描述符
TYPE:连接类型
NAME:连接详情
推荐方案:
新系统优先使用ss
需要进程详细信息时使用lsof
兼容旧系统时使用netstat
结合grep过滤:
bashss -tulnp | grep -E nginx|apache持续监控:
bashwatch -n 1 "ss -tulnp"统计端口使用:
bashss -t | awk {print $5} | cut -d: -f2 | sort | uniq -c | sort -nr查看非标准端口服务:
bashss -tulnp | grep -v :22\|:80\|:443通过掌握这些端口监控技术,Linux管理员可以更高效地管理系统网络资源,及时发现并解决潜在问题。建议结合实际场景选择合适的工具组合,形成个性化的监控方案。