三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

从0到1玩转RTL960x开源光猫:选型、刷机、认证、提速全流程实战

从0到1玩转RTL960x开源光猫:选型、刷机、认证、提速全流程实战

从0到1玩转RTL960x开源光猫:选型、刷机、认证、提速全流程实战

【免费下载链接】RTL960xHacking & Reverse Engineering RTL960x-based xPON ONTs to suit your OLT项目地址: https://gitcode.com/gh_mirrors/rt/RTL960x

你的软路由明明自带 SFP+ 光口,光纤却只能接在运营商那台又大又笨、后台还被锁死的光猫后面——这是国内不少宽带玩家的共同处境。RTL960x 正是为打破这种局面而生的开源项目:它把基于 Realtek RTL960x 芯片的 xPON 光模块(俗称"猫棒")彻底逆向,让你用几十到一百多元的小模块替换整台运营商光猫,自由适配你自家的路由器、交换机甚至 OLT。这篇文章不画大饼,只按真实上手顺序,把选型、刷机、认证、提速、排障一条线讲透。

这张能力地图先收好:RTL960x 究竟能帮你干什么

很多教程一上来就讲"原厂固件有多封闭",但对你来说更有用的是先看清终点——投入这套方案之后,你手里到底多了哪些牌。RTL960x 的能力可以归纳为四块:

能力板块代表功能典型收益
安装部署能力固件刷写、身份克隆、Web 管理界面一台猫棒顶替原厂光猫,即插即用
网络调优能力2.5G 模式切换、VLAN 灵活映射、缓冲优化突破千兆瓶颈,缓解 bufferbloat
深度定制能力OMCI 参数改写、MIB 表定制、SFU/HGU 切换适配华为、中兴、诺基亚等不同 OLT
维护排障能力状态监控、日志分析、固件回滚、模拟器出问题能自查自愈,不用求人

这套方案真正解决的,不是"光猫不好看"这种表面问题,而是三件硬事:一是运营商光猫性能受限,千兆以上宽带被 1G 网口卡死;二是光猫功能被阉割,桥接、VLAN 透传、多 ISP 接入全都不可控;三是设备不透明,固件黑盒、日志缺失、认证参数无法查看。把猫棒换成开源固件后,以上三点全部变为可配置、可观测、可回滚的状态。

需要先说清一个前提:这套玩法属于"自己动手改造接入设备",RTL960x 项目本身反复强调安全红线——一个配置出错的 ONU 可能干扰整条 PON 链路上其他用户,运营商检测到异常后有权停机甚至拉黑。所以下文所有操作,都建议在你自己的宽带、自己的设备上谨慎进行。

认清芯片与猫棒型号,选错 SoC 等于白花钱

进入实操前,先花两分钟搞懂硬件代际,这是最容易被忽略、也最影响成败的一步。RTL960x 是 Realtek 的 xPON 芯片家族,虽然名字相近,能力差异却不小:

芯片架构形态关键特征
RTL9601BLexraSFU第一代 SFP 光猫,仅 1G
RTL9601C1LexraSFU第二代,1G 与部分 2.5G
RTL9601DLexraSFU/HGU第三代,2.5G 支持稳定
RTL9602CLexraSFU/HGU仅见于盒式设备
RTL9603CMIPSSFU/HGU单核 900MHz 一体机
RTL9607CMIPSSFU/HGU双核 1.15GHz,带 USB 与语音

目前项目里社区验证最充分的猫棒型号有下面几款,它们用的都是 RTL9601 系列:

型号SoC存储支持模式2.5G默认登录
VSOL V2801FRTL9601CI8MiBVEIP 与 PPTP需改造admin / stdONU101
T&W TWCGPON657RTL9601CI16MiBVEIP 与 PPTP需改造admin / system
UFiber InstantRTL9601CI8MiB仅 PPTP,LAN1不支持ubnt / ubnt
DFP-34X-2C2RTL9601D8MiBVEIP 与 PPTP原生支持admin / admin

