上一篇
Linux如何查看开放端口
- Linux
- 2025-06-08
- 7
在Linux中查看本机端口常用命令:,1. netstat -tunlp:显示TCP/UDP端口及进程信息,2. ss -tuln:更快速的套接字查看工具,3. lsof -i :端口号:查看指定端口占用情况,4. nmap localhost:扫描本地开放端口
netstat 命令(经典工具,适用多数系统)
安装与基础命令:
sudo apt install net-tools # Debian/Ubuntu sudo yum install net-tools # CentOS/RHEL netstat -tunlp | grep LISTEN # 查看监听中的端口
参数解析:
- -t:TCP协议
- -u:UDP协议
- -n:数字形式显示(不解析域名)
- -l:仅监听端口
- -p:显示进程名/PID(需sudo权限)
输出示例:
tcp6 0 0 :::22 :::* LISTEN 1234/sshd
表示SSH进程(PID 1234)正在监听IPv6的22端口。
ss 命令(替代netstat,更高效)
推荐场景:现代Linux发行版(无需安装)
ss -tulpn # 功能等价于netstat,性能更优
关键参数:
- -s:统计摘要(查看连接状态分布)
- state established:过滤已建立连接
示例:
ss -tn src :80 # 检查80端口的TCP连接
lsof 命令(查看进程与端口的关联)
安装与使用:
sudo apt install lsof # 安装 sudo lsof -i :22 # 查看22端口的进程
常用语法:
- lsof -i tcp:443:指定协议和端口
- lsof -i -P -n:禁用域名/服务名解析(加速输出)
输出解读: sshd 1234 root 3u IPv4 28771 0t0 TCP *:22 (LISTEN)
进程名、PID、用户及端口状态一目了然。

nmap 命令(扫描本地开放端口)
适用场景:深度检测隐藏端口
sudo apt install nmap # 安装 sudo nmap -sT -p- 127.0.0.1 # 扫描本地所有TCP端口
参数说明:
- -sT:TCP全连接扫描
- -p 1-1000:指定端口范围
- -O:探测操作系统类型
方法对比与选择建议
| 工具 | 优势 | 适用场景 |
|---|---|---|
| netstat | 兼容性强 | 旧系统基础检查 |
| ss | 速度快、资源占用低 | 现代系统日常运维 |
| lsof | 进程关联信息详细 | 排查端口占用问题 |
| nmap | 扫描全面、支持高级探测 | 安全审计与深度检测 |
注意事项
- 权限要求:查看进程信息需sudo或root权限
- 过滤技巧:
- 组合grep:ss -tuln | grep 443
- 排除IPv6:netstat -tunlp | grep -v 'tcp6'
- 端口状态解释:
- LISTEN:服务正在监听
- ESTABLISHED:活跃连接
- TIME_WAIT:连接关闭中
定期检查端口可提升系统安全性,避免未授权服务运行,建议结合防火墙(如ufw)管理访问控制。
引用说明:
- 命令手册:man netstat, man ss, man lsof, man nmap
- 权威指南:《Linux Network Administrator’s Guide》(O’Reilly)
- 协议标准:RFC 793 (TCP), RFC 768 (UDP)
基于Linux核心文档及实践验证,适用于Debian、Ubuntu、CentOS等主流发行版。
