简介:面向具备一定网络基础、希望深入管理中国移动吉比特H5-9光猫的用户,这份docx教程围绕超级管理员权限获取与后台配置展开,涉及特定URL登录、telnet服务启用、DevAuthInfo账户信息查看与修改、telnet用户及端口管理,以及桥接模式与VLAN设置等常见需求,适用于远程维护、改桥接或恢复管理权限等场景。压缩包仅含1个docx文件,大小约184KB,篇幅紧凑,适合按主题查阅。教程围绕CMCCAdmin默认账户、TelnetCfg开关、自定义telnet账号密码、VLAN ID记录与bridge连接创建等要点组织,并对命令输入、配置保存与注意事项作出说明,便于读者快速定位后台参数、理解命令作用并减少反复试错。已有12825人学习下载,说明该机型相关操作关注度较高;同时提醒未经授权修改可能影响设备稳定性和服务合规性,适合在明确风险后参考。
1. 从一条打不开的链接说起:H5-9 光猫到底卡在哪一步
有朋友发来一张截图,浏览器地址栏里那一长串带usr=CMCCAdmin&psw=...的链接刚按回车,页面就跳回了登录框;他以为是链接失效了。其实 H5-9 这类运营商定制光猫,超级管理员权限一直都有,只是藏在三层配置里面:电脑上得有 telnet 客户端,浏览器里得先拿到一次管理员会话,最后还要用sidbg直接改设备内部的配置库。卡在任何一层,表现都差不多,链接能打开,telnet 却连不上;或者密码改完重启又变回普通账号。这篇把我自己在这台设备上跑通的顺序从头记一遍,适合手里正好有一台 H5-9、想自己配桥接或改管理员密码的人。
2. 装前清点:Windows 和 macOS 上把 telnet 客户端补齐
动手之前花十分钟清点,比事后在 telnet 里瞎试省事太多。H5-9 的管理页面只走 HTTP,地址固定 192.168.1.1,telnet 走 23 端口,整套动作对电脑的要求其实只有两条:网卡和光猫在同一个网段,机器上有一个能发 Telnet 协商的客户端。道理简单,翻车基本都翻在这两条上,尤其是 Windows 默认把 telnet 客户端关掉了,很多人第一步就卡在“不是内部或外部命令”。
2.1 三张表先把环境固定下来
先把要用到的东西列成一张对照表,后面所有命令里的 IP、账号、端口都从这张表里取,不要中途换。
| 项目 | 建议值 | 说明 |
|---|---|---|
| 设备 | 某运营商定制 H5-9 光猫 | 背面标签上有普通账号、默认管理地址、Wi-Fi 名 |
| 管理地址 | 192.168.1.1 | 如果之前改过 LAN 网段,后面命令里的 IP 全部要同步换 |
| 连接方式 | 网线直连 LAN1 口 | 比 Wi-Fi 可靠,配桥接的过程中 Wi-Fi 一定会断 |
| 电脑系统 | Windows 10/11 或 macOS 12 以上 | Windows 需要额外启用 telnet 客户端 |
| 浏览器 | Chrome 或 Edge | 需要允许打开 http 明文页面,不要用会强制跳转 https 的插件 |
| telnet 客户端 | 系统自带telnet.exe//usr/bin/telnet | 全篇唯一需要“装”的东西 |
| 记录工具 | 手机拍照 + 本地记事本 | 存原始表数据和各条 VLAN ID |
网卡这一侧不用手动配 IP,保持自动获取就行。光猫的 DHCP 会给电脑下发 192.168.1.x 的地址,只要不是 169.254 开头的自动私有地址就说明链路通了。
# Windows:确认电脑已经从光猫拿到 192.168.1.x 的地址 ipconfig | findstr /i "IPv4" # macOS / Linux:看有没有 192.168.1 网段的 inet ifconfig | grep "inet 192.168.1"ipconfig那一行如果输出的是169.254.x.x,说明电脑没拿到地址,先换一根网线或者换个 LAN 口,别急着往下走。ifconfig在部分新系统上会被ip addr取代,两者看的是同一件事。这一步看着啰嗦,但后面 telnet 连不上时,有一半的问题出在这里。
2.2 Windows 上补 telnet 客户端:图形界面和一行命令
Windows 从某个版本起就把 telnet 客户端做成了可选功能,默认不装。在 cmd 里直接敲telnet会提示“不是内部或外部命令,也不是可运行的程序”,很多人以为是系统缺东西,其实只是没勾选。
图形界面的路径是:控制面板 → 程序和功能 → 启用或关闭 Windows 功能 → 在列表里找到“Telnet 客户端” → 勾上 → 确定,等进度条走完,不用重启。
命令行更适合远程装机或者懒得点鼠标的场景,用管理员身份开 PowerShell:
# 方法一:PowerShell 管理员窗口,适合 Win10 1809 之后的版本 Enable-WindowsOptionalFeature -Online -FeatureName TelnetClient -NoRestart # 方法二:DISM,老一些的镜像或者 PowerShell 被策略限制时更稳 dism /online /Enable-Feature /FeatureName:TelnetClient /All /NoRestart-Online表示对当前正在运行的系统做改动,不加这个参数会去操作离线镜像;-NoRestart是让安装完不要立刻重启,这个功能装完本来也不需要重启。FeatureName必须写TelnetClient,拼错会返回 0x800f0805 之类的错误码,看到了先回头核对拼写,不要怀疑系统坏了。
装完要重新开一个 cmd 窗口再验证,老窗口的环境变量不会刷新,这一点坑过不少人:
# 确认客户端文件在位 where telnet # 直接敲 telnet 回车,进入它自己的提示符 telnet第二条命令回车后如果出现Microsoft Telnet>提示符,说明客户端已经可用,输入quit退出即可。如果where telnet有输出但直接敲还是报错,多半是 PATH 里被别的同名程序抢先了,用绝对路径C:\Windows\System32\telnet.exe调一次就能确认。
2.3 macOS 与 Linux 的等价做法
macOS 大多数版本自带/usr/bin/telnet,先用which telnet确认一下。如果返回空,说明这个版本把它移出去了,装一个就行:
# macOS:装 GNU inetutils,里面带 telnet,不会覆盖系统原有的工具 brew install inetutils # Debian / Ubuntu 系 sudo apt-get install -y telnet # CentOS / RHEL 系 sudo yum install -y telnetinetutils装完后命令名可能带前缀,比如telnet直接可用,个别版本要写/usr/local/opt/inetutils/bin/telnet,brew link一下就好。
如果只是想确认 23 端口通不通、不需要交互,用nc更快:
# 只验证端口是否放行,-v 输出详细信息,-z 只扫描不发送数据 nc -vz 192.168.1.1 23返回succeeded就是通的,Connection refused说明端口没开。图形化客户端也可以用,PuTTY 新建会话时连接类型必须选 Telnet(端口 23),不要选 SSH,选错协议会一直卡在密钥交换阶段。
2.4 装完自检:端口 Closed 才是正常的
这一步最反直觉:在还没有通过浏览器链接打开 telnet 服务之前,H5-9 的 23 端口大概率是关闭的,扫出来就是 Closed。所以,自检只验证两件事:客户端能不能起来,网段对不对,不要拿“端口不通”当成装失败。
# Windows PowerShell:看 23 端口当前状态,TcpTestSucceeded 为 False 属正常 Test-NetConnection 192.168.1.1 -Port 23真正要等到第 3 章用链接把 telnet 服务打开之后,这条命令才会变成 True。这也是我把环境准备单独拎成一章的原因:先确认工具在手,再动设备,出问题的时候就能少怀疑一半的东西。
3. 从后台登录到 telnet 首连:两条直通链接和一次不回显的密码
这一章是整篇里最容易出错的环节,出错的点又都很小:链接少复制一个参数、密码多敲一次回车、会话过期了还在粘链接。把顺序固定下来,成功率会高很多。整体是三步:先用背面账号正常登录后台拿到会话,再用直通链接把管理员会话和 telnet 服务打开,最后用 telnet 客户端连进去。
3.1 普通账号登录后台:这一步只为拿会话
用光猫背面标签上的普通用户名和密码,浏览器打开http://192.168.1.1,正常登录。登录成功后不要关这个标签页,也不要退出登录,它是后面所有操作的前提。
普通账号看到的菜单是残缺的,通常只有 Wi-Fi 设置、设备信息这些,看不到完整的网络配置和诊断页面。这属于正常现象,不要在这里找“高级设置”按钮,H5-9 不给你这个入口,管理员会话得靠链接直接建。
3.2 两条直通链接:%25 和 tele_sec_tserver_t.gch 各自在做什么
保持后台登录状态,同一个浏览器新开一个标签页,把下面两条链接粘进去。顺序建议先方法一、不行再方法二。
# 方法一:带凭据建会话 + 直接打开 telnet 服务页 http://192.168.1.1/usr=CMCCAdmin&psw=aDm8H%25MdA&cmd=1&telnet.gch # 方法二:只打开 telnet 服务设置页,前提是当前会话已经是管理员级别 http://192.168.1.1/getpage.gch?pid=1002&nextpage=tele_sec_tserver_t.gch方法一里那个%25是重点,它是%的 URL 编码。设备的管理员默认密码本身就含%,如果直接在地址栏里写原始的%,浏览器会把它当成转义字符的起始符,把后面两个字符吞掉,结果就是密码错误、页面跳回登录框。所以复制的时候不要“顺手改成 %”,也不要少复制,%25三个字符一个都不能动。
方法二走的是另一条路:getpage.gch是设备后台的页面分发入口,pid=1002是页面 ID,nextpage=tele_sec_tserver_t.gch指定要打开的 telnet 服务设置页。它不带凭据,能不能打开完全取决于当前浏览器会话的权限级别,所以必须先做完 3.1。
注意:从聊天软件里复制链接时,
&有时会被转成&,粘到地址栏后参数就废了。稳妥的做法是先粘到记事本里看一眼,确认是四个参数用&连着,再整体复制到地址栏。
链接打开后,页面可能是一个简陋的设置页,也可能是一片空白或者只有几行文字,只要没有跳回login.gch,就说明管理员会话已经建起来了,telnet 服务也一并被打开。
3.3 telnet 首连:密码不回显,别敲第二遍
回到电脑的命令行,这时候 23 端口应该已经通了。
# 连接光猫的 telnet 服务,端口默认 23 可以不写 telnet 192.168.1.1回车后会出现login:提示,输入用户名CMCCAdmin,回车。接着出现Password:提示,输入aDm8H%MdA,回车。
这里有一个必定会遇到的现象:敲密码的时候屏幕上什么都不显示,光标一动不动。这是 telnet 协议的密码回显屏蔽,不是卡住了,更不是没输进去。不少人因为这个多敲了一次回车,把空行当成命令提交,结果要么直接断线,要么被设备当成暴力尝试锁一会儿。
如果连上之后立刻出现Connection closed by foreign host,先别重试,回到 3.2 重新打开一次链接,把 telnet 服务重新拉起来再说。
3.4 第一次读表:sidbg 1 DB p DevAuthInfo输出怎么读
登录成功后提示符一般是/#或者#,这个环境下没有ls、cat这些常规命令,能用的就是sidbg,它是设备上操作内部配置库的工具。先跑一条只读的命令看看结构:
# p 是 print,只读不改;DevAuthInfo 是存账号密码的那张表 sidbg 1 DB p DevAuthInfo输出是一段 XML 风格的文本,包在<Tbl name="DevAuthInfo" RowCount="2">里,下面两个<Row No="0">和<Row No="1">。每一行里有几个字段值得记住:
ViewName:IGD.AU1、IGD.AU2,两个不同的账号视图。User/Pass:显示成******。这不是没读到,而是设备把回显屏蔽了,属于典型的黑匣子式输出,别指望在这里看到明文。Level:权限级别,1 和 2 通常对应普通账号和管理员账号。
顺带把另外两张表也读一遍,后面改配置要用:
# 列出配置库里所有的表,排查字段名的时候用得上 sidbg 1 DB p all # 看 telnet 服务本身的开关状态和登录账号 sidbg 1 DB p TelnetCfg sidbg 1 DB p TelnetUsersidbg后面那一段参数的含义是固定的:1是实例号,绝大多数机型固定为 1,写别的值会报错;DB表示操作的是配置数据库而不是别的子系统;p是 print,对应的写操作是set。p all输出很长,翻起来费劲,一般只在猜字段名的时候用一次。
4. sidbg 写库:DevAuthInfo 改密、TelnetCfg 常驻与桥接收尾
读通了之后就可以动手改。这一章的每条命令都会直接写进设备内存里的配置表,改错不影响硬件,但会影响你能不能上网,所以顺序上我坚持“先备份、再改、改完立刻读一遍核对、最后统一保存”。
4.1 先留备份:把 DevAuthInfo 整段输出存到本地
设备上没有可靠的写文件位置,别在光猫上折腾重定向,最稳的办法是把终端里sidbg 1 DB p DevAuthInfo的输出整段选中,粘到电脑的记事本里存一份,文件名带上日期。
这份备份的价值在于:改错了行号、改错了账号,至少知道原来那两行的ViewName和Level长什么样。血泪经验是,很多人只记住了“改第 0 行”,却忘了先看看第 0 行到底是不是管理员。
4.2 改管理员账号和密码:set的语法与行号陷阱
# 语法:sidbg 1 DB set 表名 行号 字段名 新值 # 把第 0 行的管理员账号改成 CMCCAdmin sidbg 1 DB set DevAuthInfo 0 User CMCCAdmin # 把第 0 行的密码改成自定义值 sidbg 1 DB set DevAuthInfo 0 Pass aDm8H%MdA # 改完立刻读一次核对,不要跳过 sidbg 1 DB p DevAuthInfo第三个参数那个0就是p输出里的Row No,这是最容易出错的地方。不同批次的固件里,第 0 行和第 1 行谁是管理员并不固定:如果p出来第 0 行是Level="1"、第 1 行是Level="2",而你真正要改的是管理员,那就把命令里的0换成1再执行一次。判断标准只有一个:改完再p一次,看那一行的User有没有变成你写进去的值,没变就是行号选错了。
普通账号那一行建议别动。它对应的是设备背面标签上印的那组凭据,一旦改了而你又没记住,后面想从网页登回去都麻烦。
密码本身也有讲究。原文用的aDm8H%MdA包含大小写、数字和符号,强度够用,自己改的时候注意避开$、!、&、空格这类在命令行里有特殊含义的字符,它们在 telnet 会话里会被当场解释掉,导致set写进去的是残缺的值。另外%这个字符在 telnet 里原样输入即可,只有在浏览器地址栏里才需要写成%25,这两个场景不要混。
4.3 让 telnet 常驻:TelnetCfg 与 TelnetUser 两张表
通过链接打开的 telnet 只是一次性的,光猫重启或者服务超时之后就没了。要让 23 端口一直开着,得改两张表。
# 先看当前状态,确认字段名和你手上的固件一致 sidbg 1 DB p TelnetCfg # TS_Enable 是 telnet 服务总开关,1 开 0 关 sidbg 1 DB set TelnetCfg 0 TS_Enable 1 # Lan_Enable 是 LAN 侧端口放行,只开上面那个不开这个照样连不上 sidbg 1 DB set TelnetCfg 0 Lan_Enable 1 # TelnetUser 有两组账号,对应两个登录入口,两组都改保持一致 sidbg 1 DB set TelnetUser 0 Username root sidbg 1 DB set TelnetUser 0 Password admin sidbg 1 DB set TelnetUser 1 Username root sidbg 1 DB set TelnetUser 1 Password adminTS_Enable和Lan_Enable是必须成对出现的两个开关,只开前者,服务起来了但 LAN 口不放行,Test-NetConnection依然显示关闭,这是排查时最常见的误判点。
TelnetUser的 0 和 1 两组不要只改一组,不同固件默认走哪一组不一定,两组写成一样最省事。
提示:这两个开关属于长期暴露面,改完自己用一阵子就把
TS_Enable和Lan_Enable都置回 0,或者至少别把账号密码留成root/admin这种组合。设备放在家里,LAN 侧也不是绝对安全的。
4.4save落盘与桥接收尾:VLAN ID 和 2 口 IPTV
前面所有的set都只写进了内存中的配置表,掉电就恢复原样。必须执行一次保存:
# 把内存里的配置写进 flash,不执行这一步,重启全部回滚 sidbg 1 DB save保存之后再p一次,确认输出和你改的一致,然后才去做业务侧的配置。
桥接模式的改动在网页后台完成,路径是“网络 → Internet 连接”。要点是把每一条连接都当成证物对待:
- 逐条点开现有的 Internet 连接,把 VLAN ID、连接类型(Route 还是 Bridge)、绑定的 LAN 口拍照记录下来,尤其是上网那条和 IPTV 那条。
- 把用不上的连接删除,只保留确实要用的。
- 新建一条连接,类型选 bridge,VLAN ID 填上网那条连接原本用的值,绑定 LAN1 口。
- 2 口一般是留给 IPTV 机顶盒的,新建 bridge 时不要把它勾进去。
原文里给的 VLAN ID = 10 只是一个示例值,各地各批次的划分都不一样。照抄这个数字,最常见的后果就是桥接建好了,后面路由器 PPPoE 一直拨不上号。必须用你拍照记录下来的那条上网连接的 VLAN ID,这是整段配置里唯一不能拍脑袋的参数。
桥接做完再sidbg 1 DB save一次,然后重启光猫,让后面的路由器负责拨号。IPTV 机顶盒如果黑屏,第一反应应该是检查 2 口有没有被误勾进 bridge,而不是怀疑机顶盒坏了。
5. 排查记录:五条从“连不上”到“改完不生效”的踩坑
这一章的每一条都是实际遇到过的,按“现象 → 原因 → 解决”写,遇到问题时对着找就行。先提前说明一个容易误判的点:在没有通过 3.2 的链接打开 telnet 服务之前,23 端口扫出来是关闭的,这属于正常状态,不要把它当成客户端装坏了去重装系统。
5.1 连接阶段的三条
第一条:链接粘进去,页面跳回登录页
现象:地址栏回车后,页面直接回到login.gch,或者提示需要登录。 原因:浏览器会话过期,或者根本没先用背面账号登录;也可能是复制时&后面的参数被聊天软件转义成了&,链接实际只剩前半段。 解决:退出后台,用背面账号重新登录一次,不要关标签页;把链接先粘到记事本里核对四个参数是否完整,再整体复制到地址栏。整个过程控制在几分钟内,会话超时一般不会这么短。
第二条:cmd 里敲 telnet 提示不是内部或外部命令
现象:telnet 192.168.1.1回车,直接报“不是内部或外部命令”。 原因:Windows 的 telnet 客户端没启用,或者启用了但当前 cmd 窗口是启用之前开的,PATH 没刷新。 解决:按 2.2 用Enable-WindowsOptionalFeature或 DISM 启用,然后关掉所有 cmd 窗口重新开一个。如果where telnet有输出但命令仍不可用,直接用绝对路径C:\Windows\System32\telnet.exe 192.168.1.1。
第三条:密码输完就断线,或者反复要求登录
现象:login:输完账号正常,Password:输完立刻Connection closed,或者又弹一次login:。 原因:三种可能。一是密码里的%被粘成了%25,把 URL 编码残留带进了 telnet;二是密码框回车后多敲了一次回车,空行被当成第二条命令;三是之前改过TelnetUser,现在用的是旧账号。 解决:密码一律手输,不要复制;只在Password:提示出现后敲一次回车,看到提示符再动键盘;账号用最近一次set写入的那组。改完还不行,回 3.2 重新开一次 telnet 服务。
5.2 配置阶段的两条
第四条:set提示成功,重启后账号又变回去
现象:命令执行没有任何报错,p出来也能看到新值,但光猫断电重启之后,网页又只能用旧密码登录。 原因:九成是漏了sidbg 1 DB save,set只写内存不落盘。剩下的一成是行号选错,改的是普通账号那一行,管理员那行根本没动。 解决:先sidbg 1 DB p DevAuthInfo看清楚哪一行是Level="2",确认User字段确实变了;再执行sidbg 1 DB save,保存后立刻p一次核对,最后重启验证一次。改完不重启就当成功,是这类设备上最容易吃亏的习惯。
第五条:桥接建好了,路由器拨不上号或者 IPTV 黑屏
现象:光猫改成 bridge 之后,后面的路由器 PPPoE 一直认证失败;或者上网正常了,但 IPTV 机顶盒开机黑屏。 原因:VLAN ID 直接照抄了教程里的示例值,和你所在线路的实际划分对不上;或者新建 bridge 时把 2 口也勾了进去,把 IPTV 的通道占了;再或者删连接时把 IPTV、语音那两条一起删了。 解决:翻出之前拍的照片,按原样恢复每一条连接的 VLAN ID;bridge 只绑 LAN1,2 口留给 IPTV;删连接之前一定先拍照,删错了没有任何后悔药可吃,只能打运营商客服要参数。
5.3 我固定的排查顺序
遇到问题不要东一榔头西一棒子,按下面四步走,基本两轮之内能定位:
- 看电脑有没有拿到 192.168.1.x 的地址,没有就是物理链路或者 DHCP 的问题。
- 看 23 端口状态,关闭就回 3.2 走一遍链接,别在 telnet 里死磕。
- 能连上但登不进,只查账号密码和输入方式,不要怀疑设备。
- 能登进去但改完没效果,先
p核对行号,再save,最后重启验证。
这四步的顺序是从外到内,越往后越接近设备内部,也越不容易误判。
6. 验证跑通:三个检查点确认权限和桥接都真的生效
改完不验证,等于没改。我一般按三个检查点走一遍,每个检查点都有明确的期望结果,对不上就回到对应章节。
6.1 三个检查点
第一个检查点,网页端。退出当前登录,用改完之后的管理员账号密码重新登录http://192.168.1.1,重点看左侧菜单是不是完整了,能不能看到网络配置、设备管理这些页面。只看到 Wi-Fi 设置,说明权限还是普通级别。
第二个检查点,telnet 端。用自定义的TelnetUser账号重新连一次,进去之后再读一遍表:
# 用改过的 telnet 账号登录 telnet 192.168.1.1 # 进去之后核对管理员账号是否已经是你写入的值 sidbg 1 DB p DevAuthInfoUser字段显示的应该是你写入的账号,Pass依然是******,这是回显屏蔽,不是没改成功。
第三个检查点,持久化。把光猫断电十秒再上电,等它完全起来之后重新 telnet 一次。能连上、账号还是你改的那组,才说明save真的写进 flash 了。
| 验证项 | 操作 | 期望结果 | 不通过先看哪里 |
|---|---|---|---|
| 管理员权限 | 网页重新登录 | 菜单完整,能看到网络配置 | 4.2 的行号是否选对 |
| telnet 常驻 | 重启后telnet 192.168.1.1 | 正常出现login: | 4.3 的两个开关是否都为 1 |
| 配置落盘 | 重启后p DevAuthInfo | 账号仍是你写入的值 | 是否执行过sidbg 1 DB save |
| 桥接生效 | 路由器 WAN 口看拨号状态 | 拿到地址,能正常上网 | 4.4 的 VLAN ID 是否照抄了示例 |
| IPTV 保留 | 机顶盒开机 | 正常出画面 | 2 口是否被误勾进 bridge |
桥接那一项建议单独测:先确认路由器拨号成功、能打开网页,再看 IPTV。两件事同时坏的时候,先解决上网,因为 IPTV 的参数往往依赖上网那条线路的配置。
从那以后我每次动sidbg之前,都会先把sidbg 1 DB p DevAuthInfo和p TelnetCfg的输出整段贴进本地记事本,改完再贴一次做对比,最后一定重启验证一遍才算收工。这套习惯救过我两次,一次是行号选错,一次是忘了save,都是当场能发现、拖到第二天就变成玄学的问题。希望帮到你。
本文还有配套的精品资源,点击获取