光猫刷机终极指南:用 RTL960x 开源方案解锁 2.5G 满速与多运营商自由

光猫刷机终极指南:用 RTL960x 开源方案解锁 2.5G 满速与多运营商自由

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

宽带明明升到了千兆,测速却总卡在 940Mbps?问题多半不在运营商,而在那台被原厂固件锁死的光猫。RTL960x 开源方案就是冲着这个痛点来的:它把 Realtek 芯片的 xPON 光猫逆向工程了个底朝天,让你摆脱运营商定制固件的束缚,解锁 2.5G 满速、自由配置 VLAN、轻松克隆旧光猫身份以适配各种 OLT,甚至能让一台设备同时为多家 ISP 服务。这篇文章不打算给你一份照抄清单,而是想带你从头理解:刷机到底在做什么、每一步为什么这么做,以及遇到问题时该往哪个方向查。

先看战果:解锁之后你能得到什么

先别急着背命令,我们看看社区里已经有人做到的事:

  • 2.5G 跑满:马来西亚 TM Unifi 用户用这块方案实测跑出约 2.5Gbps 的下载速度;法国 Orange 光纤用户也在 2Gbps 套餐下直接把它插进 MikroTik CCR2004 完成桥接。这类案例里,用户往往连 2.5G 电口光猫转换器都不需要,SFP 棒子直接进路由器的 SFP+ 口即可。

RTL960x 开源方案 2.5G 实测网速

  • 告别 Bufferbloat:千兆口被 1Gbps 以上带宽"灌满"时,排队延迟会飙到吓人。用 2.5G 口跑 1G 套餐,等于给数据流留出了缓冲余量,游戏和视频通话的延迟明显更稳。
  • 不再被光猫绑架:运营商送的光猫通常是"光猫 + 路由"二合一,还不能改桥接。刷上开源方案后,光猫退化成纯粹的 SFP 光电转换器,认证、路由、防火墙全部交给你自己的路由器掌控。
  • 一芯多 ISP:在部分东南亚地区,一根光纤分光后由多家 ISP 共用,运营商通过把不同 LAN 口绑定给不同 ISP 来实现分流。RTL960x 的四口 LAN 能力让这种"一机多线"成为可能。

认识四位主角:主流 RTL960x 光猫棒横向速览

RTL960x 不是一个具体型号,而是一整族 Realtek PON 芯片的代称,从初代 9601B(仅 1G)到 9601C1(1G + 部分 2.5G),再到 9601D(稳定的 2.5G)。目前社区里最活跃的 SFP 棒子有四款:

设备型号主控芯片存储工作模式2.5G 支持四口 LAN
VSOL V2801FRTL9601CI8MiBVEIP 与 PPTP需改造全部口
T&W TWCGPON657RTL9601CI16MiBVEIP 与 PPTP需改造全部口
UFiber InstantRTL9601CI8MiB仅 PPTP不支持仅 LAN1
DFP-34X-2C2RTL9601D8MiBVEIP 与 PPTP原生支持可选口

选型时记住一句话:想要原生稳定的 2.5G,优先考虑 DFP-34X-2C2;如果手头只有 V2801F 或 TWCGPON657,则要做好动手改造的心理准备。

到手之后,每台设备默认登录方式各不相同,建议先记下来:

型号用户名密码备注
DFP-34X-2C2adminadmin
TWCGPON657adminsystem需先手动开启 Telnet
UF-Instantubntubnt
V2801FadminstdONU101

TWCGPON657 要特别注意:默认 Telnet 是关闭的,你需要先在浏览器访问http://192.168.1.1/bd/telnet_open.asp把它打开,再通过http://192.168.1.1/bd/telnet_close.asp关掉。

新手第一课:刷机前先做三件事

很多人第一次刷机失败,不是命令打错,而是忘了备份。OLT(局端设备)认光猫靠的是一整套"身份档案",一旦你把新固件刷上去、旧设备又不在手边,这些参数就再也找不回来了。

