手把手玩转 RTL960x 光猫 SFP:5 个里程碑彻底掌控你的 GPON 设备
【免费下载链接】RTL960xHacking & Reverse Engineering RTL960x-based xPON ONTs to suit your OLT项目地址: https://gitcode.com/gh_mirrors/rt/RTL960x
RTL960x 是一个面向 Realtek 芯片 xPON 光猫设备的开源逆向工程项目,核心目标是帮你摆脱运营商原厂固件的封闭限制,自由配置光猫的身份信息、VLAN 与 OMCI 协议参数,甚至解锁 2.5G 网络性能。简单说,它让一枚几十元的 GPON SFP 模块,变成完全听你指挥的"可编程光猫"。本文用 5 个里程碑带你从零上手,全程避坑。
换上 RTL960x 方案后,你能在 Web 界面实时看到 CPU、内存、运行时间与 LAN 配置,而原厂固件通常只给你一个简陋的登录页。
为什么你手里的运营商光猫需要"越狱"?
先看一个很常见的场景:你办了 1000M 甚至 2000M 宽带,但运营商送的 GPON 光猫只有一个千兆 LAN 口,测速死活跑不满;光猫默认开了路由模式,拨号、防火墙全被锁死,你想桥接到自己的软路由或高端路由器,连个设置入口都找不到。
这些问题背后的根源是同一个:原厂固件不为你服务,只为运营商服务。它按运营商的模板刻死了设备身份、VLAN 映射、认证方式,把高级配置全部隐藏。
RTL960x 项目的思路截然不同:它不要求你改造运营商设备,而是提供一套完整的"克隆 + 替换"方案——把你原光猫的认证身份抄下来,写入一枚 RTL960x 芯片的 SFP 光模块,然后把这枚模块直接插进你自己的路由器、交换机或软路由的 SFP 口。光模块在运营商侧"伪装"成你的原光猫,在网络侧又完全听你指挥。
| 对比维度 | 运营商原厂光猫 | RTL960x 开源方案 |
|---|---|---|
| 管理权限 | 关键参数锁定 | 全部 flash 变量可读可写 |
| 网络模式 | 多为路由模式 | 桥接 / 路由 / 混合任选 |
| 接口速率 | 常见 1G 封顶 | 支持 2.5G 模式(部分型号) |
| 设备身份 | 出厂写死 | 可克隆任意 ONU 身份 |
| 升级维护 | 等运营商推送 | 社区持续维护固件 |
⚠️ 写在前面:改装后的光猫处于运营商管控之外,配置失误可能影响同一条光纤分光器上的其他用户,甚至触发运营商封禁。务必只在自己的线路上谨慎实验,本项目倡导的是"负责任地折腾"。
里程碑 1:认清你的硬件,选对固件
动手之前,先搞清楚一件事:RTL960x 不是一台设备,而是一个芯片家族。项目主要支持以下基于 RTL9601 系列芯片的 SFP 光模块:
| 型号 | 芯片 | 存储 | 支持模式 | 2.5G 支持 | 4 端口模拟 |
|---|---|---|---|---|---|
| VSOL V2801F | RTL9601CI | 8MiB | VEIP & PPTP | 需改造 | ✅ |
| T&W TWCGPON657 | RTL9601CI | 16MiB | VEIP & PPTP | 需改造 | ❌ |
| UFiber Instant | RTL9601CI | 8MiB | PPTP | ❌ | ❌ |
| ODI DFP-34X-2C2 | RTL9601D | 8MiB | VEIP & PPTP | ✅ 原生稳定 | 部分 |
两个容易踩坑的点:
- DFP-34X-2C2 有两个版本:早期有 ZTE 芯片的版本,后期才是 Realtek RTL9601D。两版固件完全不通用,买之前先确认芯片。
- TWCGPON657 与 V2801F 固件可互换(同属 RTL9601CI),这是社区实测结论,但其他型号之间不要乱刷。
选好硬件后,你还需要了解两个协议术语,后面配置会反复遇到:
- PPTP(物理路径终止点):光模块把业务直接绑定到某个 LAN 口,VLAN 由 OLT 管理。
- VEIP(虚拟以太网接口点):相当于一个虚拟接口,固件可以把它分配给 LAN 口、路由模式或管理通道。
大多数固件会优先走 PPTP,VEIP 作为补充。如果你的运营商在 ONT 上强制启用 ME 148(强制 PPPoE 拨号),可能无法直接桥接,需要联系运营商处理。
里程碑 2:先备份原光猫,再动新设备
这是整条路线上最不该跳过的一步。RTL960x 能否成功认证,取决于你能不能从原光猫那里"抄"来一整套身份参数。抄之前,先记录原始值,这是你的后悔药。
通过 Telnet 或 SSH 登录光模块后,执行下面的命令把原始配置全部打印出来存档:
# 备份原始身份参数,逐条执行并保存输出 flash get PON_VENDOR_ID # 厂商 ID,如 HWTC flash get GPON_SN # GPON 序列号 flash get GPON_PLOAM_PASSWD # PLOAM 密码(GPON 认证用) flash get LOID # LOID 账号(EPON 认证用) flash get LOID_PASSWD # LOID 密码 flash get ELAN_MAC_ADDR # 设备 MAC flash get HW_HWVER # 硬件版本 flash get OMCI_SW_VER1 # 软件版本 1 flash get OMCI_SW_VER2 # 软件版本 2 flash get GPON_ONU_MODEL # 设备型号 flash get OUI # OUI 组织标识符 flash get HW_SERIAL_NO # 硬件序列号各型号默认登录凭据速查(密码输了别慌,对照下表即可):
| 型号 | 用户名 | 密码 |
|---|---|---|
| DFP-34X-2C2 | admin | admin |
| TWCGPON657 | admin | system |
| UF-Instant | ubnt | ubnt |
| V2801F | admin | stdONU101 |
TWCGPON657 的 Telnet 默认关闭,需要先访问
http://192.168.1.1/bd/telnet_open.asp开启。
有些型号在修改 MAC 或硬件版本时会有鉴权锁:DFP-34X-2C2 需要生成 MAC_KEY,V2801F 需要 VS_AUTH_KEY。对应生成命令在项目文档Docs/StickSetup.md中有完整说明,遇到"改不进去"的情况先查这一项。
里程碑 3:克隆身份并部署固件
第一步:把原光猫的"身份证"写进新模块
运营商 OLT 认设备靠的就是一组身份参数。你需要在新的光模块里逐项写入原光猫的值。以模拟一台华为 HG8240H 为例:
# 写入 GPON 认证信息(GPON 网络核心是序列号 + PLOAM 密码) flash set GPON_SN HWTC35000000 # 序列号前 4 位必须等于厂商 ID flash set GPON_PLOAM_PASSWD DEFAULT012 # 写入 OMCI 上报的设备身份(OLT 据此下发配置模板) flash set PON_VENDOR_ID HWTC 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 ELAN_MAC_ADDR 781735000000 # 兼容性开关:对不认识的 OMCI 消息一律回 OK flash set OMCI_FAKE_OK 1 # 以华为 OLT 兼容模式运行 flash set OMCI_OLT_MODE 1三条经验帮你少走弯路:
- 厂商 ID 与序列号前缀必须一致,否则 OLT 直接拒绝注册。
- GPON 走 GEM 帧封装,不依赖 MAC,如果你的 ISP 把业务绑在 MAC 上,改的是路由器 WAN 口 MAC,而不是光模块的。
- 所有
flash set都要重启才生效,所以把所有参数写完后统一执行reboot。
第二步:通过 Web 界面上传固件
RTL960x 的 Web 管理界面支持直接升级固件包(.tar格式),整个过程和刷路由器一样直观:
固件升级页支持选择 .tar 固件包一键升级,升级过程中务必保证不断电。
进入http://192.168.1.1登录后,依次完成:设备状态检查 → 上传固件 → 重启。升级完成后,重新登录检查设备状态页,确认固件版本已经变化。
OMCI 信息页集中管理厂商 ID、软件版本、目标 OLT 模式等关键参数,改完点 Apply Changes 即可。
第三步:接线验证
把光模块插入路由器/交换机的 SFP 口,接上光纤,然后用 Telnet 检查 PON 状态:
# 查看 PON 状态,O5 表示已进入正常工作态 pon show # 查看 OLT 下发的 OMCI 配置 omci show看到 O5 只代表"链路通了",真正的业务配置(VLAN 等)还要靠下一步调优。
里程碑 4:调出满速——2.5G 模式与 VLAN 配置
2.5G:一个命令解锁线速
RTL960x 有 3 种 2.5G 模式,对应不同的物理层协商方式:
| 命令 | 介质 | 说明 |
|---|---|---|
flash set LAN_SDS_MODE 4 | HiSGMII PHY | 走 2.5G 物理层收发器 |
flash set LAN_SDS_MODE 5 | HiSGMII MAC | 走 2.5G MAC 层 |
flash set LAN_SDS_MODE 6 | 2500Base-X | 光模块之间直连(MikroTik 常用) |
MikroTik RB5009 / CRS3xx 系列普遍用LAN_SDS_MODE 6配合 RouterOS 的 2.5G base-X;部分设备(如 CCR2116)则需要LAN_SDS_MODE 4。对照项目文档里的设备兼容表选值,比盲目试错高效得多。顺便说一句,很多"速度不达标"的问题根源是千兆口被跑满导致缓冲膨胀(bufferbloat),换 2.5G 模式后这类问题会明显缓解。

