国内第一批魔改优倍快网关的人,都撞上了同一堵墙:固件升级清零、Docker被内核禁止、证书会被"静默吞掉"

源自28位全网作者

03:05

今年8月7日,知乎同一个作者背靠背发了两篇教程:一篇讲 UniFi OS 的 on_boot.d 挂载,一篇讲 Let’s Encrypt 证书自动化。往前倒两个月,5月28日还有一篇《在 UniFi UDM-SE 上固化服务与运行容器》的硬核长文,作者强调这些结论来自对系统的逆向而非二手转述。知乎 三篇文章凑在一起,等于把国内 UniFi 圈一个不太上台面、但真实存在的需求摊开了:花大几千买了 UCG-Fiber、UDM、UDR 的人,不满足于只用官方功能,想让网关跑自己的东西——绿锁 HTTPS 访问后台、在网关上塞服务、像玩群晖一样玩路由器。

而官方这边在同期干了什么?9月3日,中文频道发布了 Network 10.6 的更新说明,提法是"拓扑分析提速、自动化与安全能力增强";再往前一周,8月27日有网安媒体账号报道 Ubiquiti 紧急修复了三枚最高严重级别漏洞,无需认证即可远程攻击。哔哩哔哩一边在加固,一边在挖门——这篇就把这两条线交叉的部分,替深度玩家捋一遍:想魔改一台优倍快,你要过的三堵墙,每一堵都不是"搜个教程照着抄"那么回事。

国内第一批魔改优倍快网关的人,都撞上了同一堵墙:固件升级清零、Docker被内核禁止、证书会被

这帮人到底是谁,为什么盯着网关折腾

先看这个切片里的人真实在聊什么。

  • 小红书今年5月一条《UniFi 固件,什么时候能够给点力啊》吐槽帖,16赞20评,评论区有实测党报出"pppoe wan实测能到6.3/2.5 但也远不及我自己运营商标的8/8"。小红书 有人点破 PPPoE 已经被打上 legacy 标签,还有人说 VLAN、防火墙相关性能才是主要,甚至有人干脆说"宁愿换 TP-Link Omada"。

  • 同一帖底下有一句话点题:UniFi核心就是颜值,无论是硬件还是软件。

  • 同样在小红书,2024年就有人发《Docker下升级至Unifi Network Application》,16赞;还有一条34赞9评的《IPV6宽带过段时间自己就掉线怎么办》,痛点是在外通过 IPv6 地址访问家里的 UniFi 控制台不稳定

  • 知乎那两篇8月教程的适用场景写得非常直白:“国内网络无法访问 GitHub / Gitee,需要手动传输安装包”——这基本就是这个圈子的身份证。知乎 这帮人折腾的是官方文档不覆盖、海外脚本跑不通、全靠自己手动落地的场景。
    国内第一批魔改优倍快网关的人,都撞上了同一堵墙:固件升级清零、Docker被内核禁止、证书会被

这个切片排除什么,也先说清楚:他们不缺入门指南(入门内容本站已经写过 Home 系列和选购账),他们要的是"官方界面之外的那半台设备"。而这半台设备,恰恰埋着三堵墙。

第一堵墙:固件升级 = 一切清零,而且官方没有给用户留钩子

这是三堵墙里最反常识的一堵。很多人的直觉是:我把东西装在 /data 里,/data 是数据分区,升级不会动它。5月那篇 UDM-SE 逆向文把真相拆了:你在系统层做的任何修改——写 /etc、装软件包、改配置——实际都落在 boot6 的可写层(OverlayFS)上。固件升级时,Ubiquiti 会写入新的 squashfs 镜像并清空 boot6 可写层,所有修改直接消失。知乎

/data 能持久,不是因为它是"用户区",而是每次开机启动脚本会执行 `srv-gen ssd space`,把 /data 重建为指向 /ssd1/.data/ 的软链接——它持久是因为物理上在独立的 SSD 分区,和 OverlayFS 无关。知乎

