「打不开」这个词包含了至少四种完全不同的故障,处理方式完全不同。所以问AI的第一个动作不是描述症状,是先把症状分类。
| 你看到的 | 实际可能是什么 | 先查什么 |
|---|---|---|
| 页面显示401 / authentication required | 服务活着,只是请求没带token | 从终端或日志复制完整URL(含 ?token=) |
| 浏览器显示连接被拒绝 / 无法访问此网站 | 进程没起来,或者端口不是3080 | 看启动输出、看端口有没有在听 |
| 命令直接报错退出(EBADENGINE / EADDRINUSE) | node版本不够,或端口被占 | node -v;netstat找占用进程 |
| 页面一直转圈 / 白屏 | 进程活着但初始化失败,或前端资源没加载 | 看终端有没有报错、看浏览器控制台 |
能用的提问稿
环境:Windows 11,node 版本 22.22.2,dsh 版本 0.2.2-rc.1(npm 全局装的) 现象:执行 dsh web 后,浏览器打开 127.0.0.1:3080 显示「无法访问此网站」, 终端最后几行是: (把终端输出原样贴在这里,包括错误码) 我已经确认: - dsh --version 能正常输出 - 3080 端口在 netstat 里没有 LISTENING 请按可能性从高到低给我排查步骤,每步写清「做什么、预期看到什么、看到别的说明什么」。 不要给我通用的网络排查清单。
这份稿子为什么能work
- 环境写全:系统、node版本、dsh版本、安装方式。这四个决定了一半的答案。
- 终端输出原样贴:转述会丢掉错误码。它写的「说端口被占用」,不如你把
EADDRINUSE :::3080贴过去。 - 列出已排除项:「3080没有LISTENING」这一句直接砍掉了「端口被占」这个分支,省一轮。
- 要求带判据:「每步写清预期看到什么、看到别的说明什么」,这一句把清单变成可执行的流程。
- 禁止泛泛清单:明确说不要通用网络排查,否则你会收到「检查防火墙、重启路由」这类没用的话。
最常见的错误是把问题描述成结论:「网络有问题」「装不上」。这类描述会让AI从零开始猜。描述**你看到了什么**,不要描述**你认为是什么**。
拿到回答之后
- 先做它列的第一步,别一次全做——一次改多处,出问题时不知道是哪一步解决的。
- 每步记下实际看到什么,和预期对照。
- 如果它给的步骤和你已知事实冲突(比如让你查端口占用,而你已确认端口没被占),直接指出来,别默默跳过。