跳转到内容
建议与反馈
微信公众号二维码
扫码关注 「槽痞」
直接发送您的意见或疑问

4.3 让同事真正打开:内网分层排查与小范围试用

上一节,机房排座系统已经在校内 Windows 主机上完成生产构建,也通过了本机核心流程和断网检查。

现在可以把访问地址发给同事了吗?

可以开始测试,但不要一口气发到整个教师群。先找同一间办公室的一台电脑,再走到机房,用两三位老师和模拟数据完成小范围试用。

第二章已经讲过 localhost、局域网 IP、端口、监听地址和 Windows 防火墙。这一篇不再背概念,而是把它们放进一条从近到远的排查路线。

手绘说明图:从部署主机本机到同办公室电脑再到机房电脑,按层排查内网访问问题

先固定现场,不要边测边乱改

网络问题最怕同时变化:一会儿换端口,一会儿重启开发服务器,一会儿关闭防火墙,最后即使页面打开了,也不知道究竟是哪一步起作用。

开始测试前,先记录下面几项:

  • 部署主机的局域网 IP。
  • 项目实际使用的端口。
  • 当前生产服务的启动时间和运行状态。
  • 当前部署对应的 Git 提交。
  • 本次访问使用的完整地址。

例如,部署主机 IP 是 192.168.1.23,项目端口是 3000,那么其他电脑访问的地址可能是:

text
http://192.168.1.23:3000

真实地址应由 Agent 根据当前主机和项目配置检查,不要直接照抄示例。测试期间先保持端口、启动方式和 Git 版本不变。

第一层:在部署主机上测试两个地址

先在部署主机自己的浏览器里分别打开:

text
http://localhost:实际端口
http://部署主机局域网IP:实际端口

如果 localhost 能打开,而局域网 IP 地址打不开,问题通常还没有离开这台主机。此时应该让 Agent 检查服务监听地址、实际端口和生产启动参数。

可以输入:

text
生产服务在部署主机上使用 localhost 可以打开,
但使用“局域网 IP + 端口”无法打开。

请只读检查当前生产启动方式、实际监听地址、端口和日志,
判断服务是否只监听本机。
请先解释最可能的原因和最小修改方案,不要修改业务代码,
不要更换端口,也不要执行防火墙操作。

这一层没有通过,就先不要去机房测试。先让部署主机能够用自己的局域网地址访问,才能继续判断外部电脑的问题。

第二层:同办公室另一台电脑

第一层通过后,在同一办公室或同一网段找另一台电脑,用浏览器输入局域网地址。

这里不要只看首页。至少先完成登录,并打开一个需要读取数据库的页面。如果首页能显示,但登录后报错,问题可能不是网络,而是 NEXTAUTH_URL、数据库连接或登录配置仍然指向 localhost

另一台电脑完全打不开时,按下面顺序记录:

  1. 浏览器中的完整地址。
  2. 页面是立即拒绝、一直转圈,还是打开后报错。
  3. 部署主机上的服务是否仍在运行。
  4. 两台电脑的 IP 和所在位置。
  5. Windows 防火墙是否曾出现过允许访问提示。

然后把完整现场交给 Agent:

text
当前项目已经在校内 Windows 主机上以生产方式运行,但另一台电脑无法正常使用。

请根据下面的信息分层分析:
- 部署主机局域网 IP:这里填写
- 项目端口:这里填写
- 本机 localhost 是否能打开:这里填写
- 本机使用局域网 IP 是否能打开:这里填写
- 另一台电脑所在位置和 IP:这里填写
- 浏览器中的完整地址和现象:这里填写
- ping 或端口测试结果:这里填写
- 服务启动日志:粘贴脱敏后的完整日志

请先判断问题最可能在哪一层,并给出一次只验证一个条件的排查顺序。
不要升级依赖,不要修改业务代码,不要关闭整体防火墙,
也不要建议绕过学校网络策略。

Agent 应该先帮助判断服务、端口、监听地址和防火墙,而不是直接修改页面代码。

防火墙可以检查,不能直接关掉

Windows 防火墙可能会阻止其他电脑访问项目端口,但正确处理方式不是关闭整个防火墙。

如果 Agent 判断需要新增入站规则,必须先让它说明:

  • 准备开放哪个具体端口。
  • 允许哪些网络范围访问。
  • 是否需要管理员权限。
  • 学校是否允许个人修改这项设置。
  • 以后怎样撤销这条规则。

老师确认学校管理要求后,才允许 Agent 协助执行。对于统一管理的学校电脑,直接把项目地址、端口和使用范围交给信息中心,比反复尝试管理员命令更可靠。

ping 只是辅助证据