国内第一批魔改优倍快网关的人,都撞上了同一堵墙:固件升级清零、Docker被内核禁止、证书会被

更难受的是启动钩子。Ubiquiti 有一套自己的两阶段启动 hook(bootup-top / bootup-bottom),但服务的是自家包的白名单(unifi、unifi-protect、unifi-native),自定义包无法注入。那篇教程的原话是:Ubiquiti 没有为用户提供任何跨大版本固件升级的官方持久化钩子。知乎

社区的解法是 `udm-boot`:一个 systemd 服务去触发 `/data/on_boot.d/` 下的脚本目录。但这里有个套娃坑——服务文件本身写在 `/etc/systemd/system/`,也在 OverlayFS 里,升级后照样消失。作者管这叫"数据在,引擎没了"知乎 所以8月那篇 on_boot.d 教程的核心设计是:把服务文件"母本"永久存在 /data,再放一个恢复脚本,每次网页端点完固件升级、设备重启后,SSH 进去执行一条命令,所有自定义满血复活。

就算照抄了这套方案,还有三个执行层的坑,教程作者全踩过:

  1. 命名即玄学:on_boot.d 里的脚本由 run-parts 严格按字典序执行,文件名只能字母数字下划线连字符、不能有点号,序号必须补零对齐——`9-xxx` 会排在 `10-xxx` 后面,顺序一错,依赖关系全乱。

  2. 一损俱损:服务配了 `–exit-on-error`,任何一个脚本出错,整个服务直接判定 failed。排查要么翻日志,要么 `sh -x` 单独 debug。想临时禁用某个功能,别改文件名,直接去掉执行权限。

  3. 开机≠能干活:`network-online.target` 只代表网卡起来了,不代表 PPPoE 已经拨号成功——国内拨号线的设备,业务脚本开头必须加重试逻辑。知乎 这条和今年 EF Core 上机潮里反复被提的"PPPoE 瓶颈"是同一个底层话题的两个面。

第二堵墙:Docker 跑不起来,而且是被内核判死刑的

“我网关也是台 Linux,跑个 Docker 怎么了?”——不行,而且不是配置问题,是编译选项问题。UDM-SE 逆向文给了实锤:设备用的是 4.19.152-ui-alpine 定制内核,编译时禁用了 CONFIG_BPF_SYSCALL,而这是 cgroups v2 和 Docker、Podman、containerd 这类容器运行时的必要特性。没有自定义内核,这些运行时一个都起不来。知乎

唯一活路是 systemd-nspawn:只需要基本的 Linux namespace(PID/MOUNT/NET),4.19 内核完全支持。但 nspawn 又是一层新坑:容器 rootfs 必须放 /data 下的持久路径(物理 SSD);`machinectl` 默认从 `/var/lib/machines/` 找容器,而 /var/lib 在 OverlayFS 里,得手动 bind mount 或做软链;容器启动逻辑最终还是要挂回 on_boot.d——也就是说,第二堵墙踩在第一堵墙的肩膀上,这就是三篇教程真正的依赖关系:on_boot.d 是证书自动化和跑容器共同的前置工程。

顺带澄清一个社区高频误会:小红书那条《Docker下升级至Unifi Network Application》,说的是在 NAS 或自购服务器上跑 Docker 版 UniFi Network 应用,把管理面从网关里挪出去——和"在网关内核上跑容器"是两件相反的事。前者可行且是官方支持的路线,后者在优倍快网关上目前属于物理定律不允许。小红书

第三堵墙:证书最阴的一刀,是"静默覆盖、不报错"

