前言

  • 去年年底我已经在我的网络中剥离了软路由,给代理和 DHCP 迁移到服务器上了
  • 最近想着上企业 AP ,我看 Aruba 的 AP-515-RW 不错,海鲜市场 500 左右,可以类似华为那种 Leader AP,不需要单独买 AC
  • 那就缺个能塞进弱电箱的网关了,硬件带 PPE 和 NAT 加速即可,性能尽可能强吧。软件没啥要求,支持端口映射就行,我所有服务都在去年年底迁移到服务器了

网关选型

路由

  • 中兴星云 MAX:祖传133,幽默双核 A53,5 个 2.5GbE + 1 个 USB3.0,外围配置还行。中兴全屋组网可以,但 CPU 性能实在太差
  • 京东太乙 Plus:IPQ5322,四核 A53,还行吧,就是没有睾贵的 NSS。一个 SFP+ + 4 个 2.5GbE,内置 1 个 M.2,看起来很不错。但是这是 IPQ5322,只能用给你塞满一大堆预装软件的风味 QWRT,Lean 也没开放自编译,PASS
  • Mikro Tik RB5009UG+S+IN:BugTik 的东西除了几个贵的一批的 CCR 系列,都是软路由,没有硬件加速的。不过用 BugTik 的东西也能睾贵一把,过年的时候我看着还只要 1000,现在居然 1200 了,蚌埠住了,这也涨价了谁买啊
  • UniFi UCG-Fiber:官网 2999,海鲜市场 2199,还行,也算是睾贵。UniFi 同样没硬件加速,靠 CPU 硬算,UCG 除了 Fiber 之外,花几千花钱跑不满千兆,没想到吧?Fiber 算是 UniFi 2026 年初唯一值得买的网关了,SoC 是 IPQ9570,四核 A73,最强 SoC 了,虽然 UniFi 官方没说支持硬件加速,不过这颗 SoC 支持,社区很多人也压测发现有硬件加速。问题就是只给了 3Gb 内存,塞了一大堆东西进来容易卡,还有很多 Bug 没修。如果要上 UniFi 的话就得买他们家的交换机,不然那个睾贵的拓扑图不全,海鲜市场一搜,千兆伊拉克橙色都要500,qnmd 吧。据传下半年 UDM 也要把 SoC 升级成 IPQ9570 了,想买 UDM 的可以再等等
  • 剩下就是 300o,BPI-R3 (Mini),BPI-R4 (Pro) 等开发板了,海鲜市场已经涨疯了,R4 Pro 有人卖 2200,疯了?300o 200吧,R3 300?R4 500吧,去年就这价,今年翻倍的涨,当是内存啊?

光猫

