Linux如何查看端口?
- Linux
- 2025-06-07
- 7
Linux中如何查看端口:全面指南
在Linux系统中,端口是网络通信的关键入口,无论是排查服务故障、检查安全风险,还是优化服务器性能,掌握查看端口的技能都至关重要,以下将详细介绍多种查看端口的方法,涵盖基础命令、高级工具及实用技巧。
查看本机监听的端口
以下命令需root权限才能获取完整信息(命令前加 sudo)。
-
netstat 命令(经典工具,适合大多数系统)
查看所有监听端口:
netstat -tuln- -t:显示TCP端口
- -u:显示UDP端口
- -l:仅列出监听端口
- -n:禁用域名解析(显示IP和端口号)
输出示例: 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
-
ss 命令(netstat的现代替代,速度更快)
查看监听端口:
ss -tuln输出格式与 netstat 类似,但支持更多过滤选项(如 ss -tuln sport = :80 过滤80端口)。

-
lsof 命令(查看进程占用的端口)
列出所有监听端口的进程:
lsof -i -P -n | grep LISTEN- -i:显示网络连接
- -P -n:禁止端口别名和域名解析
输出示例: nginx 1234 root 6u IPv4 0xab1c 0t0 TCP *:80 (LISTEN)
检查远程端口是否开放
验证目标IP的端口连通性:
-
telnet 命令(基础测试工具)
测试远程主机的80端口:
telnet 192.168.1.100 80
- 连接成功:显示空白或服务标识(如HTTP响应头)
- 连接失败:返回 Connection refused 或超时
-
nc(netcat)(网络瑞士军刀)
快速测试端口:
nc -zv 192.168.1.100 22- -z:只扫描不发送数据
- -v:显示详细结果
输出:
Connection to 192.168.1.100 22 port [tcp/ssh] succeeded!
-
nmap 工具(专业级扫描)
扫描目标主机的1-1000端口:
nmap -sT -p 1-1000 192.168.1.100- -sT:TCP连接扫描
- -p:指定端口范围
输出示例: PORT STATE SERVICE 22/tcp open ssh 80/tcp open http
查看端口与服务的映射关系
端口号对应的服务名称通常定义在 /etc/services 文件中:
cat /etc/services | grep 80
输出:

http 80/tcp www # World Wide Web
特殊场景处理技巧
-
检查端口占用进程
查找占用80端口的进程:
lsof -i :80 # 或 ss -tulnp | grep ":80"
-
监听端口实时变化
动态监控端口状态(每2秒刷新):
-
防火墙干扰排查
若端口监听正常但无法访问,检查防火墙规则:
iptables -L -n -v # 查看iptables规则 firewall-cmd --list-ports # Firewalld管理 - 日常检查:ss -tuln + lsof -i :端口号
- 远程探测:nc -zv(简单测试)或 nmap(深度扫描)
- 避免在公有网络使用 nmap 扫描他人主机,可能触发安全警报。
- 生产环境中,建议通过 基于密钥的SSH 管理服务器,关闭不必要的端口。
- 定期使用 netstat -antp 检查异常连接,防范入侵行为。
方法对比与推荐
| 命令/工具 | 最佳场景 | 优点 | 缺点 |
|---|---|---|---|
| netstat | 兼容旧系统 | 无需额外安装 | 新系统可能被淘汰 |
| ss | 快速查看监听端口 | 速度快,资源占用低 | 参数较复杂 |
| lsof | 定位进程占用 | 显示进程和文件详情 | 部分系统需手动安装 |
| nmap | 扫描远程主机端口 | 功能全面,支持高级扫描 | 需安装,部分扫描需root |
| telnet/nc | 快速测试端口连通性 | 简单直接 | 无状态分析能力 |
推荐选择:
安全提示
通过以上方法,您可全面掌握Linux系统中的端口状态,根据需求选择工具组合,即可高效完成网络监控、故障排查及安全加固任务。
引用说明: 基于Linux官方文档(man pages)及常见运维实践,参考工具包括iproute2套件、nmap官方指南及net-tools手册。