news 2026/10/20 19:28:57

华为HN8156XR-10 FTTR光猫 Telnet修改DHCP租期与DNS设置实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为HN8156XR-10 FTTR光猫 Telnet修改DHCP租期与DNS设置实战

这台华为 HN8156XR-10 FTTR 主光猫,我拿到手的第一天就想把它的 DHCP 和 DNS 设置给改了。原因很简单:默认配置下,家里设备总是隔三差五断一下,部分网页打开时解析明显偏慢,后来查了一圈才发现问题出在光猫内置 DHCP 服务上——租期太短、DNS 用的是运营商默认值。如果你也在用这款或者类似型号的 FTTR 光猫,受同样的“玄学掉线”“网页卡解析”困扰,那这篇文章就是为你准备的。我会完整演示通过 Telnet 登录光猫、查看现有 DHCP 参数、修改租期和自定义 DNS 的过程,把每一步命令、每一个需要认准的字段都写清楚,顺带把我踩过的几个坑也一并说透。

1. 为什么要把手伸进光猫的 DHCP 和 DNS 设置里

1.1 FTTR 主光猫不是普通光猫,它是家里的“网络调度中心”

FTTR 方案里,主光猫承担的可不只是光电转换那么简单。它要负责拨号、路由、无线接入、DHCP 分配、DNS 转发,相当于把一台路由器和一台 ONU 塞进了同一个盒子里。HN8156XR-10 作为主光猫,默认情况下就开着 DHCP 服务,家里所有手机、电视、摄像头、智能家居设备的 IP 都是由它统一分配。这个模式本身没问题,问题在于运营商下发的默认参数,往往只考虑“能用”,不考虑“好用”。

我一开始也以为“光猫嘛,能拨号能上网就行”,直到有一天发现客厅的摄像头经常离线,查看日志发现它在不停地重新请求 IP,每次间隔只有两小时左右。这时候才意识到,DHCP 租期太短,设备多的时候会反复续约,一旦续约不及时,就会出现短暂断网。路由转发没问题,配置参数却在拖后腿,这就是我决定折腾 Telnet 的直接动机。

1.2 默认租期太短或 DNS 太朴素,体验差别有多大

先从租期说起。DHCP 租期就是终端获得 IP 后可以使用的时长,到期前设备需要向 DHCP 服务器续租。默认值如果设置成 7200 秒(2 小时),那么一台设备一天至少要续约 12 次。智能家居设备数量一多,每次续约都是一次广播交互,遇到光猫 CPU 忙的时候,就可能延迟。最直观的表现就是:电视投屏突然失败、手机连着 WiFi 但是提示“无互联网连接”、监控画面偶尔卡住。

DNS 的影响更隐蔽。如果你用运营商默认 DNS,平时刷短视频、看网页可能感觉不到,但当你访问一个解析节点较多的网站时,解析超时或者返回了一个很慢的节点,页面就要白屏好几秒。另外,如果你想在局域网里自建一个 AdGuard Home 或者用来缓存解析记录的轻量服务,那么光猫 DHCP 下发 DNS 这个动作就显得非常关键——它决定了你的终端设备是否会自动使用你自建的 DNS。否则你连了设备后,还要每台手动改 DNS,那体验真的太差了。

1.3 什么样的人真的需要改,什么样的人建议别动

我总结一下,真正需要改这些参数的是这几类人:

  • 家里智能设备超过二十台,并且经常出现设备离线、掉线问题。
  • 在局域网里跑了自己的 DNS 服务(比如 AdGuard Home、某款开源 DNS 缓存)。
  • 对网页打开速度敏感,希望用公共 DNS 替代运营商默认 DNS 以便更快获得解析结果。
  • 想固定某些 DHCP 地址段给录像机、NAS 等设备,方便访问。

反过来,如果你就是正常手机上网、刷视频,设备也不多,那我不建议你动这些参数。光猫的默认配置虽然不完美,但足够稳定。改配置有风险,特别是 Telnet 下敲错命令可能导致光猫变砖或者配置异常,到时候折腾的时间成本远大于收益。

2. 动手前必须确认的版本和 Telnet 前提条件

2.1 先确认你的光猫有没有“调试”这把钥匙

