| name | mt3600be-setup |
| description | GL.iNet GL-MT3600BE(及多数 GL.iNet 4.x 固件机型)的开箱设置助手。提供可选项清单:修改固件地区代码 CN 改 US 解锁国际版功能、只读体检、SSH 接入与公钥免密、全量备份、风扇工作温度、GL 管理页温度滑块范围补丁、物理拨动开关绑定任意服务、开关页面支持自定义模块、zram-swap、关闭云服务与远程管理、查看/修改无线地区码。用户提到 MT3600BE、GL.iNet 路由器开箱、改地区/地区代码/国际版/解锁隐藏菜单、SSH 免密、风扇温度、温度滑块、拨动开关时使用。 |
GL-MT3600BE 开箱设置
面向刚拿到手的 GL.iNet GL-MT3600BE。先展示菜单让用户挑,再执行;不要自作主张全跑一遍。
适用固件:GL.iNet v4.x(前端补丁类项目在 v4.9.0 上实测)。多数项目对其他 GL.iNet 机型同样适用,但带 ⚠️ 的项目务必先确认机型和固件版本。
可选项清单
把下表原样展示给用户,让用户回复编号(可多选),只执行用户点名的项。
顺序很重要:先 0 体检确认型号,再决定要不要做 1。
第 1 项要做就必须最先做——它改的是 flash 里的 factory 数据,不随固件走;改完建议恢复出厂让地区相关配置重新生成,开箱阶段做代价为零,等配置好了再改就得全部重来。它自带一套强制的分区备份流程,与第 3 项的配置备份不是一回事,不能互相替代。
第 1、10 项必须单独取得用户明确确认。第 1 项不做的话,2–10 全部可以照常进行。
安全边界
- 默认只读。 只有用户明确点名的项目才写入路由器。
- 每项开跑前先说清楚会改哪些文件、怎么回滚,得到确认再动手。
- 第 1 项写的是裸 flash 分区,同一分区还存着 MAC 和射频校准数据,写错偏移量可能不可逆损坏。四道闸门一个都不能省:① 型号必须是 GL-MT3600BE;② 整个分区必须先备份到用户电脑并核对哈希;③ 目标偏移量处必须恰好读到
CN;④ 写入后必须回读到 US 才允许重启。任何一步不符就停下报告,绝不硬写。不要照搬其他型号的偏移量——各型号差两个数量级。
- 第 5、7 项改的是厂商前端压缩 JS:必须通过版本 + 唯一锚点校验,锚点不唯一就拒绝修改;不要跨固件版本复制
.js.gz;不要把这类文件写进 sysupgrade.conf(固件升级会失配甚至打不开管理页)。
- 第 10 项可能违反当地无线电管理规定,也可能让 Wi-Fi 直接不工作。必须先备份、先取得用户明确同意,并告知回滚方法。
- 涉及物理拨动开关时:不要替用户拨动、不要调用状态同步、不要按当前拨杆位置自动启停服务。
- 重启和恢复出厂由用户自己执行,不要替用户敲
reboot。
- 不把用户的密码、私钥、路由器完整备份写进任何仓库或聊天记录。
- 验证要看实际结果(读回的字节、配置值、进程、
gzip -t、SHA256、sh -n),不要只看命令退出码。
连接约定
本节是连接信息的唯一来源,参考文件不再重复。
GL.iNet 出厂默认:地址 192.168.8.1,SSH 用户 root,密码 = 你在初始化向导里设置的管理页密码。
ssh root@192.168.8.1
四个 Mac/Linux 侧脚本都读这几个环境变量:
| 变量 | 默认 | 说明 |
|---|
MT3600BE_TARGET | root@192.168.8.1 | SSH 目标 |
MT3600BE_SSH_KEY | 空 | 私钥路径;留空则用密码或 ssh-agent |
MT3600BE_SCP_COMPAT | -O | OpenSSH < 8.6 请显式设为空 |
约定与注意:
- 参考文件里的命令默认在路由器 SSH 会话内执行;需要在电脑本地跑的会显式标注。
- 传文件一律
scp -O:现代 macOS 的 scp 默认走 SFTP,而干净的路由器固件没有 sftp-server,漏掉 -O 会报 ash: /usr/libexec/sftp-server: not found / scp: Connection closed。该错误不损坏文件,加 -O 重传即可。
opkg、uci、/etc/init.d/* 只在路由器上有;误在本地执行只会 command not found,不会改到路由器。
- 主机密钥变化时先报告并核对指纹,不要关闭主机密钥校验。
- 改过前端资源后必须强制刷新浏览器缓存(macOS
Command + Shift + R,Windows/Linux Ctrl + Shift + R)。
脚本
从本 skill 目录运行,路径前缀 scripts/:
| 脚本 | 运行侧 | 作用 |
|---|
install-ssh-key.sh | 本地 | 幂等部署公钥到 dropbear authorized_keys |
set-fan-temperature.sh | 本地 | status 只读查看;30–90 设置风扇启动温度,自动备份并在失败时回滚 |
patch-fan-range-ui.sh | 本地 | 温度滑块范围补丁 status / apply [MIN MAX] / restore,四锚点校验 |
patch-switch-button-ui.sh | 本地 | 开关页面补丁 status / apply <模块名> [显示标签] / restore,双锚点校验 |
switch-handler-template.sh | 路由器 | 拨动开关事件处理器模板,改两个变量后复制为 /etc/gl-switch.d/<模块名>.sh |
lib-ssh.sh | — | 供上述脚本 source,不要直接执行 |
switch-handler-template.sh 不要在本地直接执行,部署后也不要用 on/off 参数试跑;只做 sh -n 语法检查和绑定值检查,实际拨动留给用户。
第 1 项(固件地区代码)故意没有脚本:写裸 flash 必须逐步确认,参考文件里每一步都带验证闸门,照着一步步跑,读到的东西不对就停——不要为了省事把它包成一键脚本。
工作流
- 展示可选项清单,等用户选编号。用户没选就不要动手。
- 先跑第 0 项确认机型、固件版本、target/架构——用户选了 1、5、7、10 时这一步是硬前提。
- 读对应参考文件,向用户说明改动范围和回滚方式,得到确认。用户同时选了第 1 项和别的项时,先把第 1 项做完并重启验证,再动其他。
- 执行最小变更;写 flash 前必须完成备份+读值校验,前端资源必须过唯一锚点校验并留备份。
- 验证实际结果,然后报告:改了哪些文件、备份在哪、是否需要强制刷新页面、是否需要用户自己拨开关或重启。