社区用户实测:在 TM Unifi 网络下,RTL960x 光模块跑出了接近 1.9Gbps 的下载速度,突破了千兆瓶颈。
VLAN:三种模式对应三种玩法
VLAN 配置是整个方案里最灵活、也最容易翻车的部分。项目把 VLAN 处理方式抽象成 4 种模式:
| 模式 | 行为 | 适用场景 |
|---|---|---|
| Transparent(透传) | VLAN 原样透传,不改变 ID | 运营商不强制改标签 |
| Tagging(打标) | 去掉外层 VLAN 再桥接(Q-in-Q) | 需要重新打标的线路 |
| Remote Access | 远程管理通道 | 需要远程维护 |
| Special Case | 特殊场景处理 | 特定运营商定制需求 |
通过 Web 界面配置最省心:Advanced → VLAN Settings里选 Auto(自动识别)或 Manual(手动指定模式与 VLAN ID)。
VLAN 设置页支持自动/手动模式切换,并细分四种处理模式,VLAN ID 范围 0–4095。
典型的多 ISP 场景:单根光纤承载多家运营商业务,原光猫用 PPTP 把不同 LAN 口绑给不同 ISP。换成 SFP 光模块后,通过修改 Forwarding Operation(FwdOp)和 ME 84/171 配置,就能让模块在任意 LAN 口正确桥接不同运营商的 VLAN。