不是所有 HN8156XR-10 都默认开放 Telnet。运营商集采的固件,很多把 Telnet 服务关掉了,或者登录账号密码权限受限。我手上这台软件版本是 R22 系列,硬件版本是 HN8156XR-10,Telnet 是已经开启的。怎么确认?最直接的办法是打开电脑的命令提示符,输入telnet 192.168.1.1,如果出现登录提示,说明服务开着;如果提示“无法打开到主机的连接”,说明 Telnet 被关了或者端口不通。

如果你的 Telnet 没开启,也不要灰心。常规做法是联系宽带装维师傅,或者通过运营商的APP在线报修,说明自己需要做家庭网络调试,申请开启调试账号。很多地区是可以合法申请到临时调试权限的,这比自己在网上到处找“补全Shell”的方案要安全得多。我就是通过这个方式拿到的超级管理员密码,整个过程只花了半天时间,对方还提醒我“别随便改光猫的注册信息,只改局域网参数就好”。

2.2 用 Windows 自带 Telnet 还是第三方客户端?

我建议直接用 Windows 自带 Telnet 客户端就够了,因为只是敲几条命令。启动方式是在“启用或关闭Windows功能”里勾选“Telnet客户端”。如果你用的是 Mac 或者 Linux,终端里直接敲 telnet 命令即可。

不过如果你有 Putty 或者 FinalShell,我也推荐用它们,因为可以方便复制粘贴长命令,还能保存会话,反复连接比较方便。我用的是 Putty,主要是看中它的复制粘贴不会像 Windows 自带的 Telnet 那样偶尔卡顿。注意,连接时选择 Telnet 协议,端口默认 23,不是 SSH 的 22。

2.3 动手前把原始配置备份下来,这是最重要的一步

这个步骤太重要了,我要单独拉出来强调。很多人改配置失败,不是因为命令敲错,而是因为不知道原来的值是什么,改不回来。连接 Telnet 后,第一件事不是修改,而是把当前的 DHCP 配置表完整抄下来。哪怕你用手机拍屏幕,也要留一份。

我的备份方法很简单:

sendcmd 1 DB p DhcpCfg sendcmd 1 DB p Lan

把这两条命令的输出全部复制到本地文本文件里,命名成backup_202501.txt。这样无论后面折腾成什么样,我都能照着这个文本把原始配置敲回去。特别是光猫重启后如果配置被网管系统覆盖,你至少还有一份自己设备上的真实基线数据,方便对比差异。

3. Telnet 连接后,先把 DHCP 配置表翻个底朝天

3.1 登录并进入配置命令行环境

确认 Telnet 可用后,我在电脑上执行:

telnet 192.168.1.1

这里192.168.1.1是光猫默认的局域网管理地址,如果你家光猫改过网段,以你自己的为准。连接后会看到类似:

Login: admin Password:

输入超级管理员账号和密码(不是普通用户密码)。登录成功后,有的固件直接进入 shell,有的还需要再敲一个shell命令。如果敲ls能看到一堆 Linux 目录,比如bin、etc、usr,说明你已经进入了系统 shell。

华为光猫的配置管理主要靠sendcmd这个内置命令。它可以直接读写光猫的数据库配置文件。如果是某些精简固件,可能连sendcmd都没有,那就需要先执行loaddef这类命令调出完整命令行,但一般我手头这台 R22 固件是直接有的。

3.2 用 sendcmd 读取 DHCP 表

进入命令行敲:

sendcmd 1 DB p DhcpCfg

这条命令的意思是:以超级管理员的身份,从数据库(DB)中打印(p)名为DhcpCfg的表。我这边输出的内容大致如下:

<Tbl name="DhcpCfg" RowNo="0"> <P name="Enable" val="1"/> <P name="StartIp" val="192.168.1.2"/> <P name="EndIp" val="192.168.1.254"/> <P name="LeaseTime" val="3600"/> <P name="Dns1" val="0.0.0.0"/> <P name="Dns2" val="0.0.0.0"/> </Tbl>

注意,不同固件的字段名可能不一样。有的叫LeaseTime,有的叫DhcpTime,还有的叫Duration。我在别人家的 HN8165 上就看到LeaseTime变成了DhcpTime。所以不要死记命令,关键是看val="..."后面的值。比如这里LeaseTime val="3600"就代表租期是 3600 秒,也就是 1 小时——难怪家里设备那么闹腾。

3.3 顺藤摸瓜:DNS 配置藏在哪个表里

如果DhcpCfg表里没有看到Dns1Dns2,或者这两个值是空的,那么 DNS 配置可能在Lan表里。继续敲:

sendcmd 1 DB p Lan

