直接运行netsh http show servicestate可查看http.sys当前监听配置与状态,包括registered urls、url groups和ssl绑定,需管理员权限;普通用户执行会报“拒绝访问”。
直接运行 netsh http show servicestate 可以查看 windows 系统中 http 服务(即 http.sys)当前的监听配置和运行状态,包括已注册的 url 前缀、共享端口、ssl 绑定、请求队列等关键信息。这个命令需要管理员权限才能执行。
需要以管理员身份运行命令提示符或 PowerShell
普通用户权限下该命令会报错(如“拒绝访问”或无输出)。请按以下步骤操作:
- 点击“开始” → 搜索“cmd”或“PowerShell”
- 右键选择“以管理员身份运行”
- 输入并执行:netsh http show servicestate
重点关注输出中的三个核心部分
命令结果分为多个区块,实用信息集中在:
-
Registered URLs:列出所有已注册到 HTTP.sys 的 URL 前缀(如
http://+:80/、https://*:443/),含绑定的 IP/端口、用户权限、是否共享端口 -
URL Groups:每个 URL 前缀对应一个 URL Group,显示其 ID、状态(Active/Inactive)、请求队列名称(如
Request Queue Name: DefaultAppPool) - SSL Certificate Bindings:列出 HTTPS 绑定的 IP:端口、证书哈希、应用 ID(用于验证证书是否正确绑定)
常见问题排查提示
若发现端口未监听或应用无法访问 Web,可结合以下检查:
- 确认目标端口(如 80 或 443)是否出现在 Registered URLs 中;若没有,说明没有应用调用
HttpSetRequestQueueProperty注册监听 - 检查 URL Groups 中对应项的状态是否为 Active;若为 Inactive,可能因应用崩溃或未完成初始化
- HTTPS 场景下,核对 SSL Certificate Bindings 中的证书哈希是否与
certutil -store my查出的实际证书一致 - 若看到
http://+:80/但本地访问失败,可能是被其他进程(如 Skype、IIS、SQL Server Reporting Services)占用了端口
配合其他命令快速定位问题
单看 servicestate 不够时,可补充执行:
- netsh http show urlacl:查看哪些用户/组有权限注册指定 URL 前缀(ACL 权限控制)
- netsh http show iplisten:确认 HTTP.sys 是否限制了监听的 IP 地址(默认监听所有 IPv4/IPv6)
- netstat -ano | findstr :80:检查端口是否被非 HTTP.sys 进程占用(如 w3wp.exe 是 IIS,svchost.exe 可能是其他服务)











