由于 UniFi Dream Machine 还是一个刚刚上市的产品,在操作系统等方面,与之前的 UniFi 产品相比有了较大的改动。在本文中,我将谈一谈 UniFi Dream Machine 的问题和不足之处,并对这四篇文章做一个总结。

性能问题

在 Ubiquiti 国内和国外官方论坛中,都有人反馈过 TCP 延迟过高的问题。这个问题我自己没有遇到过,但是不同人的网络环境可能不一样,如果特别在意,最好购买后先进行一下测试。

Wi-Fi 6 等新技术的应用

最近这段时间 Wi-Fi 领域出现了不少新技术,例如 Wi-Fi 6。2019 年的 iPhone 已经支持 Wi-Fi 6,而且从 2019 年下半年开始,已经有不少厂商推出了支持 Wi-Fi 6 的无线路由器

虽然 UniFi Dream Machine 的 Wi-Fi 性能已经足够好(支持 802.11ac Wave2 和 4×4 MIMO,与 UniFi nanoHD 一致 ),但作为一款 2019 年底上市的产品,不支持 Wi-Fi 6 显得稍微有点遗憾。

另外,对于 WPA3DNS over HTTPS 等近期比较热门的功能,UDM 也没有来得及支持。而万兆以太网等,则可能只在后续更高端的 UDM 型号中提供。

Wi-Fi 不兼容部分设备

UDM 设置完成话,默认打开了「自动优化」选项,能够自动设置细节参数,使网络达到最佳性能。其中「自动优化」会让自动让高性能设备优先连接 5GHz 信道。

设置高性能设备优先连接 5GHz 网络
设置高性能设备优先连接 5GHz 网络

我有一个日版的 Nintendo Switch,不支持 149 等信道。当我将 5GHz Wi-Fi 设置为 149 信道,想让 Nintendo Switch 使用 2.4G Wi-Fi 时,UDM 认为 Switch 是高性能设备,强制让 Switch 优先连接 5GHz Wi-Fi,最终导致 Switch 无法连接网络。

IPv6 支持不完善

PPPoE 接入,无法获取 IPv6 地址

对于不少需要公网 IP,或者需要减少一层 NAT 的用户,会选择将光猫更改为桥接模式,并在路由器上进行 PPPoE 接入。

但 UDM 目前在 PPPoE 接入的情况下,不支持获取 IPv6 地址,导致 IPv6 不可用。

相关链接:

防火墙对动态 IPv6 前缀不友好

国内有不少 ISP,是动态分配 IPv6 前缀的。也就是说,每次重新拨号获取的 IPv6 地址不一定相同。

由于 IPv6 一般不使用 NAT,网络中每一台设备都有自己的全球单播地址。每次重新拨号,如果获取到的前缀发生变化,网络中所有设备的 IPv6 地址都会发生变化。

对于这种情况,可以通过配置 iptables,匹配 IPv6 地址后缀来解决:

但在 UniFi 的设置页面上,防火墙规则的目的地址只能匹配完整的 IPv6 地址,无法配置为不匹配前缀。而通过命令行界面,使用 iptables 命令配置的规则没有办法持久保存,所以想要通过 IPv6 地址访问家中设备时,可能会有一些不方便的地方。

延伸阅读:

缺失部分高级功能

在之前的 UniFi Security Gateway 上,可以通过 EdgeOS 的命令行实现高级配置,并在 config.gateway.json 配置文件中持久保存。而在 UDM 上,由于使用了新的 UbiOS 操作系统,不在支持这些命令行,以及 config.gateway.json 配置文件。

对于大部分用户,缺少这些高级功能并没有太大影响。当仍有一部分场景需要用到,例如:

  1. PPPoE 接入的情况下,访问光猫页面
  2. 设置高级防火墙规则,包括上文中提到的 IPv6 防火墙规则
  3. 上海电信千兆宽带,光猫桥接模式下跑满千兆带宽

在 Ubiquiti 官方论坛中看到了一些讨论:根据 UniFi 的产品定位,后续可能也不会恢复对这些命令行的支持,而是会继续完善图形化界面,将相关功能逐步添加到 Web 界面上。

另外,安装 Debian 软件包的功能,应该也不会在 UDM 中支持,不过应该可以通过 Docker 和 entware 等方式在部分程度上弥补。

缺少部分面向家庭用户的功能,例如家长控制