输出中会有一堆字段,我们重点关注:

<P name="Dns1" val="0.0.0.0"/> <P name="Dns2" val="0.0.0.0"/> <P name="DnsOverride" val="0"/>

0.0.0.0表示使用运营商下发或者光猫默认的 DNS,并没有手动指定。这里就是我们要改的地方。还有一个字段叫DnsOverride,这个字段很关键,它决定光猫会不会用内置的 DNS 转发。我一般把它保持为0,也就是不做强制覆盖,直接向 DHCP 客户端下发我指定的 DNS。

4. 修改 DHCP 租期和自定义 DNS 的完整操作流程

4.1 修改前想清楚你要的租期和 DNS 是多少

我们先确定需求。租期不是越长越好。如果设成一周(604800 秒),设备长时间不续约,当你改了网关或者调整网络拓扑的时候,终端可能要过很久才重新获取,容易造成新旧配置混乱。我建议是设成 86400 秒,也就是 24 小时。这样每天设备都会续约一次,既不会频繁到引发掉线,也不会造成配置变更后迟迟不生效。

DNS 我用的是一主一备:

  • 首选 DNS:223.5.5.5
  • 备用 DNS:119.29.29.29

这两个都是国内公共 DNS,解析速度快,且支持 DNS over HTTPS 的较多,兼容性也比较好。如果你有 AdGuard Home,那么首选 DNS 就填你的 AdGuard Home 局域网 IP,比如192.168.1.10,备用再填公共 DNS。

4.2 逐条写入修改命令并保存

现在开始动手。先修改租期:

sendcmd 1 DB set DhcpCfg 0 LeaseTime 86400

这里0是行号(RowNo),表示修改第一行 DHCP 配置。如果你的光猫存在多个 DHCP 地址池(比如同时开了 LAN1 和 LAN2),需要先通过sendcmd 1 DB p DhcpCfg看清有几行,然后对指定行号操作。

接着设置 DNS:

sendcmd 1 DB set DhcpCfg 0 Dns1 223.5.5.5 sendcmd 1 DB set DhcpCfg 0 Dns2 119.29.29.29

如果你的 DNS 字段在Lan表里,就改成:

sendcmd 1 DB set Lan 0 Dns1 223.5.5.5 sendcmd 1 DB set Lan 0 Dns2 119.29.29.29

因为我这边修改后原来的Dns1Dns2没变化,所以我两条表都设置了,反正不改的字段不影响。设置完先别急着退出,执行保存命令:

sendcmd 1 DB save

这一步不做的话,光猫一重启或者几分钟后配置可能就丢了。保存成功后一般会输出success字样。我再建议用sendcmd 1 DB p DhcpCfg重新查看一遍,确认LeaseTime变成了86400,Dns1变成了223.5.5.5。确认无误后再重启光猫。

4.3 修改之后如何验证

重启后,光猫会重新给连接的设备下发 IP 信息。如果你想立刻看到效果,可以在电脑上打开命令提示符:

ipconfig /release ipconfig /renew

然后查看:

ipconfig /all

重点看 DHCP 获得的租约时长和 DNS 服务器地址。如果显示租约到期时间是明天这个时间点,DNS 是我们设置的两个 IP,就说明修改成功了。

还有一个小技巧:如果家里某些设备是断电重启或者长时间不联网的,它可能还保留着旧租约,可以暂时忽略,等租约到期后自然生效。想加速就断开 WiFi 重新连接一次。

5. 重启失效与配置回滚:我踩过的那些坑

5.1 最尴尬的:重启后设置一夜回到解放前

我第一次改完,验证全部成功,心里美滋滋。结果第二天起床一看,DHCP 租期又变回了 3600,DNS 也变回了 0.0.0.0。后来才明白,这是光猫的远程管理机制在起作用。运营商网管平台会在指定时间同步配置,我手动改的本地配置不在管理平台的模板里,同步一次就被覆盖一次。

遇到这种情况,有两条路。一条是彻底关闭光猫的 TR069 远程管理通道,但我不建议普通用户这么做,因为光猫会失去和局端的通信,可能出现拨号异常,而且某些地区运营商可能会检测到并限制你的宽带。另一条就是接受现状,在每次被覆盖后重新改一遍,或者把“同步时间”避开。我选择的方法是定期检查,发现异常就重新连上 Telnet 改回去,并且把修改命令写成脚本,一键执行。这里只是分享我的应对思路,不鼓励你们模仿硬扛网管,毕竟断网的风险是自己的。

