本文目录导读:

查看当前计算机开放的端口,可以根据你使用的操作系统选择以下方法:
Windows 系统
Windows 系统主要通过命令行工具查看。
方法 1:使用 netstat 命令(最常用、最详细)
-
按下
Win + R键,输入cmd,然后按Enter打开命令提示符。 -
在命令行中输入以下命令并按
Enter:netstat -ano
- 参数解释:
-a:显示所有连接和监听端口。-n:以数字形式显示地址和端口号(不尝试解析域名,速度更快)。-o:显示与每个连接相关的进程 ID(PID)。
- 参数解释:
-
查看结果:
- 关注 状态(State) 列为
LISTENING(监听中)的记录。 - 本地地址(Local Address) 列显示
IP:端口号。0.0.0:135表示该计算机的 135 端口正在监听。 - PID 列显示占用该端口的进程 ID。
- 关注 状态(State) 列为
方法 2:通过 PID 查看具体程序
看到 PID 后,如果想知道是哪个程序占用了端口:
-
在同一个命令提示符中输入:
tasklist | findstr <PID>
(将
<PID>替换为刚才看到的数字,tasklist | findstr 1234) -
或者直接打开任务管理器(
Ctrl + Shift + Esc),切换到“详细信息”选项卡,找到对应的 PID 即可看到程序名称。
方法 3:使用 netstat 的增强命令(推荐,更直观)
如果只想看所有正在监听的端口,可以使用:
netstat -ano | findstr LISTENING
Linux / macOS 系统
Linux 和 macOS 命令类似,但有一些差异。
方法 1:使用 netstat
-
Linux:
sudo netstat -tulnp
-t:TCP 端口-u:UDP 端口-l:只显示监听状态-n:以数字显示-p:显示程序名称和 PID(需要 sudo 权限)
-
macOS:
sudo netstat -anvp tcp | grep LISTEN
macOS 的
netstat参数略有不同,推荐使用下面的lsof。
方法 2:使用 ss(Linux 推荐,更快更现代)
比 netstat 更高效,许多新 Linux 发行版默认推荐:
sudo ss -tulnp
输出含义与 netstat 类似。
方法 3:使用 lsof(Linux / macOS 通用)
lsof 非常强大,可以列出所有打开的文件(包括网络端口)。
-
查看所有监听端口:
sudo lsof -i -P -n | grep LISTEN
-i:列出网络相关的文件-P:不将端口号转换为服务名(直接显示数字)-n:不解析主机名
-
查看特定端口(如 80 端口):
sudo lsof -i :80
注意事项
- 防火墙影响:
netstat和ss显示的是本机系统内正在监听的端口,如果防火墙(如 Windows Defender 防火墙、iptables)阻止了外部访问,这些端口虽然显示为LISTENING,但外部仍然无法连接。 - 权限:查看其他用户(包括 root/管理员)的进程时,通常需要管理员权限(Windows 以管理员身份运行 cmd,Linux/macOS 加
sudo),否则可能看不到完整信息。 - 临时 vs 固定:有些端口是服务启动后临时监听的(如连接蓝牙、打印机),有些则是系统服务或已安装软件(如 Web 服务器、数据库)长期监听的,重启计算机可能改变端口开放情况。
总结对比
| 操作系统 | 推荐命令 | 特点 |
|---|---|---|
| Windows | netstat -ano \| findstr LISTENING |
系统自带,适合快速查看 |
| Linux | sudo ss -tulnp |
快速、现代、信息详细 |
| macOS | sudo lsof -i -P \| grep LISTEN |
直观显示程序名和 PID |
如果你发现自己电脑突然多出很多未知的监听端口(尤其是高端口号且不属于常见软件),建议检查一下是否有可疑进程(病毒、木马),可以使用杀毒软件或任务管理器进一步分析。