多运营商共享一根光纤的场景:不同 LAN 口绑定不同 ISP 的 VLAN,RTL960x 通过 ME 84/171 配置实现端口级 VLAN 桥接。
OMCI:和 OLT 打交道的"翻译官"
OMCI 是光猫与 OLT 之间的管理协议。OMCI_OLT_MODE决定光模块以哪种厂商风格与 OLT 对话:
| 值 | 含义 |
|---|---|
| 0 | 默认 Realtek 配置 |
| 1 | 华为 OLT 兼容模式 |
| 2 | 中兴 OLT 兼容模式 |
| 3 | 自定义模式(手动指定软硬件版本等) |
另外两个高频开关值得记住:OMCI_FAKE_OK 1让模块对不认识的 OMCI 消息一律回 OK(模拟厂商 ONU 时常用);OMCI_TM_OPT控制 OLT 的带宽管理模式,速度异常偏慢时可以试着改成 0 或 1。
里程碑 5:避坑清单——新手最常见的 5 个翻车点
坑 1:O2–O5 循环跳,连不上
- 症状:PON 状态在 O2 和 O5 之间反复横跳。
- 原因:接收光功率过低(低于 -23dBm),或认证信息不匹配。
- 解决:先清洁光纤接头再测
pon show的光功率;同时逐项核对序列号、PLOAM 密码与厂商 ID。
坑 2:显示 O5 却上不了网(Fake O5)
- 症状:状态已是 O5,但拿不到任何 VLAN 配置(ME 84/171 为空)。
- 原因:部分 Nokia/Fiberhome OLT 对不认识的设备会"假放行",OLT Vendor ID 常显示
02020202。 - 解决:重新核对全部身份参数;若仍无效,OLT 可能要求厂商私有 ME(350–399),需要按 ISP 要求补充配置。
坑 3:SFU 固件 VLAN 对不上
- 症状:PON 侧和 ETH 侧的 VLAN ID 不一致(如 100 被映射成 10)。
- 原因:不少 ISP 在 PON 接口和以太网接口采用不同的 VLAN 映射。
- 解决:用
omcicli mib get 84查看 OLT 实际下发的 VLAN,再对照修改本机映射。
坑 4:改 MAC / 硬件版本被拒绝
- 症状:
flash set ELAN_MAC_ADDR提示失败。 - 原因:新固件有鉴权锁。DFP-34X-2C2 要求 MAC_KEY,V2801F 要求 VS_AUTH_KEY。
- 解决:按
Docs/StickSetup.md里的算法生成对应 key 后先写入再改 MAC。
坑 5:刷错固件变砖
- 症状:升级后设备无法启动。
- 原因:不同芯片(RTL9601CI vs RTL9601D)固件不通用,ZTE 版 DFP 误刷 Realtek 固件也会出问题。
- 解决:刷前确认芯片型号;固件包放
Firmware/目录下按型号取用。真变砖了,可参考Tools/emulator与 UART 文档尝试救砖。
项目结构速览:东西都在哪里
| 目录 | 内容 | 什么时候用 |
|---|---|---|
Docs/ | 全部操作文档(StickSetup、TroubleshootSetup、2.5Gb 等) | 动手前先读 |
Firmware/ | 各型号官方固件包(.tar) | 刷机时取用 |
Firmware_Mod/ | 社区修改版固件(Web 界面、脚本、证书) | 想用增强版 Web 界面时 |
Firmware_Router/ | 部分路由器厂商的 2.5G 调试固件 | 路由器侧配合调优 |
Tools/ | 固件模拟器、重置脚本、抓包工具 | 调试与救砖 |
想进一步深入,按这个顺序读文档最顺:Docs/StickSetup.md(部署全流程)→Docs/FLASH_GETSET_INFO.md(每个 flash 变量的含义)→Docs/TroubleshootSetup.md(问题排查)→Docs/2.5Gb.md(2.5G 设备兼容矩阵)。
给新手的四条行动建议
- 先备份再折腾:原光猫的每一个身份参数都值得存档,这是你回退和排障的底气。
- 一次只改一个变量:改一项、重启、验证,再改下一项,出问题能立刻定位。
- 优先用 Web 界面:VLAN、OMCI、固件升级在图形界面里更直观,Telnet 留给进阶调试。
- 从社区案例找参照:项目文档里记录了多国运营商的成功案例(TM Unifi、Orange、Hinet 等),先看有没有和你同运营商的先行者。
下一步该做什么?如果你手上正好有一枚 RTL960x 光模块,现在就去翻出原光猫,执行里程碑 2 的备份命令,把身份参数抄下来——这是整个改造唯一无法事后补救的环节。抄完身份、选好固件,你就已经走完了 80% 的路。
进阶玩家可以继续探索三条延展路线:一是用Tools/emulator在电脑上模拟固件环境,改 Web 页面零风险;二是研究Firmware_Mod里的社区补丁(如针对 Fake O5 的 OLT 信息增强页),定制你自己的管理界面;三是为设备接入 Grafana / Prometheus 遥测,把光功率、温度、流量变成可视化仪表盘。折腾有度、安全第一,祝你顺利跑满那根光纤。
【免费下载链接】RTL960xHacking & Reverse Engineering RTL960x-based xPON ONTs to suit your OLT项目地址: https://gitcode.com/gh_mirrors/rt/RTL960x
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考