选型时可以按三条标准对号入座:追求 2.5G 稳定输出,优先 RTL9601D 的 DFP-34X-2C2;手里已有 2.5G 路由器且想低成本替换,V2801F 是社区资料最全的选择;需要多 LAN 口模拟,则要关注芯片对 VEIP/PPTP 两种模式的支持情况。

这里牵出一个绕不开的概念:PPTP 与 VEIP。PPTP(物理路径终结点)直接把 PON 流量绑定到某个物理 LAN 口,VLAN 由 OLT 侧管理;VEIP(虚拟以太网接口点)则类似一个虚拟接口,固件可以把它分配给 LAN 口、路由模式或管理通道。简单理解:PPTP 是"一根线直连",VEIP 是"虚拟通道再分发"。不少运营商用 PPTP 把不同 LAN 口分给不同 ISP,这也是后面多 ISP 场景的基础。

刷机前的信息采集:克隆原光猫身份的一页纸清单

猫棒能不能上线,关键不在刷机,而在"身份"对不对。OLT(局端设备)认证 ONU 时,会核对序列号、密码、厂商、型号等一串信息,只注册到 O5 状态不等于能拿到业务配置——很多情况下 OLT 认出了你是谁、却不给你下发配置。所以正确姿势是:把你原厂光猫的身份参数完整抄下来,再原样填进猫棒。

先登录原光猫的 Telnet 或 Web 后台,用flash get把这批参数逐条备份:

flash get PON_VENDOR_ID flash get GPON_SN flash get GPON_PLOAM_PASSWD flash get HW_HWVER flash get OMCI_SW_VER1 flash get OMCI_SW_VER2 flash get GPON_ONU_MODEL flash get ELAN_MAC_ADDR flash get OUI flash get HW_SERIAL_NO

这些变量含义如下,抄写时注意格式上限:

变量含义格式注意
GPON_SNGPON 序列号12 位 ASCII,如HWTC35000000
PON_VENDOR_ID厂商 ID4 位 ASCII,如HWTC
GPON_PLOAM_PASSWDPLOAM 密码10 位 ASCII 或 20 位十六进制
GPON_ONU_MODEL设备型号(ME 257)20 位 ASCII,如HG8240H5
HW_HWVER硬件版本如实抄写,如BF9.A
OMCI_SW_VER1/2软件版本用于 OMCI 上报
ELAN_MAC_ADDRMAC 地址12 位十六进制

一个小坑提醒:部分原光猫后台显示的序列号是十六进制串,需要先转成 ASCII 再填。比如十六进制的48575443对应的就是HWTC。社区还整理了一份常用厂商 ID 对照表——HWTC华为、ZTEG中兴、ALCL诺基亚、FHTT烽火、UBNT优倍快、RTKG瑞昱,按你原光猫的实际情况选,不要照抄别人的。

