@
ppbaozi 其实两者原理都是一样的,都是建立黑 /白名单,luci 用的是 ipset 等价 ROS firewall 中的 address-list,白名单的直接 return 走默认网关,非白名单走 ss-redir 配合 TPROXY 出去.
唯一不同的是 ROS 工作在更上一层,当白名单 IP 时候直接在路由器就转发出去了,流量不再通过板子,浏览正常网站会快一些。而 OpenWRT / 梅林 等智能固件将二者合一了,路由、加密、二次转发都在同一层了,使用起来是简单,但是一般路由器硬件的速度会跟不上软件的速度,即使纯 C 写的 ss-libev 跑 4k y2b 也能轻易能跑烫你的路由器,并别提跑 python、go 等程序了,路由器本身还有 bridge/ Wi-Fi / firewall 等加解密等开销了,路由器一挂全家断网 …… 被家人/工友投诉去修路由器是很被悲催的事情 ……
ROS 本身有 Check Gatway 的功能,当两条 0.0.0.0 等价路由其中一条挂了,会自动回退到另外一条,这样最多就是被 Q 的网站不能访问,其它网站是正常的,借用鹅厂人的话这叫 “降级服务” ……
想整一套稳定的系统玩两三年,要弄个牛逼的高价路由器才能跟上如:NetGear R9000 / ASUS ROG Rapture GT-AC5300 / LINKSYS WRT3200ACM 这些厂商的固件虽然是闭源的,功能随少但性能基本达标。
为了所谓的 Free 和更多功能,去刷开源的 Openwrt 等固件主要有两个问题 :
1、网卡驱动不给力。我那时候玩的机皇 D-LINK DIR-825 刷了 DD-WRT 之后 WI-FI 速度掉了 50%,论坛的反馈主要原因是 Atheros 的驱动没跟上,只能用通用版的驱动。路由器厂商定制芯片,利益最大化考虑,自然不会将最新的驱动回馈给 Kernel,没驱动的支持硬件性能自然发挥不出来,为了软件功能而让硬件性能大打折扣,这个是违背本意的。我不知道这个现象现在是否还存在,有兴趣的朋友可以帮忙做个测试,看看默认固件和开源固件 WI-FI 性能的差异。
2、固件功能更新依赖社区大神。刚才看了下 luci ss-libev 的版本已经脱离主干两个月了,在这个信息对抗万变的世界,版本更新很重要,你懂得。其次,开源固件很难对各式各异的路由器进行适配,大神一偷懒,你的路由器也能也停更新了。不是所有人都有能力将交叉编译环境弄出来的,而且跨平台很多 cpu 特性都不一样,有时候连代码都要改。
现在 Wi-Fi 发展的慢慢由堆天线的单一设备 MIMO 变为多设备集群化连接的 Mesh,例如现在很火的:UBNT AmpliFi / NetGear Orbi / 等,这些新玩具要等多长时间才能刷上 OpenWRT 谁能又给个 Roadmp ?
所以,自己掌握最关键的路由层,WI-FI、Switch 什么的不过是接入层外设而已,哪家强、哪家炫就换那家。这是 15 楼我做网络分层设计的原因,10G 以太网跑满也不怕,哥还有多模多芯光纤呢 ……
当然,以上观点纯粹是我作为文字工作者的意淫和一厢情愿,现实世界或许根本就没那么复杂,大家也就当我吹吹水好了:)