既然路由靠不住,干脆我直接光猫拨号得了?

  • 华为 B850-5E4P:这个好,带个 SFP+,他有个好兄弟 8E8P,俩板子一样做出来的口不一样,可以魔改成一样的。不过坑也挺多的,海鲜市场上都是 E-PON 版本,改成 GPON 有兼容性问题。还分 220V 和 12V 版本,前者才有对称。还有一些刷成华为系统和补全 Shell 等东西,不是很透明,资料都在奸商手里。500 左右拿下个 XG-PON 的 8E8P 魔改版差不多,可惜买不到

  • 瑞斯康达 MSG5200-XGE9E:这个也无敌,但是兼容性有问题,很多人反馈 GPON 折腾好几天注册不上,观望中

  • 然后我看了下一些 50 块钱的 2.5GbE 光猫已经很强了,以下是他人推荐

    A:今年我发癫基本把市面上的各芯片的2.5G光猫买了个遍。 现在的2.5G光猫无外乎以下芯片: 1、中兴ZX279132/133,132一般用于一体机光猫,133一般用于纯有线光猫。 2、达发AN7581DT/7583DT 3、BCM68560 4、海思HI5682TV2/TV3。 基本上自己使用下来,中兴的光猫既不是最稳的,也不是最快的,但是却是最贵还容易出BUG的。 而且现阶段能固定telnet的中兴猫,基本黄鱼流通较多都是24年的固件,正好是有几率触发软桥接BUG的固件,新固件的中兴猫开telnet工具没流出,需要花钱开,所以真的不是很推荐。

    A:你要是能买个猫自己对着恩山找教程,优先推荐达发AN7581DT的猫,如诺基亚的XG-040-TF(ONU)或者烽火HG5382A;其次是天邑1108V博通版,这几个型号都是有详细教程开telnet和改SN、Mac的。

    A: 我看咸鱼都是50往上,我入手时候都要60~70。 推荐看我上面回复,整体性能粗略对比大概是达发AN7581DT>HI5682TV3>ZX279133>BCM68560。 AN7581DT的猫一般40~35这样就能入手;HI5682TV3最便宜,20元入手但是基本是移动单模XGPON,BCM68560性能最低毕竟快四年前的硬件但是天邑1108是经过恩山pcdn佬验证的,连接数爆炸的时候都能完成包转发就是慢一点而已

    B:以上几种我也玩过,但你这个排序不敢苟同,68560双核B53 1.5Ghz支持aes指令集,功耗发热都还挺不错,作为光猫性能不比另外两个双核的差,达发的四核在诺基亚的固件上优化很差,实际体验很一般,不支持aes指令,海思那个tv3还可以,就是发热量感人

    A:排名我说了粗略只是给新人一个大概印象而已,回复重点是后面推荐,无所谓同意不同意的,中兴那破烂纸面再强实际表现也不如博通。推诺基亚理由不是因为它固件好而是恩山教程详细到可怕,属于新手级别认真爬了帖子就能玩得开的级别。真要底层固件好我不是好推了烽火hg5382a嘛,界面卡一点但是固件强过诺基亚很多,属于pcdn佬推荐的两个光猫之一,问题是开telnet和改参数命令需要一定的基础

    C:自己换的中兴F7607P用了2年多倒是没发现啥大问题,就是发热量有点大

    D:目前折腾下来就是贝尔和烽火最稳,博通那个都差点意思

    E:同款贝尔好评,我这边贝尔可以拉满 2500m

    F:这几个CPU我也玩了一下,感觉海思比较稳定,达发买的贝尔,感觉挺拉垮的,BCM68560发热很低,买的烽火5382A3

    总结,买烽火 5382A,研究了下这个光猫,有以下几个版本

    • 烽火 HG5582A
    • 烽火 HG5382A(少一个电话口)
    • 烽火 HG5382A3(同少一个电话口,移动定制版)

    HG5382A3 有额外的教程,恩山自寻,据说新版不太行了,不推荐贪便宜买这个了,HG5582A 和 HG5382A 教程一致

万兆路由

还额外了解了一些值得买的万兆路由

  1. TP-LINK TL-ER2260T:想上机架可以买它的换皮版 3220T,加长版能直接上机架但是砍了一半内存,何意味。家里 TP 全家桶的可以买,内置 AC 控制器
  2. QNAP Qhora-301W:IPQ8072A + 1Gb DDR4 + 4Gb EMMC + 不死 U-Boot + 双系统。平民法拉利,唯一槽点是两个 10GbE 是电口,不过兼容性不错
  3. 锐捷睿易 RG-EG310XS-E:锐捷全家桶上,千元最值得买的锐捷睿易网关,内置 AC。唯一缺陷是硬件加速不完备,只能跑 4Gb 带宽,开了流控只能 3.5Gb,不多拨的话足够用

光猫教程

Ref: https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8415570

开 Telnet