5.2 字段名不一致和“找不到表”的处理办法

很多朋友照着我的命令敲,却发现提示ERROR或者找不到DhcpCfg表。这是因为固件版本不同,表名和字段名都有差异。我自己也遇到过:在别人的设备上,DHCP 配置表不叫DhcpCfg,而叫DHCPv4ServerCfg;DNS 字段也不叫Dns1,而是DNSServers。这时候怎么办?我建议使用华为光猫命令行的自动补全功能。在sendcmd 1 DB p后面敲一个字母,然后按 Tab 键,它会自动列出所有可能的表名。比如输入sendcmd 1 DB p D再按 Tab,就能看到所有 D 开头的表。逐个查看,总能找到带 DHCP 字样的表。

5.3 客户端不生效的排查顺序

有时候光猫端配置是改好了,但手机电脑还是用旧 DNS。这时候不要怀疑光猫,先看终端本身的缓存。

排查顺序我总结为:

  1. 在终端上执行ipconfig /flushdns清空 DNS 缓存。
  2. 执行ipconfig /renew重新获取 DHCP 租约。
  3. 如果还不行,检查终端上是否手动设置过“静态 DNS”。手动配置的优先级远高于 DHCP 下发。
  4. 如果你用了无线路由器作为二级网关,问题往往出在二级路由器上——它的 WAN 口是从光猫获取 IP,但它的 LAN 口可能会自己分配 DNS 给下面的设备。需要在二级路由器里把 DNS 改成自动获取,或者也改成你想要的公共 DNS。

我一度以为光猫没改成功,排查半天才发现是客厅那个老旧无线路由器在里面“捣鬼”。

6. 尾声:稳定运行三个月后的几点心得

HN8156XR-10 这台光猫现在在我家已经稳定跑了快三个月。DHCP 租期保持在 86400 秒,DNS 走的是我自建的 AdGuard Home 和备用公共 DNS,设备掉线问题基本消失,网页解析速度也比原来快了不少。这里分享一下我最后想说的几点实在话。

首先,Telnet 操作光猫的底线是“只改局域网相关参数”,不要去碰拨号账号、注册标识、VLAN 这些运营商核心配置。改错了轻则上不了网,重则需要重新注册,麻烦的还是自己。其次,每一次修改都要有记录。我后来把sendcmd 1 DB p DhcpCfg和sendcmd 1 DB p Lan的输出定期备份,半年下来积累了三个不同时期的配置快照,每次调整都能清楚看到差异。

最后再分享一个小技巧:如果你不想每次开电脑搜命令,可以把常用修改命令写成一个.txt文件,用 Putty 登录后直接把内容粘贴进去,一次执行完。但粘贴的时候注意看每一条命令的反馈,别一股脑全敲完发现中间某条报错了,回头又要从头排查。光猫这种嵌入式设备,每一次 Telnet 会话后的反馈都值得多看两眼。

折腾这些,不是为了炫技,而是为了让家里的网络真正符合自己的使用习惯。希望这篇实战记录能帮你少走一点弯路。如果有其他光猫型号的配置问题,也欢迎在评论区互相交流,我尽量把我了解的情况分享出来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 19:28:52

无人机航拍车辆检测数据集构建与YOLO调优实战

这几年无人机硬件越来越普及&#xff0c;但真正让无人机从“会飞的相机”变成“会思考的巡检员”的&#xff0c;其实是在后台默默工作的算法。我前后也做过几个和无人机视觉相关的项目&#xff0c;其中最磨人、也最有成就感的一块&#xff0c;就是低空航拍视角下的车辆目标检测…

作者头像 李华
网站建设 2026/10/20 19:27:40

AI专利检索开源项目实战:从语义搜索到RAG问答

我最早对专利检索采用AI手段产生强烈兴趣&#xff0c;是因为一次"明明应该搜到&#xff0c;却怎么都搜不到"的挫败&#xff1a;在给一个技术交底书做prior-art检索时&#xff0c;我用尽了能想到的关键词组合&#xff0c;结果在专利库里面翻到第三页才看到一个高度相似…

作者头像 李华
网站建设 2026/10/20 19:19:09

显示驱动调试工具链详解:示波器、逻辑分析仪与寄存器回读

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 19:17:29

GCC四阶段编译原理与多文件工程构建实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/20 19:17:07

ESP32-S3 Dev Module 从选型到 Arduino 开发踩坑实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华