ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

华为B610-4E光猫刷机指南:补全Shell与升级050固件实战

华为B610-4E光猫刷机指南:补全Shell与升级050固件实战 1. 华为B610-4E光猫刷机前必须搞清楚的事华为B610-4E这款光猫在折腾圈里算是老面孔了。它本质上是一台GPON上行、带4个千兆网口和双频WiFi的企业级光猫设备运营商定制版本出厂时把Shell权限锁得很死很多高级功能——比如自定义DNS、调整连接数限制、查看完整的系统日志、修改SN和MAC——都被隐藏了。补全Shell和升级050固件这两件事基本就是解锁这台设备全部潜力的必经之路。我前后折腾过好几台B610-4E有电信版、联通版也有移动版固件版本从早期的010到后来的050都碰过。说实话第一次刷的时候踩了不少坑差点把一台设备刷成砖。所以这篇内容我会把整个流程拆得很细包括每一步为什么要这么做、哪些地方容易出问题、怎么判断操作是否成功。适合已经有一定动手能力、想让光猫发挥更大价值的朋友参考。如果你连Telnet和SSH是什么都还没概念建议先补一下Linux基础操作再来动手。注意刷机有风险操作不当可能导致设备无法启动。本文仅分享技术思路和实操经验请自行评估风险做好备份再动手。1.1 为什么要补全Shell运营商给的光猫固件里Shell被裁剪过。你通过Telnet或者SSH登录进去之后能用的命令非常有限很多关键目录根本进不去su提权也会被限制。补全Shell的本质就是替换掉系统里那个被阉割的Shell文件换成一个功能完整的版本让你能像操作一台普通Linux设备一样去管理光猫。补全Shell之后能做什么举几个实际场景你可以直接读取/proc下面的硬件信息查看光模块的收发光功率可以手动修改/etc下的配置文件来调整DHCP地址池范围可以挂载U盘做离线备份甚至可以在光猫上跑一些轻量级的脚本做定时任务。对于喜欢折腾网络的人来说这些能力意味着你不再被运营商的固件限制绑死。1.2 050固件相比旧版有什么变化050固件是华为B610-4E后期比较成熟的一个版本。相比早期的010和020050在稳定性上有明显提升尤其是长时间高负载运行时的内存泄漏问题得到了改善。另外050版本对IPv6的支持更完善DHCPv6-PD的前缀下发更规范配合下游路由器做IPv6穿透时不容易出问题。还有一个很实际的改变050固件里Web管理界面的响应速度更快了旧版本在同时打开多个配置页面时经常卡顿050基本没有这个问题。不过要注意050固件对Shell的封锁也更严格了所以通常的做法是先降级到可补全Shell的版本补完Shell之后再升级到050这样既能拿到完整权限又能享受新固件的稳定性。1.3 需要准备的工具和材料动手之前先把东西备齐免得操作到一半发现缺工具。以下是我实际用到的清单网线一根连接电脑和光猫的LAN口建议用质量好一点的劣质网线在刷机过程中掉包会很麻烦。电脑一台Windows系统就行需要能开Telnet客户端和TFTP服务。TFTP服务器软件推荐用Tftpd32或者Tftpd64轻量、稳定刷机场景下够用。Telnet客户端Windows自带的就行或者用PuTTY、SecureCRT也可以。补全Shell所需的文件通常是一个allshell.bin或者类似的二进制文件不同版本对应不同文件搞错了会出问题。050固件包一般是.bin格式的升级文件大小在几十MB左右。螺丝刀和TTL线备用万一刷出问题进不了系统TTL串口是最后的救命通道。B610-4E的TTL针脚在主板上有标注拆机后能看到。提示所有文件建议提前校验MD5或SHA256值确保下载过程中没有损坏。固件文件损坏是刷机变砖的头号原因。2. 补全Shell的核心原理与实操步骤补全Shell这件事听起来很玄乎但拆开来看逻辑并不复杂。光猫启动时会加载一个精简版的Shell程序这个程序对用户输入的命令做了白名单限制。我们要做的就是用一个功能完整的Shell二进制文件替换掉它然后让系统重新加载。2.1 理解光猫的启动流程和文件系统华为B610-4E的启动流程大致是这样的上电后Bootloader先跑起来然后加载内核内核挂载根文件系统最后启动init进程和各个服务。根文件系统通常是squashfs格式只读的但有一部分是overlay的可写层用户的配置修改就存在这里。Shell文件一般位于/bin或者/usr/bin目录下名字可能是sh、ash或者cli。运营商定制固件里这个文件被替换成了一个受限版本。补全的思路就是通过Telnet登录后利用系统里已有的TFTP客户端功能从电脑上下载完整的Shell文件到/tmp目录然后覆盖掉原来的Shell文件最后重启系统让新的Shell生效。这里有个关键点/tmp目录通常是tmpfs重启后数据会丢失。所以覆盖操作必须在同一个会话里完成不能分两次做。另外覆盖之前一定要备份原文件万一新Shell有问题还能换回来。2.2 开启Telnet并登录光猫B610-4E默认是不开Telnet的需要先通过Web界面或者特定工具打开。不同运营商版本的开启方式略有差异但大体思路一致用管理员账号登录光猫Web管理界面。电信版的超级管理员账号通常是telecomadmin密码是nE7jA%5m或者admintelecom联通版可能是CUAdmin移动版可能是CMCCAdmin。如果这些默认密码不对说明已经被改过了需要先恢复出厂或者用其他方式获取。登录后找到“安全”或者“系统工具”菜单里面通常有“Telnet使能”选项勾选开启。如果Web界面里没有这个选项可以尝试通过特定URL直接访问隐藏页面比如http://192.168.1.1/enabletelnet.cgi之类的地址具体路径因固件版本而异。开启后用电脑的Telnet客户端连接192.168.1.1端口23。登录账号一般是root密码可能是admin或者跟Web管理员密码相同。注意有些版本的固件在开启Telnet后需要重启光猫才能生效。如果连不上先重启一次再试。2.3 用TFTP把Shell文件传进去Telnet登录成功后你会看到一个命令行界面。先确认当前Shell的受限程度试试ls /、cd /etc、cat /proc/cpuinfo这些命令如果大部分都被拒绝说明确实需要补全。接下来在电脑上启动TFTP服务器把补全Shell的文件放到TFTP的根目录下。然后在Telnet会话里执行cd /tmp tftp -g -r allshell.bin -l allshell.bin 192.168.1.100这里的192.168.1.100是你电脑的IP地址需要确保电脑和光猫在同一网段。-g表示从远程获取文件-r指定远程文件名-l指定本地保存的文件名。传输完成后用ls -l确认文件大小是否正确。如果文件大小是0或者明显偏小说明传输失败检查防火墙是否挡住了TFTP的69端口。2.4 替换Shell文件并验证文件传进去之后先备份原Shellcp /bin/sh /tmp/sh.bak然后把新Shell复制过去cat /tmp/allshell.bin /bin/sh chmod 755 /bin/sh这里用cat加重定向而不是直接cp是因为有些固件里/bin目录的挂载方式比较特殊直接cp可能会报“Text file busy”错误。用cat写入可以绕过这个问题。写入完成后直接在当前会话里执行/bin/sh如果能看到一个正常的Shell提示符并且ls /、cd /etc这些命令都能正常执行说明补全成功了。这时候可以再执行reboot重启光猫让系统用新的Shell启动。实操心得替换Shell之前先用mount命令看一下/bin目录是不是只读挂载。如果是只读的需要先mount -o remount,rw /重新挂载为可写否则写入会失败。2.5 补全Shell后的常用命令清单Shell补全之后下面这些命令基本都能用了我列一下平时用得最多的命令用途cat /proc/optic/optic_info查看光模块收发光功率ifconfig查看所有网络接口状态route -n查看路由表iptables -L -n查看防火墙规则df -h查看各分区使用情况free -m查看内存占用ps aux查看所有运行中的进程nvram get读取设备配置参数nvram set修改设备配置参数这些命令在排查网络问题、优化光猫性能时非常有用。比如光功率异常时cat /proc/optic/optic_info能直接告诉你收光是多少dBm判断是不是光纤链路有问题。3. 升级050固件的完整流程补全Shell之后升级050固件就相对简单了。但这里有个顺序问题一定要先补Shell再升级固件因为050固件本身封锁了Shell补全的入口升级后再想补就麻烦了。3.1 升级前的备份工作升级固件会清空一部分配置所以提前备份是必须的。需要备份的内容包括宽带拨号账号密码这个如果忘了升级后上不了网就得找运营商要了。WiFi名称和密码虽然可以重新设但备份一下省事。端口映射和DMZ配置如果有自定义的端口转发规则记下来。静态IP分配表DHCP里绑定的MAC-IP对应关系。光猫的SN和MAC地址有些地区升级后需要重新注册这些信息用得上。备份方式有两种一种是通过Web界面的“配置备份”功能导出配置文件另一种是在Telnet里直接用cat命令把关键配置文件复制到U盘或者通过TFTP传回电脑。我一般两种都做双保险。3.2 通过Web界面上传固件050固件的升级入口在Web管理界面的“系统工具”-“固件升级”页面。操作步骤用管理员账号登录Web界面。找到固件升级选项点击“浏览”选择下载好的050固件文件。点击“升级”按钮系统会开始上传固件并自动重启。整个过程大概需要3到5分钟期间千万不要断电或者拔网线。升级完成后光猫会自动重启重启后检查固件版本号是否变成了050。注意有些版本的Web界面在升级时会校验固件签名如果固件包不是官方原版或者被修改过可能会提示“固件无效”。遇到这种情况可以尝试在Telnet里用命令行方式升级。3.3 用命令行方式升级固件如果Web界面升级失败或者你想更精细地控制升级过程可以用Telnet命令行来操作。先把050固件通过TFTP传到光猫的/tmp目录cd /tmp tftp -g -r B610-4E_050.bin -l B610-4E_050.bin 192.168.1.100然后执行升级命令。华为光猫的固件升级命令通常是sys upgrade /tmp/B610-4E_050.bin或者flash_eraseall /dev/mtd5 nandwrite -p /dev/mtd5 /tmp/B610-4E_050.bin具体用哪个命令取决于固件的分区布局。sys upgrade是华为封装好的升级工具会自动处理分区写入和校验推荐优先用这个。如果sys upgrade不存在再用flash_eraseall和nandwrite手动写入。写入完成后执行reboot重启。重启过程中观察指示灯状态正常的话电源灯和PON灯会交替闪烁最后PON灯常亮表示注册成功。3.4 升级后的验证和配置恢复重启完成后先登录Web界面确认固件版本。然后在Telnet里检查Shell是否还能正常使用ls / cd /etc cat /proc/version如果这些命令都能正常执行说明Shell在升级后保留了。接下来把之前备份的配置恢复回去重点检查宽带拨号、WiFi、端口映射这几项。有时候升级后光猫会自动恢复出厂设置需要重新注册。注册方式取决于运营商电信通常需要输入LOID联通可能需要SN和密码移动可能是Password认证。这些信息在升级前的备份里应该都有记录。4. 常见问题排查与避坑经验刷机这件事出问题不可怕可怕的是不知道问题出在哪。下面这些是我实际遇到过的典型情况整理成速查表方便对照。4.1 Telnet连不上怎么办Telnet连不上是最常见的问题原因可能有以下几种现象可能原因解决方法连接被拒绝Telnet服务没开启检查Web界面里的Telnet使能选项或尝试隐藏URL连接超时电脑和光猫不在同一网段确认电脑IP是192.168.1.x子网掩码255.255.255.0登录后立即断开账号密码错误尝试root/admin、root/root、admin/admin等组合能连上但命令受限Shell未补全按本文第2章流程补全Shell如果所有方法都试过了还是连不上可以考虑用TTL串口线直接连接主板。B610-4E的TTL针脚通常是4针波特率115200用PuTTY或者SecureCRT连接后能看到完整的启动日志也能直接进入Bootloader进行底层操作。4.2 TFTP传输失败怎么排查TFTP传输失败通常有几个原因防火墙挡住了69端口、TFTP服务器根目录设置不对、光猫和电脑之间的网络不通。排查步骤在电脑上先用tftp localhost get testfile测试TFTP服务器本身是否正常。检查Windows防火墙临时关闭或者添加69端口的入站规则。在光猫上ping 192.168.1.100确认网络连通性。确认TFTP服务器软件里设置的根目录就是存放Shell文件的目录。实操心得Tftpd32有时候会因为权限问题无法读取文件试试以管理员身份运行。另外文件路径里不要有中文和空格否则容易出问题。4.3 升级后无法上网的排查思路升级050固件后无法上网先别慌按顺序排查检查PON灯状态PON灯不亮说明光路没通检查光纤是否插好光功率是否正常。检查注册状态登录Web界面看设备是否已注册未注册的话需要重新输入LOID或SN。检查WAN连接配置升级后WAN连接可能被重置需要重新配置拨号账号密码。检查VLAN ID不同地区的VLAN ID不同配错了上不了网。这个信息可以问运营商或者在旧配置备份里找。检查DNS设置有时候能拨号但上不了网是DNS没配好手动设成114.114.114.114试试。4.4 刷机变砖后的救砖方法万一刷机过程中断电或者固件损坏导致设备无法启动还有救砖的机会。B610-4E的救砖主要靠TTL串口和TFTP配合拆开光猫外壳找到TTL针脚用USB转TTL线连接电脑。打开串口终端波特率115200上电后快速按任意键进入Bootloader。在Bootloader里设置电脑IP和光猫IP通过TFTP把完整的固件包传进去。执行刷写命令等待完成后再重启。这个过程需要一定的动手能力而且不同批次的B610-4E主板布局可能略有差异。如果自己没有把握建议找有经验的朋友帮忙或者直接换一台设备毕竟时间成本也是成本。4.5 几个容易被忽略的细节最后分享几个我在多次刷机中总结的小细节都是文档里不会写的刷机前把电脑的WiFi关掉只保留有线连接避免网络接口混乱导致TFTP走错网卡。光猫的LAN口选择有讲究B610-4E的LAN1通常是千兆口刷机时优先用LAN1稳定性最好。升级固件时不要用USB延长线或者劣质网线传输过程中一个丢包就可能导致固件写入不完整。补全Shell后先别急着升级固件在旧固件上多测试几个命令确认Shell稳定可用再升级这样出问题容易回退。记录每一步的操作和输出用记事本或者终端软件的日志功能把整个过程记下来出问题时方便回溯。我在实际使用中发现050固件配合补全的ShellB610-4E的长期运行稳定性比原厂状态好很多。尤其是做桥接配合软路由使用时连续运行几个月都不用重启。当然每个人的网络环境不同具体效果可能有差异关键是理解每一步操作的原理这样遇到问题才能自己判断和解决。
返回列表