怎样查看Linux端口命令
- Linux
- 2025-06-12
- 10
查看Linux端口常用命令: netstat -tuln显示监听端口, ss -tuln更高效替代, lsof -i :端口号查指定端口进程, nmap localhost扫描本机开放端口。
使用 netstat 命令(经典工具)
netstat 是传统网络工具,可显示端口状态和连接信息:
# 查看所有监听端口(TCP/UDP) sudo netstat -tuln # 查看所有活动连接(含进程名) sudo netstat -tulnp
- 参数解析:
- -t:TCP端口
- -u:UDP端口
- -l:仅显示监听端口
- -n:以数字形式显示端口(不解析服务名)
- -p:显示关联进程(需sudo权限)
- 输出示例: Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
提示:若系统未安装,可通过 sudo apt install net-tools(Debian系)或 sudo yum install net-tools(RHEL系)安装。
使用 ss 命令(推荐替代方案)
ss(Socket Statistics)是netstat的现代替代品,速度更快、功能更强:

- 参数解析:
- -t/-u:TCP/UDP协议
- -l:监听状态
- -n:数字格式
- sport:源端口过滤
- 优势:
直接读取内核数据,执行效率比netstat高数倍。
使用 lsof 命令(进程级分析)
lsof(List Open Files)可精确关联进程与端口:
# 查看所有监听端口及进程 sudo lsof -i -P -n | grep LISTEN # 检查指定端口占用(如3306) sudo lsof -i :3306
- 参数解析:
- -i:网络连接
- -P:禁用端口名解析(显示数字端口)
- -n:禁用主机名解析(显示IP)
- 输出示例: mysqld 789 mysql 33u IPv6 0xabcd 0t0 TCP *:3306 (LISTEN)
使用 nmap 扫描端口(安全检测)
nmap 用于扫描本地或远程主机的开放端口:
- 参数解析:
- -sT:TCP连接扫描
- -p-:扫描1-65535全端口
- -F:快速模式(仅扫描100个常用端口)
️ 注意:扫描远程主机需获得授权,避免触发安全警报。
查看 /etc/services 文件(端口与协议映射)
该文件记录了标准端口对应的服务名称:
grep 'http' /etc/services
输出示例:

http 80/tcp www # World Wide Web HTTP https 443/tcp # HTTP over TLS
适用于快速查询已知服务的默认端口。
注意事项
- 权限要求:
netstat、ss、lsof 查看进程信息需 sudo 权限;普通用户可查看无进程绑定的端口。
- 工具安装:
- nmap:sudo apt install nmap 或 sudo yum install nmap
- lsof:多数系统预装,未安装时执行 sudo apt install lsof
- 防火墙干扰:
若端口无响应,检查防火墙状态: sudo ufw status # Ubuntu防火墙 sudo firewall-cmd --list-ports # CentOS防火墙
方法对比与选择建议
| 场景 | 推荐工具 | 原因 |
|---|---|---|
| 快速检查监听端口 | ss | 执行速度快,输出简洁 |
| 排查端口占用进程 | lsof | 进程关联信息最精准 |
| 全端口扫描与安全检测 | nmap | 支持高级扫描策略 |
| 兼容旧系统 | netstat | 无需安装新工具 |
总结
- 日常运维首选 ss + lsof 组合,兼顾效率与细节。
- 定期使用 nmap 扫描可强化服务器安全。
- 掌握多工具交叉验证,避免单一命令的局限性。
本文基于Linux内核文档及以下实践资源整理:
- Linux man pages
- Nmap官方指南:nmap.org/book/man.html
- Ubuntu Server安全手册(端口管理章节)