第一件事:完整备份配置。在 Web 界面里找到配置备份/恢复功能,把当前配置导出到本地;如果固件支持分区备份,最好连同 env 与 config 分区一起留档。

第二件事:逐个记录认证参数。通过 Telnet 登录旧光猫,把这些flash get的结果抄下来(建议连同输出一起存文件):

flash get GPON_SN # GPON 序列号,认证最关键的身份 flash get GPON_PLOAM_PASSWD # PLOAM 密码,GPON 网络常用 flash get LOID # LOID,EPON 网络常用 flash get LOID_PASSWD # LOID 密码 flash get PON_VENDOR_ID # 厂商 ID,如 HWTC / FHTT flash get GPON_ONU_MODEL # 设备型号,如 HG8240H5 flash get HW_HWVER # 硬件版本 flash get OMCI_SW_VER1 # OMCI 软件版本(有的固件还有 VER2) flash get ELAN_MAC_ADDR # MAC 地址 flash get OUI # 厂商组织唯一标识 flash get HW_SERIAL_NO # 硬件序列号(与 GPON_SN 不同) flash get VS_AUTH_KEY # V2801F 改 MAC/硬件版本时需要 flash get MAC_KEY # DFP-34X-2C2 改 MAC 时需要

第三件事:留好原厂固件。升级前把当前固件导出保存,万一新版本不兼容,还能随时刷回去。这一条能救命的概率比你想象中高得多。

进阶玩法:让新光猫"冒充"你的旧光猫

理解这一步,你就算入门了。光猫接入时,OLT 会根据它上报的身份信息决定"认不认你、给你下发什么配置"。如果身份对不上号,哪怕状态灯显示已上线,也可能拿不到任何业务。所以核心思路就八个字:复刻旧设备的身份档案

把备份到的参数用flash set写回去,例如模拟一台华为 HG8240H:

flash set GPON_SN HWTC12345678 # 序列号前缀必须和厂商 ID 一致 flash set PON_VENDOR_ID HWTC # 厂商 ID,序列号前四位 flash set GPON_ONU_MODEL HG8240H5 # 设备型号 flash set HW_HWVER 168D.A # 硬件版本 flash set OMCI_SW_VER1 V5R019C00S125 # 软件版本,部分固件还要同步 VER2 flash set ELAN_MAC_ADDR 000000111111 # MAC 地址

PON_VENDOR_ID是厂家代码,常见的有:HWTC(华为)、ZTEG(中兴)、ALCL(诺基亚/阿尔卡特朗讯)、UBNT(优倍快)、FHTT(烽火)、RTKG(瑞昱)。注意序列号前四位必须与它一致,否则认证会直接失败。

EPON 网络则通常走 LOID 认证:

flash set LOID 0123456789 flash set LOID_PASSWD 0123456789

OMCI 里还有两个"隐藏开关"值得知道:

  • OMCI_OLT_MODE:决定向 OLT 展示哪种兼容姿态。0默认瑞昱配置,1华为兼容,2中兴兼容,3自定义档位,21则是 DFP-34X-2C2 上强制自定义档位的特殊值。遇到"O5 了但没数据"时,试着换一档。
  • OMCI_FAKE_OK:置 1 后,遇到 OLT 下发的一些厂商私有 OMCI 消息,光猫会直接回复"OK"而不是报错,这在仿冒特定厂商光猫时常常是救命的。

修改完所有参数后必须reboot,大多数flash set要重启才生效。

这里顺带讲清楚两个高频术语:PPTP(物理路径终止点)把光猫直接绑到某个 LAN 口,由 OLT 统一管理 VLAN;VEIP(虚拟以太网接口点)则像一个虚拟网卡(类似tap0),固件可以把它分配给 LAN 口、路由模式甚至 VoIP。SFP 棒子只有一根对外网线,VEIP 模式通常更灵活,但也要留意 PPTP 与 VEIP 同 VLAN 时可能被固件混桥的问题。

RTL960x 开源方案 VEIP 与 PPTP 工作模式图解

VLAN 随心配:一台光猫,多家运营商