想让 UniFi 控制台告别每次都要点"高级→继续访问"的红色警告页,标准答案是给 `unifi-core` 换 Let’s Encrypt 证书。听起来是个教程烂大街的操作,但8月那篇证书教程里记了三个只在优倍快上才会撞上的硬坑:

  • ECC 证书会被静默吞掉。 UniFi Core 启动时校验证书类型,遇到 ECC(`–keylength ec-256`)会误判为损坏,在服务启动后约2秒内用自签名 RSA 证书把它覆盖掉,全程不报任何错。你以为部署成功了,其实锁标永远是红的。必须 RSA-2048。知乎

  • 443 端口是 unifi-core 独占的。 想顺手装个 nginx 做反代?两个服务同时重启会端口抢占,谁都起不来。作者写得非常狠:部署脚本里永远不要加 `systemctl restart nginx`。

  • 国内拿不到 ZeroSSL。acme.sh 默认 CA 是 ZeroSSL,国内网络无法获取其 EAB 凭据,会报 `Cannot resolve _eab_kid`。必须显式 `–server letsencrypt`。

这套方案对国内环境最友好的一点是走 DNS-01 验证:签发时只往 DNS 写 TXT 记录,不需要开放 80/443,域名 A 记录甚至不指向当前 IP 都不影响。知乎 教程配置文件里 `BIND_INTERFACE=“ppp0”` 那行就是说给拨号换 IP 的用户听的。配套细节也都在防国内的坑:UniFi OS 重启后 crontab 可能被重置、unifi-core 先于 cron 启动会先写一份自签名,所以作者用 on_boot.d 做了开机自愈,30秒内把证书修回来;大版本升级可能重置证书目录和 Console UUID,部署脚本要用动态扫描而不是记死文件名。

安全建议也很圈层:DNSPod 用域名级 API Token,别用账号级全局密钥——路由器上泄露配置文件,代价只是这一个域名,不是一整户。知乎

三堵墙都撞穿了,然后呢:这笔账只有三种人算得过来

把三篇教程、几条社区帖和这两个月的新闻放在一起,判断其实很清楚。

不建议做的人: 在天猫/京东走官方渠道买的全家桶、指望售后省心的用户。今年8月那条《买了2万多的unbt优倍快售后无门》72条评论的余温还在。小红书 站内也翻过"不修只换"的五年售后史——你一旦 SSH 进去动过系统层,出问题时"这是官方固件还是你自己改的"基本没法掰扯。折腾的收益上限是几个服务,损失下限是整套设备的售后确定性,这个不对等账先算清楚。 以及,追"固件性能解放"的也别往网关上塞容器——转发是它的主业,评论区那句"VLAN、防火墙性能才是主要"已经替你划了重点。

值得做的人: 有 NAS/旁路由经验、目标明确(要么绿锁远程访问、要么在设备上跑固定服务)、并且接受"每次固件升级后多花10秒执行一条恢复命令"作为永久维护成本的玩家。三篇教程的作者本身就是第一批交过学费的人,on_boot.d + DNS-01 + nspawn 这套组合在 UniFi OS 4.x / 5.x、Debian 11 aarch64 上已被写教程的人验证过。

国内第一批魔改优倍快网关的人,都撞上了同一堵墙:固件升级清零、Docker被内核禁止、证书会被

再看一眼的人: 只被红色警告页恶心到的人。先问自己一句:远程访问控制台你是真的要,还是官方 Cloud Access 已经够用?证书方案的本质是自建一条对外暴露面,而8月27日报道里那三枚"无需认证即可远程攻击"的漏洞恰好是面镜子——官方自家门口都被人敲出了最高严重级,你自己开的门,至少先把 Network 升到最新版本,10.6 的更新说明里就有"自动化与安全能力增强"。哔哩哔哩 同时只走 DNS 验证,别手滑把 80/443 真开出去。

继续观察的信号也给三个:Network 10.6 之后官方会不会给跨版本持久化钩子开口子(目前仍是硬白名单);UDM-SE 之后的新硬件内核会不会重新放开 BPF(放开之日就是 Docker 复活之时);证书静默覆盖的逻辑在后续固件里是否被修正——如果修了,说明 UniFi Core 的证书校验链路官方还在维护,那时再考虑从社区方案迁回去。

一句话收尾:优倍快给普通人写的是"即插即用",给玩家留的是这三堵墙。墙不是劝退告示,是过滤器——过不完的,别硬过;过得完的,三篇教程现在就是国内最短路径。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章