Windows 端口被谁占用:监听进程与远程连通排查

本文适用于 Windows Server 2022、2025。端口排查有两个常见起点:应用提示地址被占用,或者应用看似启动但外部无法连接。二者都应先检查实际监听状态,而不是直接重启服务器、杀进程或关闭防火墙。

确认协议、端口和预期监听地址

从应用配置或部署记录确认使用 TCP 还是 UDP、端口号是多少,以及服务应只供本机还是对外提供访问。同一个数字可以同时用于 TCP 与 UDP,它们不是同一个监听端点。

# 服务器:只读查看 TCP 443 的监听状态
Get-NetTCPConnection -State Listen -LocalPort 443 |
    Select-Object LocalAddress, LocalPort, OwningProcess

没有结果时,应先确认应用启动是否成功、是否使用了其他端口,以及查询是否需要管理员权限。查询方式见 Get-NetTCPConnection 文档。不要为了得到预期结果而先添加防火墙规则;防火墙不能替一个未启动的应用创建监听。

127.0.0.1 表示 IPv4 回环监听,远程设备通常不能直接访问它。0.0.0.0 表示所有本机 IPv4 地址。IPv6 的 ::1:: 需要分别理解,不能仅凭看到 IPv6 通配地址就断言所有 IPv4 客户端也一定能连接,仍应实际验证。

根据进程编号核查归属

# 服务器:将 1234 替换为刚查询到的实际进程编号
Get-Process -Id 1234 |
    Select-Object Id, ProcessName, Path

进程可能在两次查询之间退出或重启,因此编号只是当前时刻的线索。进一步结合应用服务名称、进程路径、启动参数和部署记录判断归属。读取路径可能需要权限,空白结果并不意味着进程异常。

不要按照名称相似就终止进程。一个运行时进程可能承载多个业务;停止它会影响谁,应由配置与服务依赖关系决定。若确实存在端口冲突,优先调整新应用的端口或安排对已确认服务的受控变更,并保留原配置用于恢复。

如果监听归属显示为 PID 4,可能涉及 HTTP.sys 等内核组件。不能结束系统进程。可进一步用 netsh http show servicestate 查看 HTTP 服务状态,再定位注册该端点的应用,命令说明见 netsh http 文档

本机成功后再测试远程路径

先在服务器本机验证,再从真正访问业务的客户端执行:

# 客户端:替换为实际域名或服务器地址
Test-NetConnection server.example.com -Port 443

重点看测试采用的目标地址和 TcpTestSucceeded。域名同时有 IPv4 与 IPv6 时,还应确认实际测试的是哪一个地址。该命令成功表示所测 TCP 连接可以建立,不代表 TLS 证书、HTTP 状态或登录功能一定正常,具体边界见 Test-NetConnection 文档

本机成功、远程失败时,依次核查监听地址、Windows 防火墙的活动配置文件与规则作用域、云侧安全组、路由和地址映射。只为明确的来源与端口配置必要访问,不要通过关闭所有防火墙来长期解决问题。

UDP 要使用不同的证据

UDP 没有 TCP 那样的 Listen 连接状态,可用 Get-NetUDPEndpoint -LocalPort 53 查看本机 UDP 端点与所属进程。查询结果只能说明本机存在端点,不能说明远程请求已到达或应用正确响应。

UDP 应用需要协议本身的请求与响应验证,并结合应用日志或受控抓包。Test-NetConnection -Port 的 TCP 测试结果不能用来证明 UDP 服务可用。UDP 查询参数见 Get-NetUDPEndpoint 文档

变更后重复同一组检查

修复应尽量只改变一个因素,例如恢复应用配置中的监听地址、修正一个防火墙规则或解除已确认的端口冲突。先保存旧配置与规则内容,再安排必要的重启,避免同时改变多个变量后无法判断哪一步有效。

最后重新记录监听地址、端口、进程归属和远程测试结果,并访问真实业务接口。若涉及远程桌面,应结合Windows 远程桌面排查确认服务和访问条件。保留变更前后的证据,下次故障才能快速区分应用未监听与网络路径变化。

参考资料

继续阅读

返回天理云文章中心

分享到:
上一篇
Windows 事件查看器排障:筛选、时间关联与日志导出
下一篇
Windows 服务无法启动:依赖、账号与恢复动作检查
服务中心
企微客服
企微客服
给您高效服务
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意