进入 Web 界面的 VLAN 配置页,你会发现 RTL960x 提供了远比原厂固件丰富的模式选择:

  • 透传模式(Transparent):不碰 VLAN 标签,原样转发,适合桥接场景。
  • 标记模式(Tagging):给数据流打上指定 VLAN 标签,适合运营商要求在 PON 侧带标签的场景。
  • 远程访问模式(Remote Access):仅放行管理通道,兼顾安全。
  • 特殊场景模式(Special Case):应对某些 OLT 的特殊转发行为,比如强制桥接 VLAN 1 的情况。

多运营商场景是 RTL960x 的招牌玩法。在"一芯多 ISP"的环境里,你可以把四个 LAN 口分别指派给不同运营商:LAN1 走 ISP-A 的 VLAN 100,LAN2 走 ISP-B 的 VLAN 200,以此类推,再用 Web 界面的端口映射功能逐口绑定。

RTL960x 开源方案多运营商端口分配示意

命令行的做法类似(具体变量名以你固件对应的文档为准):

flash set VLAN_PORT_CFG_1 "1:100:1" # LAN1 → ISP-A,VLAN 100,优先级 1 flash set VLAN_PORT_CFG_2 "2:200:1" # LAN2 → ISP-B,VLAN 200 flash set VLAN_PORT_CFG_3 "3:300:1" # LAN3 → ISP-C,VLAN 300 flash set VLAN_PORT_CFG_4 "4:400:1" # LAN4 → ISP-D,VLAN 400

两个容易踩的坑提醒一下:一是 PPTP 绑定的端口若不在 LAN1 上,很多固件桥接不彻底,需要靠 HGU 模式的 MIB 文件"骗"过 OLT 的 ME 84 / ME 171 校验;二是部分 SFU 固件存在 PON 侧与 ETH 侧 VLAN 映射错位(比如 100 映射成 10)的问题,遇到"通了但不对"的情况不妨查一下转发操作(FwdOp)设置。

高级玩家区:OMCI 定制与 2.5G 性能榨干

如果你想再往深走一步,RTL960x 把 OMCI 层也开放了。

自定义 ME(管理实体):项目里的Firmware_Mod/DFP-34X-2C2/etc/omci_custom_opt.conf就是为特殊网络环境准备的配置模板。你可以按需添加或修改 ME 条目,例如给某个桥端口指定 VLAN 与转发操作:

ME 84 { VLAN_ID = 100 FwdOp = 0x01 Priority = 0 } ME 171 { VLAN_ID = 200 BridgePort = 1 }

解锁被锁定的身份字段:部分厂商给改参数上了锁。DFP-34X-2C2 在改ELAN_MAC_ADDR时需要配套的MAC_KEY,生成方法其实是个简单的 MD5:

echo -n "hsgq1.9aFFFFFF000000" | md5sum # 输出结果填进 MAC_KEY 即可,例如 46f4ea2e3f18ba3bc1f2671b5f7e1f62

V2801F 则用VsAuthKeyGen.exe生成校验密钥,改 MAC 或硬件版本前先算好VS_AUTH_KEY再写入,否则命令会被拒绝。

2.5G 模式切换:RTL960x 提供了三档 2.5G 工作模式,按你的下游设备类型选择:

命令介质适用场景
flash set LAN_SDS_MODE 4HiSGMII PHY一层收发,适配较多设备
flash set LAN_SDS_MODE 5HiSGMII MAC二层收发
flash set LAN_SDS_MODE 62500Base-X光纤收发,MikroTik 等设备常用

Linux 主机直连时,别忘了给 SFP 的 EEPROM 打 2.5G AutoNeg 补丁,否则系统可能协商不到 2.5G 速率。想在不折腾真机的前提下先练手,项目还提供了固件模拟器(Tools/emulator),可以在本地把 Web 界面和配置流程跑一遍。

运营商适配速查:电信、联通、移动怎么配

