你好,
在你的情况里,路由器已经开启了 UPnP,但电脑端依然检测不到,这通常说明问题出在客户端与路由器之间的通信或 Windows 服务配置,而不是单纯路由器开关。 BitComet 的检测依赖于 Windows 上的 SSDP Discovery 和 UPnP Device Host 服务。 如果这两个服务没有启动,或者被防火墙阻挡,应用就会认为 UPnP 未启用。 你可以在 services.msc 中确认这两个服务是否处于运行状态,并且启动类型最好设为自动。
另外,Windows 防火墙或第三方安全软件可能拦截了 SSDP 的 1900/UDP 广播或 UPnP 的 2869/TCP 端口。 检查防火墙规则,确保这两个端口允许出入站通信。 BitComet 检测不到 UPnP 的常见原因就是 SSDP 广播无法到达路由器。
还有一种情况是路由器虽然开启了 UPnP,但固件实现不完整或有 bug,导致客户端无法正确解析返回的设备描述。 你可以用 upnpc -l(MiniUPnPc 工具)在命令行测试是否能列出路由器的 UPnP 服务。 如果这个工具也失败,那说明路由器端响应异常。
总结来说,先确认 Windows 的 UPnP 相关服务已启动,再检查防火墙是否放行 SSDP/UPnP 端口,最后用命令行工具验证路由器是否真的提供了可用的 UPnP 服务。 这样可以逐步定位到底是客户端配置问题还是路由器固件问题。
多米克配音。