如何用开源RTL960x方案彻底掌控光猫:从克隆OMCI到2.5G满速的完整实录
如何用开源RTL960x方案彻底掌控光猫:从克隆OMCI到2.5G满速的完整实录
【免费下载链接】RTL960xHacking & Reverse Engineering RTL960x-based xPON ONTs to suit your OLT项目地址: https://gitcode.com/gh_mirrors/rt/RTL960x
运营商配的光猫,往往是千兆宽带体验的最大瓶颈——性能拉胯、功能锁死、动不动就发热重启。一年前我被这个问题折磨到崩溃,最终入坑了RTL960x 开源项目:一套对基于 Realtek 芯片的 xPON 光猫(SFP 猫棒)进行逆向工程与深度定制的完整方案,它让我扔掉运营商光猫、把光纤直插路由器 SFP 口,把 2.5G 宽带跑到了接近满速。这篇文章是我从零到跑通的完整实录,包括踩过的每一个坑。
一、项目速览:它到底解决了什么?
一句话:RTL960x 让一只几十块钱的 SFP 猫棒,冒充你原厂光猫的身份去通过 OLT 认证,然后完全按你的意志转发流量。
OLT(运营商局端设备)只认"你是谁",不管"你长得像谁"。只要把序列号、厂商 ID、硬件版本、软件版本这些 OMCI 身份参数克隆到位,猫棒就能拿到和原厂光猫完全一样的服务配置。对比一下原厂与开源方案:
| 维度 | 原厂光猫 | RTL960x 猫棒方案 |
|---|---|---|
| 网络性能 | 千兆口封顶,2.5G 宽带白交钱 | RTL9601D 稳定跑满 2.5G |
| 配置权限 | 超级密码层层隐藏 | flash set一条命令改任何参数 |
| VLAN 处理 | 透传/路由行为由 ISP 写死 | 透明、Tagging、QinQ 自由切换 |
| 管理方式 | 运营商远程可改 | 本地 WebGUI + Telnet 完全掌控 |
二、上手实录:从零到跑通的五个关键步骤
2.1 选猫棒:四款 RTL9601C1 设备怎么挑
项目文档维护了一张完整的设备支持表,核心芯片是 RTL9601B/C1/D 三代。注意:只有 RTL9601D 才能稳定跑 2.5G,这一点直接决定你的选择:
| 型号 | SoC | 存储 | 模式 | 2.5G | 特点 |
|---|---|---|---|---|---|
| VSOL V2801F | RTL9601CI | 8MiB | VEIP & PPTP | 部分支持 | 支持四端口仿真,社区资料最全 |
| TWC TWCGPON657 | RTL9601CI | 16MiB | VEIP & PPTP | 部分支持 | 可直接刷 V2801F 固件 |
| UFiber Instant | RTL9601CI | 8MiB | PPTP | 不支持 | 仅 LAN1 口可用 |
| ODI DFP-34X-2C2 | RTL9601D | 8MiB | VEIP & PPTP | ✅ 稳定 | 我的最终选择 |
我一开始贪便宜买了 UFiber Instant,结果 2.5G 宽带根本跑不满,最后换了DFP-34X-2C2才解决。结论先行:要 2.5G 就直接选 RTL9601D,别在旧芯片上浪费时间。
2.2 抄作业前先备份:从原厂光猫扒全套认证参数
这是整个流程里最不能跳过的一步。GPON 认证主要看PLOAM 密码 + GPON 序列号 + OMCI 身份四件套,EPON 还要 LOID 和 MAC。登录原厂光猫 Telnet 后,用flash get把关键参数全部抄下来:
flash get GPON_SN # 序列号,如 HWTC35000000 flash get PON_VENDOR_ID # 厂商ID,如 HWTC(华为) flash get GPON_ONU_MODEL # 设备型号,如 HG8240H flash get HW_HWVER # 硬件版本 flash get OMCI_SW_VER1 # 软件版本 flash get OMCI_SW_VER2 flash get GPON_PLOAM_PASSWD # PLOAM密码 flash get ELAN_MAC_ADDR # MAC地址 flash get LOID # EPON 才需要项目文档里有一张《Stock ONU》速查表,整理了各 ISP 原厂光猫的 OMCI 参数(比如马来西亚 TM 的 HG8240H 对应HWTC/BF9.A/V3R017C10S100),没有 Telnet 权限时可以直接查表参考。
2.3 灵魂克隆:把猫棒的 OMCI 身份改成原厂模样
拿到原厂参数后,登录猫棒 Web 后台(默认192.168.1.1,DFP-34X-2C2 默认账密admin/admin),进入 OMCI 信息页把身份参数填进去:
也可以直接走 Telnet 用命令写,注意所有flash set都要reboot才生效,所以要一次性写完:
# 认证身份(GPON) flash set GPON_SN HWTC12345678 # 必须与原厂一致 flash set GPON_PLOAM_PASSWD DEFAULT012 # PLOAM密码 flash set PON_VENDOR_ID HWTC # 序列号前缀必须与之一致 # OMCI 设备身份 flash set GPON_ONU_MODEL HG8240H flash set HW_HWVER BF9.A flash set OMCI_SW_VER1 V3R017C10S100 flash set OMCI_SW_VER2 V3R017C10S100 flash set OMCI_FAKE_OK 1 # 对不认识的OMCI消息一律回OK flash set OMCI_OLT_MODE 1 # 1=华为OLT兼容模式 reboot这里有一个文档反复强调的细节:GPON 序列号前缀必须等于PON_VENDOR_ID,两者不一致必然认证失败。Vendor ID 常见值有HWTC(华为)、ZTEG(中兴)、ALCL(诺基亚)、FHTT(烽火)、UBNT(优倍快)。
2.4 首次上线:O5 状态与 VLAN 配置
重启后登录 WebGUI,看到状态页显示O5(Operation State)就说明注册成功了。但这只是第一步——OLT 是否下发正确的 VLAN 配置才是能不能上网的关键。项目改版的固件在 WebGUI 里直接展示 ME 84(VLAN 标签过滤)和 ME 171(扩展 VLAN 映射)两张表,哪个口被 OLT 禁了、VLAN 映射到哪一目了然:
如果 OLT 下发的 VLAN 不对,可以用 Telnet 强制配置转发模式,手动指定 VLAN 的标签处理方式:
flash set VLAN_CFG_TYPE 1 # 1=手动模式(0=自动检测) flash set VLAN_MANU_MODE 0 # 0=透明模式,1=Tagging(QinQ),2/3=特殊场景多数家庭宽带用**透明模式(0)**即可——猫棒不碰 VLAN 标签,原样桥接给路由器。只有需要叠加标签的运营商才用 QinQ。
2.5 榨干 2.5G:LAN_SDS_MODE 与 SFP 协商
这是 RTL960x 项目最值钱的部分。猫棒和路由器之间的 2.5G 链路需要手动指定协商模式,LAN_SDS_MODE有 8 档,关键三档是:
flash set LAN_SDS_MODE 4 # HiSGMII PHY,2.5G物理层协商(多数路由器用这个) flash set LAN_SDS_MODE 5 # HiSGMII MAC,2.5G链路层 flash set LAN_SDS_MODE 6 # 2500Base-X,光纤直连模式(MikroTik RB5009等用这个)项目维护了一份非常详尽的SFP 兼容性清单:MikroTik RB5009/CCR2004、TP-Link ER2260T、Asus RT-AX89X 等都有社区实测结论。比如 MikroTik 大部分型号要求 RouterOS 7.11+ 且配LAN_SDS_MODE 6的 2500baseX;CCR2116 则要用模式 4。照着清单抄作业,能少走一半弯路。
配置完成后,我在马来西亚 TM Unifi 2.5G 套餐上的实测结果相当震撼:
RTL960x猫棒在TM Unifi 2.5G宽带下的实测网速,下载达1892Mbps接近满速
下载 1892 Mbps、上传 436 Mbps、延迟 5ms——接近 2.5G 线速,远超原厂光猫千兆口的极限。
三、进阶挖掘:普通教程不会告诉你的隐藏能力
3.1 四口仿真:一个猫棒顶四个光猫
部分运营商(尤其东南亚多 ISP 合租楼宇场景)用 PPTP 模式把不同 LAN 口绑定给不同运营商:LAN1 接 ISP-A、LAN2 接 ISP-B。猫棒只有一个网口怎么模拟四个 LAN 口?答案是四端口仿真——但注意,项目文档明确:目前只有 VSOL V2801F 支持四口仿真,DFP-34X-2C2 则要走 WebGUI 的multi_wan_generic.asp手动桥接。
RTL960x猫棒四端口仿真实现多ISP多服务共享的拓扑示意图
核心原理是修改 OMCI 里的 VEIP(虚拟以太网接口点)配置:先把OMCI_CUSTOM_ME从默认 65536 改为 65792(即加上0x100位开启定制功能),再把OMCI_VEIP_SLOT_ID设为 14(对应 VEIP EntityId 的0x0e):
flash set OMCI_CUSTOM_ME 65792 # 开启 cf_apply_customized_veip_slot_id flash set OMCI_VEIP_SLOT_ID 14 # VEIP Slot ID reboot # 验证 omcicli mib get 329 # 应看到 EntityId: 0x0e013.2 面对"假 O5":认证通过但就是没网
部分诺基亚/阿尔卡特朗讯 OLT 会给猫棒一个虚假的 O5 状态——状态栏显示已上线,但 OLT 就是不推送 ME 84/ME 171,导致没有任何流量。项目文档称之为 Fake O5。排查思路是按"订阅者身份 → 设备身份 → 设备能力"三层补全参数:
# 订阅者身份 flash set GPON_PLOAM_FORMAT 1 # 设备身份(克隆原厂) flash set GPON_ONU_MODEL HG8240H flash set GPON_SN HWTC12345678 # 设备能力 flash set OMCC_VER 128 flash set OMCI_TM_OPT 0 # 流量管理:0=优先级控制 flash set OMCI_FAKE_OK 1如果是 DFP-34X-2C2,还可以用flash set OMCI_OLT_MODE 21强制 OLT 使用自定义身份——原理是触发固件的一个"分段错误"行为来阻止软件版本被 OLT 覆盖,属于社区逆向出来的黑科技。
3.3 改固件不用拆机:QEMU 模拟器先跑一遍
项目在Tools/emulator里放了一个 QEMU 固件模拟器,这是我最喜欢的工具——改固件不再有变砖风险:
# 安装依赖:tar、squashfs-tools、qemu-user-static ./qemu-test.sh V2801F_V1.9.0-200825.tar脚本会用 QEMU 以 MIPS 架构 chroot 运行固件镜像,直接落地一个 BusyBox shell,效果等同于 Telnet 进猫棒。你可以在里面随意flash set、调试脚本;退出时把custom目录下的文件自动打回 squashfs 镜像,生成新的固件包。项目里Firmware_Mod目录的定制 WebGUI、修复脚本(比如fix_speed.sh、fix_vlan_tag.sh)都是这么改出来的。
四、避坑清单:我踩过的坑与社区高频问题
用"现象 → 原因 → 解法"三段式整理,遇到问题直接对号入座:
| 现象 | 原因 | 解法 |
|---|---|---|
| 猫棒在 O2 和 O5 之间反复横跳 | 接收光功率太低(RX ≤ -23dBm) | 清洁光纤接头;pon show查看光功率;确认不劣于 -27dBm |
| O2-O5 循环且光功率正常 | 部分 OLT(如烽火)对认证信息过严 | 核对序列号/PLOAM,必要时克隆原厂全部 OMCI 参数 |
| 状态 O5 但完全没网 | 诺基亚 OLT 的 Fake O5,OMCI 下发被挂起 | 按上文三层补全参数,开启OMCI_FAKE_OK |
| 改了 MAC 后无限自动重启 | V2801F 的VS_AUTH_KEY锁 / DFP 的MAC_KEY锁 | 改 MAC 必须重新生成对应 key:V2801F 用VsAuthKeyGen.exe,DFP 用echo -n "hsgq1.9aMAC地址" \| md5sum |
| 插上 SFP 不协商、永远 1G | 路由器 SFP 口不支持 2.5G 协商 | 查兼容性清单选LAN_SDS_MODE;MikroTik 需升级 RouterOS 7.11+ |
| 网速慢、上传尤其拉胯 | OMCI_TM_OPT流量管理不匹配 | 尝试 0/1/2 三档切换后测速 |
五、生态速览:文档、固件与社区
这个项目的成熟度在同类逆向工程里是顶级的。Docs/下按场景整理了十几篇文档:从StickSetup.md(配置总纲)、Stock_ONU.md(原厂 OMCI 参数库)、ISP_specific_configuration.md(各国运营商配置)到fakeO5.md、2.5Gb.md(SFP 兼容矩阵),几乎覆盖每个踩坑点。Firmware/按设备归档了 V2801F、TWCGPON657、DFP-34X-2C2 的历史固件版本,Firmware_Mod/则是社区改好的成品。固件升级走 WebGUI 上传.tar包即可:
注意:固件包一旦刷错可能直接变砖,升级前务必确认设备 SoC 型号——ODI 曾用同一型号名出过 RTL9601C1 和 ZTE 芯片两个版本,固件互不兼容。
六、收尾:给新手的上手建议
我的最终建议,按重要性排序:
- 先备份再动手:原厂光猫所有
flash get参数截图存档,这是你唯一的后悔药。 - 2.5G 目标直接买 RTL9601D(DFP-34X-2C2),别为省钱走弯路。
- 照着
2.5Gb.md兼容清单选路由器,SFP 协商是最容易卡住的环节。 - 改一个参数测一次,
flash set后必须reboot,别攒一堆一起重启。 - 改固件先跑 QEMU 模拟器,别拿真机当试验田。
最后必须提醒:光猫直插路由器属于运营商规则边缘地带,一个配置错误的 ONU 可能引发整个 PON 分光器下的网络中断,被 ISP 拉黑甚至索赔的风险是真实存在的。折腾之前,请确认你的宽带套餐和当地运营商政策允许这么做,并且全程对自己的操作负责——这是这个项目写在 README 开头的第一原则。
我的 2.5G 光猫折腾之旅到这里就完整闭环了:从被运营商光猫卡在千兆,到猫棒直插路由器跑出 1892 Mbps,RTL960x 项目给我的不只是带宽,更是对自己网络设备的完全掌控权。如果你也受够了原厂光猫,这份实录就是为你准备的——按步骤来,稳一点,慢慢折腾。
【免费下载链接】RTL960xHacking & Reverse Engineering RTL960x-based xPON ONTs to suit your OLT项目地址: https://gitcode.com/gh_mirrors/rt/RTL960x
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