下面是社区里验证过的常见运营商参考值。注意:这些只是起点参数,不同地区、不同 OLT 型号都可能存在差异,务必以你旧光猫里实际读到的值为准。

运营商典型 VLANOMCI 厂商 ID认证方式备注
中国电信41HWTCLOID / 密码部分场景依赖 ME 148 支持
中国联通3961ALCLMAC 认证常配合 VLAN 透传
中国移动100CMCC序列号 / 密码对 OMCI 版本敏感
PLDT(菲律宾)无标记FHTTLOID需用 IGD/HGU 模式固件
TM Unifi(马来西亚)500HWTC序列号认证对硬件版本有要求

以 PLDT 为例,社区实测能用的配置长这样(把尖括号换成你旧光猫的值):

flash set PON_VENDOR_ID FHTT flash set GPON_ONU_MODEL HG6245D flash set OMCI_OLT_MODE 3 flash set OMCI_SW_VER1 RP2841 flash set OMCI_SW_VER2 RP2841 flash set LOID <你的LOID> flash set LOID_PASSWD <你的LOID密码> flash set HW_SERIAL_NO <SFP序列号> flash set OUI <OUI> flash set GPON_SN <序列号> flash set HW_HWVER <硬件版本> flash set ELAN_MAC_ADDR <旧光猫MAC> flash set MAC_KEY <按上文计算> flash set WAN_PHY_PORT 0

有趣的是,PLDT 场景下如果误用 SFU 固件,会出现 O2 与 O5 状态反复横跳的怪现象,换回 IGD/HGU 固件就正常了——这再次说明"参数要对,固件选型也要对"。

连不上网?按这份自查清单来

Q:状态灯在 O2 和 O5 之间来回跳?按顺序查三件事:先看光功率,RX 低于约 -23dBm 时 OLT 会拒绝稳定 O5,清洁光纤接头再测一次;再核对序列号与 PLOAM 密码是否与旧光猫完全一致;最后检查厂商 ID 与硬件版本有没有输错。若三样都没问题,看看是不是 SFU/HGU 模式选错了(参考 PLDT 的教训)。

Q:显示 O5 已上线,但就是没网?警惕"假 O5"。部分诺基亚/阿尔卡特 OLT(厂商 ID 常显示为02020202)即便认证信息不完整也会放行到 O5,但不下发任何 VLAN 配置(ME 84 / 171)。先逐项核对身份参数,若仍不通,OLT 可能要求厂商私有 ME(ID 350~399),这就得动用 OMCI 定制手段了。

Q:能连上但速度上不去?先确认LAN_SDS_MODE是否与下游设备匹配;再用tcpdump或 Wireshark 抓包确认数据 VLAN 到底带没带标签;最后检查有没有异常的上行限速配置(社区里还发现过OMCI_TM_OPT参数拖慢速度的案例,值得查一查)。

Q:Web 界面打不开 192.168.1.1?先确认电脑与光猫在同一网段、网线插的是正确端口;再登录 Telnet 执行ps | grep httpd确认 Web 服务进程在跑;最后看一眼iptables -L有没有拦截 HTTP 的规则。

最后一句忠告:如果所有手段都试过仍然连不上,建议停止继续折腾。持续的非合规配置会被运营商记录,严重时可能影响整片 PON 分光下的所有用户——光猫刷机是技术爱好,但也请对共享网络负责。

动手吧:从备份参数开始

想知道你的光猫能不能刷、怎么刷,最好的方式就是亲自把项目跑起来:

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

克隆下来后,按这个顺序读文档最省力:先看 Docs/StickSetup.md 了解整体流程,再对照 Docs/FLASH_GETSET_INFO.md 查每个 flash 变量的含义,最后翻 Docs/ISP_specific_configuration.md 找有没有你所在运营商的现成案例。Web 界面改动相关源码则集中在 Firmware_Mod 目录,想二次开发界面或脚本的人可以从这里入手。

对照文档,从备份你那台旧光猫的参数开始迈出第一步吧——等你成功上线的那一刻,你会觉得之前那些折腾全都值了。

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

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