上一篇
怎样查看Linux端口命令
- Linux
- 2025-06-12
- 3545
查看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的现代替代品,速度更快、功能更强:
# 查看所有监听端口 sudo ss -tuln # 查看指定端口(如80端口) sudo ss -tuln sport = :80
- 参数解析:
-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 用于扫描本地或远程主机的开放端口:
# 扫描本机所有端口 sudo nmap -sT -p- 127.0.0.1 # 快速扫描常用端口 sudo nmap -F localhost
- 参数解析:
-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 nmaplsof:多数系统预装,未安装时执行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安全手册(端口管理章节)