ping 可以帮助判断两台电脑是否能通过 ICMP 找到对方,但它不能证明浏览器端口已经开放。

常见情况包括:

  • ping 能通,但项目端口被防火墙拦截,网页仍然打不开。
  • 学校禁用了 ping,但浏览器可以正常访问项目。
  • 页面能打开,但登录或数据库请求失败,问题已经不在基本连通性。

因此最终结论始终来自浏览器中的真实操作,而不是“屏幕上出现了几行回复”。

第三层:走到机房或另一办公室

同办公室电脑通过后,再到机房或另一栋楼测试。

如果办公室可以访问,机房却打不开,说明项目主机和服务本身大概率已经正常,问题可能出在网段隔离、无线客户端隔离、ACL 或其他校园网络策略上。

这时不要继续让 Agent 尝试内网穿透,也不要私自把项目暴露到公网。正确做法是整理一份网络问题记录,交给学校信息中心。

记录项建议内容
测试时间具体到日期和大致时刻
部署主机位置与 IP哪间办公室、哪个局域网地址
项目端口和完整地址浏览器实际输入的地址
客户端位置与 IP哪间机房、哪台测试电脑
已通过的层级本机、同办公室是否正常
失败现象超时、拒绝连接、页面报错或登录失败
辅助测试ping 或端口测试结果,仅作为证据
期望范围只允许哪些办公室或机房访问

信息中心需要的不是一句“系统打不开”,而是一份能快速定位网段和端口的现场记录。

页面打开后,要走完整业务流程

连通性通过后,继续使用完全模拟的班级、学生和机房数据完成业务验收。

验收场景在另一台电脑上检查什么
登录测试账号登录成功,地址跳转和会话正常
打开测试布局布局内容与部署主机看到的一致
导入模拟名单数据能够保存,错误提示清楚
完成一次排座座位结果显示正确,可以手动调整
刷新并重新登录数据没有只停留在浏览器内存中
打开投屏页面班级、课程和座位信息显示完整
打开只读分享只读用户不能进入不该修改的入口

如果页面能打开,但保存后部署主机看不到新数据,就把问题归到接口或数据库流程,不要继续修改网络设置。

排错时仍然坚持一次只处理一层:网络、登录、数据库、页面显示分别验证。

找两三位老师做小范围试用

自己测试通过后,邀请两三位真正可能使用系统的老师,按同一张任务单走一遍。

任务单可以很简单:

  1. 使用测试账号登录。
  2. 打开一个模拟机房布局。
  3. 导入一份模拟班级名单。
  4. 完成排座并调整两个座位。
  5. 刷新页面并打开投屏模式。
  6. 退出后重新登录,确认数据仍在。
手绘说明图:小范围试用任务单,用模拟数据完成登录、布局、导入名单、排座、刷新投屏和反馈记录

收集反馈时,不要只问“好不好用”。让老师记录:

  • 在哪台电脑、哪个位置操作。
  • 做到哪一步出现问题。
  • 浏览器显示了什么。
  • 重新操作后是否还能复现。
  • 这一步与真实工作习惯有什么差异。

这样得到的反馈才能交给 Agent 继续分析,也能区分网络问题和业务需求。

小范围试用仍然使用模拟数据

项目能在内网打开,不代表已经完成数据安全和权限验收。没有完成 4.4 的备份恢复、账号和交接检查前,不要批量导入真实学生名单。

把试用结果留下来

本篇结束时,建议保留三份简单记录:

  • 内网访问测试记录:本机、同办公室、机房分别是否通过。
  • 小范围试用反馈单:两三位老师完成任务时遇到的问题。
  • 网络问题记录:需要信息中心处理时,提供地址、端口、位置和现象。

整个测试顺序可以概括为:

flowchart LR
  A[部署主机本机] --> B[同办公室另一台电脑]
  B --> C[机房或另一办公室]
  C --> D[完整业务流程]
  D --> E[两三位老师试用]

到这里,项目已经不只是“我电脑上能跑”,而是经过了目标用户的跨设备试用。

但今天能访问,不代表电脑重启、数据库出问题或负责人不在时仍然能恢复。下一篇,我们继续做服务重启、数据备份恢复和上线交接,给这个项目补上真正的持续使用能力。

封面

💬 建议与反馈

如果在阅读本书、配置环境或实践案例时遇到问题,欢迎与作者老师交流。

您可以在微信搜索并关注公众号 「槽痞」 后直接发送消息。无论是错别字纠正、代码 BUG 反馈,还是您对 Vibe Coding 在中小学教学落地中的宝贵建议,我都会认真阅读并予以回复。

微信公众号二维码微信扫一扫

基于 VitePress 构建 · 书本质感主题