信息抄完后,把原光猫收好别急着处理。整个克隆过程的完整说明记录在 Docs/StickSetup.md,里面还包含各型号默认登录凭据与 Telnet 开启方式(例如 TWCGPON657 需要先访问http://192.168.1.1/bd/telnet_open.asp才能开 Telnet)。

固件刷写实操:找固件、传包、升级、重启

身份资料到手,下一步就是给猫棒刷入开源固件。首先把仓库克隆到本地,固件都在Firmware/目录下按型号分好:

git clone https://gitcode.com/gh_mirrors/rt/RTL960x

进入Firmware/后你会看到DFP-34X-2C2/TWCGPON657/V2801F/等子目录,每个目录都按日期归档了多版固件,例如 DFP-34X-2C2 下的M110_sfp_ODI_220923.tar、V2801F 下的V2801F_V1.9.0-240614.tar。选固件时优先挑日期较新、且与你的芯片代际匹配的版本。

刷写本身不复杂:用网线把猫棒所在设备(路由器或转接器)接到电脑,浏览器打开默认地址192.168.1.1登录 Web 后台,进入升级页面选择.tar固件包上传即可。

上传完成后系统通常需要提交配置并重启一次,这一步别省略——很多"刷完没反应"的案例,都是卡在了没有 commit 或没有重启上。

重启后再次登录,状态页应该能看到固件版本、运行时长、CPU 与内存占用等信息。到这里,猫棒本身已经"活"了,但还未必能上网——接下来才是真正的重头戏。

让 OLT 认账:OMCI 与 VLAN 的认证配置实战

猫棒与 OLT 之间的沟通语言叫 OMCI(光网络单元管理与控制接口)。简单说,OLT 通过 OMCI 向猫棒下发业务配置,包括 VLAN 映射、带宽模板、端口绑定等。开源固件的价值就在于把这些参数全部开放给你。

首先要做的,是把克隆来的身份参数写进猫棒,同时把 OMCI 处理模式调到正确的档位:

flash set GPON_SN <原光猫序列号> flash set PON_VENDOR_ID <原光猫厂商ID> flash set GPON_ONU_MODEL <原光猫型号> flash set HW_HWVER <原光猫硬件版本> flash set OMCI_SW_VER1 <原光猫软件版本> flash set OMCI_OLT_MODE 3 flash set OMCI_FAKE_OK 1

其中OMCI_OLT_MODE是社区实践里出现频率最高的变量,它决定猫棒以哪种姿态应对 OLT 的 OMCI 消息:

含义
0默认模式,部分值不可改
1华为 OLT 模式
2中兴 OLT 模式
3定制模式,可自定义软硬件版本、OMCC 等
21强制上报自身信息

OMCI_FAKE_OK则是应对"厂商私有 OMCI 指令"的开关:某些运营商会对猫棒下发私有管理实体,猫棒看不懂就回非 OK 应答,导致业务起不来。把它设为 1,猫棒对 OLT 的任何 OMCI 请求都回 OK,兼容性大增——代价是可能掩盖真实问题,所以它更适合作为"先上线、后排查"的兜底手段。

VLAN 配置紧随其后。猫棒默认是自动侦测 VLAN,也可以手动指定处理方式,核心是VLAN_CFG_TYPEVLAN_MANU_MODE两个变量:

flash set VLAN_CFG_TYPE 1 flash set VLAN_MANU_MODE 0

VLAN_MANU_MODE的四种取值对应四种转发策略:

模式行为
0Transparent透传,VLAN ID 原样映射
1Tagging打标/叠加,先剥一层再桥接
2Remote Access远程访问场景
3Special Case特殊场景,按运营商要求设置

这里要提醒一个高频误区:很多 ISP 的 PON 侧 VLAN 与 ETH 侧 VLAN 并不一致(比如 PON 侧 VLAN 100 映射到 ETH 侧 VLAN 10)。直接照搬别家配置很容易翻车,正确做法是先用omcicli mib get 84omcicli mib get 171查看 OLT 实际下发的 VLAN 标签过滤与扩展 VLAN 映射,再据此调整。相关排查思路在 Docs/OMCI_CLI.md 里有完整命令清单。

如果你的网络环境是"一根光纤承载多家 ISP",RTL960x 还能利用 4 端口 UNI 模拟,把不同 LAN 口分别绑定给不同运营商——这正是不少东南亚运营商(如菲律宾 PLDT)的典型场景。具体配置可以参考 Docs/ISP_specific_configuration.md,但务必记住:那里给的是"已知可用的起点",不是万能模板,VLAN、LOID、MAC 这些值必须替换成你自己的。

2.5G 提速的正确姿势:模式参数与兼容性避坑

刷好、认上了,接下来就是很多玩家入坑的初衷——突破 1G 网口限制,跑满 2.5G。先理解一个概念:如果你办了千兆以上宽带,却让光猫用 1G 网口出口,数据被"堵"在 1G 端口上,会产生明显的 bufferbloat(缓冲区膨胀),表现为延迟忽高忽低。换成 2.5G 猫棒直接对掉这个瓶颈。

RTL960x 家族提供了三种 2.5G 工作模式,通过LAN_SDS_MODE切换:

模式介质说明
4HiSGMII PHY2.5Gb 物理层适合 PHY 侧协商
5HiSGMII MAC2.5Gb 链路层MAC 侧协商
62500Base-X光纤/光模块配合 SFP 直连
flash get LAN_SDS_MODE flash set LAN_SDS_MODE 5

需要注意,2.5G 协商是"猫棒与对端设备双向配合"的结果,单改猫棒一侧没用。项目文档里维护了一份详尽的兼容性清单,覆盖 MikroTik 的 RB5009、CRS 系列,TP-Link 的 ER2260T,华硕 RT-AX89X 等设备——不同设备对 PHY/MAC 模式的兼容性不同,有的需要LAN_SDS_MODE 4,有的必须LAN_SDS_MODE 6加 2.5G baseX。更关键的是:部分 SFP 口(尤其老款 1G 光口)物理上就不支持 2.5G 协商,这不是软件能解决的。

![RTL960x 猫棒在 2.5G 网络下的实测下载速度结果](https://raw.gitcode.com/gh_mirrors/rt/RTL960x/raw/c73115c07fbb2ab892a2d63076a1756292f63218/Docs/Images/2.5G Internet Speed Test Unifi.jpg?utm_source=gitcode_repo_files)

如果你的主机是 Linux 且 SFP 口无法自动协商 2.5G,另一个常见解法是给模块写入定制的 SFP EEPROM 信息,让对端识别为 2.5G 能力设备——这套玩法同样记录在项目文档中。更稳妥的替代方案是用一个 2.5G 光电转换器把猫棒转接出来,实现"免改造即插即用"。完整设备兼容表与模式对照见 Docs/2.5Gb.md。

故障急救室:假 O5、O2-O5 循环与速度不达标

把最常见的三个"死法"提前摆出来,你遇到时能少走弯路。

第一类:假 O5,状态在线却没网。某些厂商(如诺基亚)的 OLT 会给 ONU 一个"虚假的 O5 状态",即使序列号或密码不对,状态灯也显示已注册,但 OLT 不下发任何 VLAN 配置(典型特征是 OLT Vendor ID 显示02020202)。对策是回到参数层面逐一核对序列号、PLOAM 密码、厂商 ID;如果都正确仍无网,可能是运营商要求厂商私有管理实体(ME 350-399),这类情况往往需要定制 MIB 才能解决。

第二类:O2-O5 循环,状态反复跳。最常见原因是接收光功率过低。先用光功率检测命令确认数值,低于约 -23dBm 时 OLT 会拒绝稳定 O5:

pon show

如果光功率确实偏低,先清洁光纤接头、检查弯曲半径,而不是急着改配置。此外,烽火等厂商的 OLT 也可能因兼容性问题导致循环,社区针对不同 OLT 品牌整理过对应解法。

第三类:状态正常,但速度不达标。优先检查LAN_SDS_MODE是否还在 1G 档位,再核对 VLAN 转发是否被错误配置拖累。还有一个社区发现的重要变量OMCI_TM_OPT——它控制 OLT 对带宽的管理方式,取值 0 为优先级控制、1 为速率控制、2 为两者兼有,默认是 2。如果你的业务是纯速率模型,把它从 2 调到 1 往往能明显改善吞吐:

flash set OMCI_TM_OPT 1

整套排障思路在 Docs/TroubleshootSetup.md 有汇总,另外 Docs/fakeO5.md 与 Docs/DIAG.md 分别针对假 O5 与诊断命令做了展开。记住一条底线:如果所有手段都试过仍无法上线,立刻停止调整——反复提交错误配置不仅会被运营商标记,还可能影响整段 PON 网络。

进阶玩法:定制 MIB、远程监控与固件实验

如果上面这些已经不能满足你,RTL960x 还有三层更深的玩法。

第一层:定制 OMCI 行为。仓库的Firmware_Mod/DFP-34X-2C2/etc/下提供了omci_custom_opt.confomci_ignore_mib_tbl.conf等配置文件,前者允许你按需改写特定管理实体(ME)的应答内容,后者可以忽略 OLT 下发的某些 MIB 表。多 ISP 环境下常见的"用 HGU MIB 文件骗过 OLT 接受 ME 84/ME 171"操作,就是基于这套机制。

第二层:远程监控与告警。猫棒的状态不该只停留在 Web 页面里。项目仓库的WebGui/kitamon/目录包含一套基于 Prometheus 的监控方案,自带 Grafana 导入模板与 systemd 服务文件,能把猫棒的收发光功率、温度等 DDM 级遥测数据接入你的监控大盘,光衰异常时及时告警。同样地,社区里也有通过 Telegram Bot 推送猫棒健康报告的做法。

第三层:固件实验。改固件最怕变砖,项目在Tools/emulator/里放了一个 QEMU 固件模拟器。安装squashfs-toolsqemu-user-static后,执行qemu-test.sh 固件.tar就能在 PC 上把固件跑成一个 BusyBox shell,随便折腾网页模板、启动脚本,验证无误再刷进真机:

./qemu-test.sh V2801F_V1.9.0-240614.tar

顺带一提,仓库的Firmware_Mod/里还藏着一套全新的 Bootstrap 风格 Web 界面,名为 Nijika 固件,针对 RTL9601D 的社区补丁正在持续完善中——如果你对原厂那种老式网页感到嫌弃,这套新界面是很好的观赏对象。

结尾:给新手的行动清单与自查表

走到这里,你其实已经拥有了完整的"换猫棒"知识闭环。最后把这套流程压缩成一张可执行清单,照着做即可:

  1. 查芯片:确认手里的猫棒是 RTL9601C1 还是 RTL9601D,这决定 2.5G 上限与固件选择。
  2. 抄身份:登录原光猫,把序列号、厂商 ID、PLOAM 密码、软硬件版本、MAC 等 10 个参数完整备份,别漏。
  3. 选固件:克隆仓库后,在Firmware/对应型号目录里挑日期较新的固件包。
  4. 刷写并重启:Web 上传.tar包,commit 后务必重启,用状态页确认固件生效。
  5. 填参数再调 VLAN:把克隆参数写入猫棒,按运营商实际下发的 VLAN 映射调整VLAN_MANU_MODE,用omcicli mib get验证。
  6. 最后提速:确认LAN_SDS_MODE与对端设备兼容后,再考虑 2.5G 与OMCI_TM_OPT调优。

以及四条始终要守住的自查准则:

  • 每次只改一个参数,改完验证、记录,再动下一个。
  • 原光猫与原配置永远留底,不删不扔。
  • 不要把社区分享的 ISP 配置原样照抄,所有值都要替换成你自己的。
  • 反复失败立即停手,别拿共享的 PON 网络当试验场。

RTL960x 的意义不在于"破解",而在于把接入设备的选择权和知情权交还给你。从第一次跑通 O5、到 2.5G 测速跑满、再到能在 Grafana 上盯着光功率变化,你会越来越理解光纤接入这条链路到底发生了什么。剩下的玩法,Docs/目录下的文档足够你翻很久——UART 调试、固件分区回滚、SPI EEPROM 编程,每一扇门后面都还有新世界。

【免费下载链接】RTL960xHacking & Reverse Engineering RTL960x-based xPON ONTs to suit your OLT项目地址: https://gitcode.com/gh_mirrors/rt/RTL960x

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表