方法一

  1. 超密登录光猫后台

  2. F12 - Console 输入以下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function loadScript(url, callback) {
    var script = document.createElement('script');
    script.src = url;
    script.async = false;
    script.onload = callback;
    document.head.appendChild(script);
    }
    loadScript('/plugins/jquery.min.js', function() {
    loadScript('/js/util.js', function() {
    loadScript('/js/upnp.js', function() {
    var postdata = new Object();
    postdata.action = "telnet";
    postdata.telnet = 1;
    postdata.sessionid = sessionidstr;
    XHR.post("set_services", postdata, initPage);
    //showOrHideLoadingWindowFromIframe("show");
    });
    });
    });

    或者这个

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
        function loadScript(url, callback) {
    var script = document.createElement('script');
    script.src = url;
    script.async = false;
    script.onload = callback;
    document.head.appendChild(script);
    }
    loadScript('/plugins/jquery.min.js', function() {
    loadScript('/js/util.js', function() {
    loadScript('/js/upnp.js', function() {
    var postdata = new Object();
    postdata.action = "telnet";
    postdata.telnet = 1;
    postdata.sessionid = sessionidstr;
    XHR.post("set_services", postdata, initPage);
    return "success!"
    });
    });
    });

    image

  3. Telnet 已开启,登陆吧

    1
    telnet 192.168.1.1

    账号:telnetadmin(此账号不是登录 Web 界面的账号 telecomadmin

    密码:FH-nE7jA%5m + MAC 地址大写后 6 位(进不去尝试 FH-nE7jA%5m

    SU 密码:Fh@8306A8 + MAC 地址大写后 6 位(进不去尝试 Fh@8306A8

方法二

  1. 超密登录光猫后台,新建标签页访问 [192.168.1.1:8080/html/upnp.html?9210](http://192.168.1.1:8080/html/upnp.html?9210)

  2. 找到 F12 - Sources - Top - 192.168.1.1 - luci-static/resources - js - upnp…,将最下方的 function saveApply替换成以下内容image

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function saveApply() {
    var postdata = {
    // ftp: 0,
    telnet: 1,
    // dnsrelay: 1,
    // portal: 0,
    action: "telnet"
    // terminal_number: 255,
    };
    postdata.sessionid = sessionidstr; // sessionidstr已经在其他地方定义
    XHR.post("set_services", postdata, initPage);
    showOrHideLoadingWindowFromIframe("show");
    }

    然后 Ctrl + S 保存,手点保存即可开启 Telnet

固化 SSH

这款光猫隔一段时间会自动关掉 Telnet,得手动重开很麻烦,直接固化 SSH 吧

过段时间就自动关闭telnet进程(感觉一天以后就自动关闭了),导致无法进入

  1. telnet 登录

    账号:telnetadmin(此账号不是登录 Web 界面的账号 telecomadmin

    密码:FH-nE7jA%5m + MAC 地址大写后 6 位(进不去尝试 FH-nE7jA%5m

    SU 密码:Fh@8306A8 + MAC 地址大写后 6 位(进不去尝试 Fh@8306A8

    1
    2
    3
    telnet 192.168.1.1

    su
  2. 进入容器里面的子系统 OpenWrt

    1
    saf console

    密码:upt

  3. 下载对应版本 sshd-lite,咱们要下 sshd-lite_x.xx.x_linux_arm64.gz,解压得到 sshd-lite

  4. 随便选个目录把 sshd-lite 上传上去,因为光猫的主系统都没有写入权限,所以得放 LXC 容器里面的子系统。不过得先建个 TFTP 服务器方便传,这里用 MobaXterm 演示image

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 随便选个目录
    cd /usr/sbin/
    # 用 TFTP 上传 sshd-lite,192.168.1.2 是有 sshd-lite 文件的 TFTP 服务器 IP
    tftp -g -r sshd-lite 192.168.1.2
    # 赋予可执行权限
    chmod +x sshd-lite
    # 进入 diagapps 目录
    cd /opt/apps/opmaintain/diagapps
    # 创建一个 sshd-lite 文件
    vi sshd-lite

    代码如下

    1
    2
    3
    4
    5
    6
    >"${0}.log" 2>&1
    ip r a ...
    #30秒后启动
    sleep 30
    #-p 后面的 99 为 SSH 端口,测试发现 22 端口好像有被占用,admin:admin 为账号和密码,你可以改成你自己的账号密码。
    ./opt/upt/apps/apps/usr/sbin/sshd-lite -p 99 admin:admin

    按下 Esc 输入 :wq 保存并退出,并赋予执行权限

    1
    chmod +x sshd-lite

    这里的 /opt/upt/apps/apps/usr/sbin 路径需要填写你在主系统中看到的路径,而不是容器内看到的路径,因为容器内看到的路径是 /usr/sbin

  5. 添加触发启动命令

    1
    2
    cd /etc
    vi rc.local

    rc.local 文件 exit 0 前面插一行以下代码

    1
    gdbus call -y -d com.ctc.saf1 -o /com/ctc/saf1 -m com.ctc.saf1.framework.DiagService sshd-lite 1

    按下 Esc 输入 :wq 保存并退出

  6. 最后重启一下光猫,验证一下是否成功

    1
    ssh [email protected] -p 99

至此教程结束
根据此方法测试中兴F650 中兴7015v3 也适用。感觉电信的光猫大部分都能适用。另外利用此方法可以在主系统下运行你想要的其他一些程序,例如frp、lucky等。
另外需要注意,如果需要运行多个插件,那么中间加个&就行。
例如下面这样编写创建的sshd-lite文件,达到同时运行ssh和lucky(lucky你得提前放好对应位置,赋予权限哦)

1
2
3
4
5
#!/bin/sh
exec >"${0}.log" 2>&1
ip r a ...
sleep 30
/opt/upt/apps/apps/root/sshd-lite -p 99 root:admin & /opt/upt/apps/apps/root/lucky

因为F650这款光猫有点老,sshd-lite的github上又没有arm5编译的版本,所以附上叫一位大佬编译的armV5版本
https://wwlj.lanzoum.com/b0ul67hah
密码:9i2t

注册光猫

  1. 先进去老光猫查下各个业务的 VLAN ID 和 LOID(用普通用户进去就行)image

  2. 记下来光猫背面的 SN 和 GPON SN

  3. 把旧光猫的 SN、GPON SN、LOID 设置进新光猫

    1
    2
    3
    4
    5
    6
    7
    8
    # SSH 连进光猫
    ssh [email protected] -p 99
    # 设置 LOID
    set loid <你的 LOID 号码>
    # 设置设备序列号
    set device_sn <你的旧猫 SN>
    # 设置 GPON 序列号
    set gpon_sn <你的旧猫 GPON SN>
  4. 手动注册即可,如果卡住的话,参考以下内容

    • 20% - 30%:光功率异常。请检查光纤接头是否插紧,光功率是否在 -8dBm 到 -27dBm 之间
    • 40%:OLT 认证失败。通常是 LOID 输错了,或者该 OLT 端口下不允许此 SN/LOID 注册
    • 60%:ITMS 平台连接失败。通常是因为你之前删除了 TR069 连接,或者 ACS 地址不正确
  5. 顺带关一些东西

    1
    2
    3
    4
    5
    6
    # 关闭 IMTS
    cfg_cmd set InternetGatewayDevice.ManagementServer.PeriodicInformEnable 0
    # 修改 RMS 认证地址
    cfg_cmd set InternetGatewayDevice.ManagementServer.URL http://127.0.0.1/
    # 删除 TR069
    cfg_cmd del InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection. 1
  6. 进后台设置 PPPoE 拨号或者桥接吧,VLAN ID 和我们一开始查的 Internet 业务一致,比如我是 111

贴一些额外的命令

  1. IPv6 防火墙规则(想要不重启失效得固化 SSH)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 允许所有入站、转发、出站(类似直接关闭防火墙)
    ip6tables -F
    ip6tables -P INPUT ACCEPT
    ip6tables -P FORWARD ACCEPT
    ip6tables -P OUTPUT ACCEPT

    # 开放 8080 端口
    ip6tables -I INPUT -p tcp --dport 8080 -j ACCEPT
    ip6tables -I INPUT -p udp --dport 8080 -j ACCEPT
    ip6tables -I OUTPUT -p tcp --dport 8080 -j ACCEPT
    ip6tables -I OUTPUT -p udp --dport 8080 -j ACCEPT
    ip6tables -I FORWARD -p tcp --dport 8080 -j ACCEPT
    ip6tables -I FORWARD -p udp --dport 8080 -j ACCEPT
  2. 关闭 IPv6 防火墙

    1
    cfg_cmd set InternetGatewayDevice.X_FH_FireWall.IPv6FirewallEnable 0
  3. 查看超级密码和设置 Telnet 开关等一些其它指令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    # 进入工程模式
    load_cli factory
    # 显示管理员用户名
    show admin_name
    # 显示管理员密码
    show admin_pwd
    # 开启写入模式
    set factorymode enable
    # 设置管理员的用户名
    set admin_name <USERNAME>
    # 设置管理员的密码(测试无法修改,重启还是原来的密码,修改超密见下文方法)
    set admin_pwd <USERPASSWORD>
    # 退出写入模式
    set factorymode disable
    # 退出工程模式
    exit
    # 最后重启光猫才会生效
    reboot

    # 工程模式下还可以设置
    # 设置当前的PON模式。
    set current_ponmode <PONMODE>
    # 设置默认的PON模式。
    set default_ponmode <PONMODE>
    # 设置设备的OUI(组织唯一标识)
    set device_oui <DEVICEOUI>
    # 设置设备序列号(SN)
    set device_sn <SERIALNUMBER>
    # 设置设备的出厂日期
    set factory_date <DATE>
    # 设置是否启用工厂模式(enable:启用,disable:禁用)
    set factorymode [enable|disable]
    # 设置框架状态为 up(启动)或 down(关闭)
    set framework [up|down]
    # 设置 GPON 的序列号
    set gpon_sn <GPONSN>
    #设置硬件版本号
    set hardware_version <hardware_version>
    #设置主机 MAC 地址
    set hostmac <hostmac>
    #设置 Telnet 功能的启用状态(0:禁用,1:启用)
    set telnet_enable [0|1]
    #设置 OUI
    set device_oui <OUI>
    #设置 SN
    set device_sn <SN>
    #设置 MAC
    set onu_mac <MAC>
    #设置用户的用户名
    set user_name <USERNAME>
    #设置用户的密码
    set user_pwd <USERPASSWORD>
  4. 修改超级密码方法及一些其它指令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # 查询超密码
    cfg_cmd showvalue InternetGatewayDevice. 1 | grep -i 'TeleComAccount.Password'
    # 修改超密,同理应该可以设置 Telnet 密码
    cfg_cmd set InternetGatewayDevice.DeviceInfo.X_CT-COM_TeleComAccount.Password 你的密码

    # 其它一些指令,使用 cfg_cmd 命令可以修改很多东西
    # 查询所有相关密码
    cfg_cmd showvalue InternetGatewayDevice. 1 | grep -i 'password'
    # 打开 Telnet
    cfg_cmd set InternetGatewayDevice.DeviceInfo.X_CT-COM_ServiceManage.TelnetEnable 1
    # 查看参数:
    cfg_cmd showvalue InternetGatewayDevice. 1
    # 查找自己想要的一些参数
    cfg_cmd showvalue InternetGatewayDevice. 1 | grep -i 'telnet'
    # 也可以查看任意一级的参数
    cfg_cmd showvalue InternetGatewayDevice.ManagementServer. 1
    # 网页可以随意删除 TR069
    cfg_cmd set InternetGatewayDevice.X_FH_HttpdConf.isTr069Modifiable 1
    # 禁止 TR069 进程
    cfg_cmd set InternetGatewayDevice.ManagementServer.EnableCWMP 0
  5. 修改地区

    1
    2
    3
    4
    5
    6
    # 可以使用以下命令查看有哪些地区可以修改
    ls /fhrom/preconfig
    # 例如修改地区为 Temp
    load_cli factory
    load preconfig CH_CT Temp
    exit