之前在使用群晖 RT1900ac 时,体验过我认为是家用路由器上最强大易用的家长控制功能。即使是家中没有小孩,也可以通过该功能来可视化和分析自己的上网行为。

UniFi 系列产品并不是面向家庭用户的,家长控制功能就没那么强大了。只能通过设置多个网络/SSID、设置 DNS 过滤器、Wi-Fi 计划等方式进行简单的控制。

远程访问

UniFi 支持通过 Cloud Access,在没有公网 IP 的环境,或者设置防火墙阻止外网访问的情况下,远程登录管理页面。

和群晖的 QuickConnect 不同,UniFi Cloud Access 是通过 WebRTC 实现远程访问的。猜测这样做能够通过 UDP 打洞等技术,实现 NAT 穿透,使外部设备能够无需经过服务器中转,直接访问 UniFi。从而一定程度上提高访问速度和安全性。(不过没有实际抓包确认过)

但这样做带来了一部分兼容性问题,由于不同浏览器对 WebRTC 的支持情况不同,UniFi 的 Cloud Access,只支持 Chrome 和 Firefox 浏览器,而不支持我常用的 Safari。如果将 iPad 作为自己的主力计算设备的话,虽然 iPadOS 上的 Safari 已经对桌面网站做了大量优化,但还是不能满足 UniFi 的要求。

另外,在我使用的 UDM 的三个月里,还遇到过一次通过 WebRTC 无法连接 UDM 的问题,重启 UDM 之后解决,不确定是运营商的问题,还是 UDM 本身稳定性的问题。

Web 界面的兼容性

除了上文中说的 WebRTC 带来的浏览器兼容性问题,UniFi Controller 本身的 Web 界面,由于实现较为复杂,只能完美支持桌面版 Chrome,在其他浏览器上也有少量兼容性问题。

例如在桌面版 Safari 上,部分图表等内容无法正常显示、设置页面在部分操作下会错位。在 iPhone 的 Safari 上,虽然大部分页面都做了响应式设计,能够正常显示,但新版设置页面由于界面错位,几乎不可用。

另外,为了方便地为 UniFi Controller 提供 HTTP 支持,我使用了群晖 DSM 中的反向代理服务器。由于 UniFi 用到了 WebSocket,需要进行如下设置才能正常工作:

不支持 LED 计划

UniFi Dream Machine 上有一圈漂亮的 LED,但是无法设置计划,只能一直打开或者一直关闭。如果能设置为白天打开,夜间关闭,应该对家庭用户更加友好。

目前有人通过编写脚本,结合 cron job 实现了定时打开关闭 LED,只不过如果后续 UniFi 有大的软件更新时,脚本也要随之进行修改:

蓝牙用途比较单一

UniFi Dream Machine 的蓝牙似乎只能在初始化的时候使用。我本来希望能够在断网或配置错误,无法访问设置页面的情况下,通过蓝牙连接 UDM 进行紧急设置,来恢复网络连接。但经过实际测试,发现并不能这样操作。

统计信息相关问题

部分统计信息无法显示

我在 UDM 上设置了 L2TP 服务器,用于在外面访问自己的 NAS 等设备。但是,UDM 的统计信息页面中,在 L2TP 已经连接的情况下,统计信息页面中看不到具体的用户信息:

L2TP 服务器有用户连接的情况下,显示不出统计信息
L2TP 服务器有用户连接的情况下,显示不出统计信息

另外,我也在 UDM 上设置了端口转发,但无法统计到端口转发的流量统计信息,一直显示为 0:

无法显示端口转发的流量统计信息
无法显示端口转发的流量统计信息

这两个问题应该是 UDM 的 bug,希望以后能尽快解决。

不方便对比历史流量统计数据

UDM 拥有直观的 DPI 功能,能够统计各个应用的流量数据。但我希望能够增强历史数据的统计与展示,通过直观的图表展示和对比历史流量的变化。

DPI 不支持自定义规则

UDM 中已经内置了大量 DPI 规则,并支持用户自定义分类。对于我自己搭建的 Web 服务,想将域名指定到合适的分类,在 UDM 上就无能为力了。

DNS Filter 的问题

UDM 中的 DNS Filter,能够通过内置的 DNS 服务器过滤有害网站。但是打开后,发现经常出现网页打不开的问题,可能是正常 DNS 请求也被过滤了。

