本文目录导读:

查看本机当前开放的端口,最常用的方法取决于你使用的操作系统(Windows、macOS 或 Linux),以下是针对不同系统的详细命令和方法:
Windows 系统
Windows 下最推荐使用 netstat 命令,这是系统自带的工具。
使用 netstat 命令
-
打开命令提示符或 PowerShell:按
Win + R,输入cmd并回车;或者在开始菜单搜索“命令提示符”。 -
输入命令:
netstat -ano
参数解释:
-a:显示所有连接和监听端口。-n:以数字形式显示地址和端口号(不尝试解析名称,速度更快)。-o:显示关联的进程 ID(PID)。
-
解读输出: 你会看到类似下面的表格:
协议 本地地址 外部地址 状态 PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 1234 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 5678 TCP 192.168.1.5:5040 0.0.0.0:0 LISTENING 9012- 协议:TCP 或 UDP。
- 本地地址:
0.0.0:135表示该端口正在监听所有网络接口(包括本机、局域网和互联网)。0.0.1:135表示该端口仅监听本机(loopback),外部无法访问。168.1.5:5040表示该端口监听在特定 IP 地址上。
- 状态:
LISTENING:这是开放端口,正在等待连接。ESTABLISHED:已建立的连接(不是监听状态)。CLOSE_WAIT、TIME_WAIT等:连接关闭过程中的状态。
- PID:占用该端口的进程 ID,如果你想知道是哪个程序,可以在任务管理器(Ctrl+Shift+Esc)的“详细信息”标签页中按 PID 查找。
使用 netstat 仅显示监听端口
netstat -ano | findstr LISTENING
这会只显示处于监听状态的端口,输出更精简。
使用 Get-NetTCPConnection (PowerShell)
如果你偏好 PowerShell,这个命令显示更友好:
Get-NetTCPConnection -State Listen
macOS 或 Linux 系统
在 macOS 和 Linux 上,可以使用 netstat、ss 或 lsof 命令。
使用 netstat(通用,但部分系统需要安装)
sudo netstat -tlnp
-t:只显示 TCP 端口。-l:只显示监听状态的端口(Listening)。-n:以数字形式显示地址和端口。-p:显示进程信息(需要sudo权限)。- 注意:在 macOS 上,
netstat的-p参数略有不同,通常使用-v或-p <protocol>,但更推荐使用下面的lsof或ss。
使用 ss(Linux 推荐,现代系统首选)
ss 是 netstat 的现代替代品,速度更快,信息更全。
sudo ss -tlnp
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=789,fd=3))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=789,fd=4))
Local Address:Port中的0.0.0:22表示监听所有 IPv4 接口的 22 端口(SSH)。[::]:22表示监听 IPv6 接口的 22 端口。Process显示占用进程名和 PID。
使用 lsof(macOS 和 Linux 通用,功能强大)
lsof 可以列出所有打开的文件,包括网络端口。
sudo lsof -i -P -n | grep LISTEN
-i:显示网络相关的文件。-P:以数字形式显示端口号(不解析服务名)。-n:以数字形式显示主机名(不解析 DNS)。grep LISTEN:过滤出监听状态的连接。
如果你只想看特定端口,80 端口:
sudo lsof -i :80 -P -n
总结表格:快速查找开放端口
| 操作系统 | 推荐命令 | 说明 |
|---|---|---|
| Windows | netstat -ano \| findstr LISTENING |
显示所有监听端口及 PID |
| Windows | Get-NetTCPConnection -State Listen |
PowerShell 命令,更直观 |
| Linux | sudo ss -tlnp |
推荐,速度快,信息完整 |
| Linux/macOS | sudo lsof -i -P -n \| grep LISTEN |
通用,功能强大 |
| macOS | sudo lsof -i -P -n \| grep LISTEN |
首选方法 |
重要提示:
- 权限:在 Linux 和 macOS 上,查看本机端口通常不需要
sudo,但为了查看进程信息(PID/程序名),通常需要sudo,在 Windows 上,直接运行命令即可,但部分端口(如 1-1024)可能需要管理员权限才能显示完整信息。 - 安全性:开放端口是网络攻击的潜在入口,如果你看到不熟悉的端口正在 LISTENING,建议用任务管理器(Windows)或
ps aux(Linux/macOS)查看对应的进程,确认其是否属于合法程序,如果有可疑端口,请进一步排查。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。