另外,我希望 UDM 的 DNS Filter 能够像 Pi-hole 或者 AdGuard Home 一样,支持自定义规则或者订阅规则,方便实现更强大的功能。

交换机缺少链路聚合、端口镜像等功能

根据 Ubiquiti 的文案,UDM 整合了 USGUSWUCKUAP 四种设备,但其内置的交换机,功能并没有独立的 USW 丰富。

例如我的 NAS 上有两个以太网口,为了提高多个设备同时访问 NAS 的性能,可以同时连接两根网线到交换机,设置链路聚合。而 UDM 默认是不支持的。

或者有时候,我可能会抓包来观察一些网络流量,而缺少端口镜像功能,抓包不太方便。

另外,还有一些其他功能,在 UniFi 上不支持,比如通过 Wake on LAN 唤醒家中的电脑、NAS 等设备。

默认防火墙规则允许公网访问 Web 管理页面

UniFi Dream Machine 的默认防火墙规则,经过测试默认允许 Web 管理页面。这样可能会带来一定的安全风险(例如设置了弱密码或者重复密码,导致设备被攻击;或者设备存在漏洞,由于没有及时更新而被利用)。另外,国内大部分家庭宽带是不允许对外提供 Web 服务的,如果 Web 服务暴露在公网,可能会违反相关的使用协议或政策

官网宣传文案中的歧义

另外还有一点,在官网中介绍 UDM 的以太网口时,用了「5GbE Ports」的字样,本来是说这台设备有 5 个千兆网口的,但是很有可能让人误以为这台设备支持 5GBASE-T 的以太网。

UDM 官网文案中的 5GbE Ports
UDM 官网文案中的 5GbE Ports

根据 V2EX 上的讨论,确实已经有人误以为 UDM 的网口 5GE 速率的:

延伸阅读、总结

对于普通的家庭用户来说,一个普通的无线路由器,或者一套 Wi-Fi mesh 系统,已经完全满足大部分需求了。但是,如果有多 AP 组网获得最佳体验的需求,或者仅仅是一个网络爱好者,想要用最快的方式体验一下 UniFi 设备,UDM 都是一个不错的选择:

当然,如果有在 PPPoE 接入的情况下使用 IPv6、或者本文中描述的其他特殊需求,可以再等一段时间,看系统更新之后这些问题是否能够解决。

关于 UDM 的其他缺陷,可以参考这个帖子:

关于 UniFi 的其他文章:

> 本文首发于少数派,同时发布于我的博客,欢迎关注:https://sspai.com/post/58392

最后修改日期: 2021-05-10

留言

写的真的很棒,我也是买了UDM两个月了,看了你的文章才知道一些高级玩儿法。

1、感谢您写的文章,非常全面,也让我了解了很多新知识。 2、已经购买了Dream ,并在该机器上利用docker运行了一些智能程序。 3、想请教 ,有没有办法开机自动运行60docker 这个进程?因为一但路由器重启,必须手工打开docker. 非常感谢您的文章,对我帮助很大。

    开机自动运行不太好实现。不过如果家中有 NAS、树莓派、OpenWrt 路由器之类的设备的话,可以在上面写一个脚本,通过 SSH 登录到 UDM 并运行对应的程序。同时通过 cron job 等方式,定期运行这个脚本。

      我正在用群晖逐步实现这个功能。但是,我linux不是非常熟悉,所以进度不快。 现在虽然可以自动化远程实现打开docker, 但是期间必须要输入密码。因为ssh无法传递密码。我也知道用expect来send密码,但是群晖系统很多命令都没有,装又装不上,头大。哈哈,慢慢自己再琢磨吧。非常感谢您的回复。

我正在用群晖逐步实现这个功能。但是,我linux不是非常熟悉,所以进度不快。 现在虽然可以自动化远程实现打开docker, 但是期间必须要输入密码。因为ssh无法传递密码。我也知道用expect来send密码,但是群晖系统很多命令都没有,装又装不上,头大。哈哈,慢慢自己再琢磨吧。非常感谢您的回复。

从SSPAI过来的,真的是超级有用的一篇文章

刚入手udm 想问问博主 软路由怎么接入网络呢 是作为主路由还是旁路有呢

    我现在没有用软路由。按照 UDM 目前的设计,软路由应该要做为旁路由来用了吧。

回复 Blanboom 取消回复

发布留言必须填写的电子邮件地址不会公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据