Openwrt 折腾笔记
参战硬件
| 硬件 | 价格 | 购买方式 |
|---|---|---|
| phicomm-k1 | — | 学长送的 |
| ASUS RT-ACRH17 | 429 | 京东 |
| 3855U 6口 工控路由 | 820 | 淘宝 |
phicomm-k1
这个设备是一位不愿意透露姓名的学长送的 他刷好了Pandavan固件 这个设备后来还被我用来做交换机使用
Pandavan
最初我获得设备的时候就是这个固件 常用固件功能都有 最初我需要这个设备的原因是要在路由器上跑Shadowsocks 因为Android设备刷完OpenGApps需要连接Google登陆账号激活 路由器上跑代理是解决这个问题的办法 后来因为这个设备接口都是百兆所以我买了ACRH17替换掉
Openwrt
这固件是后来我想折腾Openwrt固件时候才开始刷进去的 我写了一个编译Dockerfile 把.config放入就可以直接docker build生产固件 后来我还写了自动上传到github 编译Docker地址 后来发现travis集成不能编译超过40分钟 docker hub也不能超过一定时间 在本地编了几次之后 编译机被拿走了 就没有在折腾了
PandoraBox
之后为了做学校项目 一个基于mqtt的智能家居系统 刷成了PandoraBox 就当作普通路由使用了
RT-ACRH17
这个机器宣称有160MHz 所以我就寻找了相关固件
这个机器配了一个USB3.0的接口 官方固件只支持2.0 所以需要第三方固件
Merlin
第一次选择的是Merlin固件
正常来说是没有Merlin
因为ACRH17使用的是高通的芯片 没有Merlin才是正常情况
Lean的固件有160MHz 但是实际上跑不上去
Lean’s LEDE
因为没找到160MHz的固件 我就使用了Merlin固件作者的LEDE来扩展功能
Lean’s LEDE
不选择Openwrt官方的固件的原因是没有适配这个机型
LEDE扩展功能真的好多 但是当时懒了 直接用别人编好的固件
PandoraBox
第三次选择的是PandoraBox固件
原因是我还是想要160MHz 毕竟这是学长忽悠我买这个机器的原因之一
这个固件我刷了两次之后 也刷了pb-boot和op-boot 刷了几次之后把ART分区数据弄丢了
结果这机器就显示自己是RT-AC82U 实际上华硕根本没有这个产品
ART分区丢失的话 信号就有问题了 所以在网上找了其他人的原厂固件和ART分区刷进去
Offical
后来完全刷回了官方固件 再后来就有了3855U软路由 之后这个设备就用做了AP 放在客厅里发挥AP的作用

3855U
这个硬件是在我购买了小米电视4A后产生的需求 原本的ACRH17刷完lean’s LEDE的固件时候 对于网关SSR有了解码速度的需求 所以买了x86的软路由
硬件选择
店家有D525/J1900/3855U/3865U选择 不选D525的原因是这玩意超级老 没意思 J1900淘汰的原因是我已经有一个J1900作为NAS使用了 不想再来一个 3865U排除的原因是使用DDR4内存 没钱买内存 使用3855U 我有空余DDR3内存和sata硬盘使用
ESXi+iKuai+lean’s LEDE
最初这个方案是我看了很多软路由介绍的视频 决定参考他们的方案 决定LEDE作为主路由 iKuai作为旁路由 加上一块480G的SATA3的SSD 一条16G的DDR3内存 实际安装下来遇到了如下的问题
- iKuai宣称的多播我无法正确使用
- iKuai的行为管理功能我实际上是不需要的
- iKuai的64位版本需要4GB内存
- ESXi直通网卡的时候 LEDE内部的网卡和外部网卡编号无法对应
- iKuai/LEDE/ESXi需要公用一个网口做混杂模式 否则无法相通
- LEDE带的mwan3多播 我使用之后不会做负载分流
- LEDE拨号时候固件缺少ipv6相关组件 无法获取ipv6
编号无法对应的问题我查看内部外部网卡MAC地址解决了 因为我是用iKuai无法完成使用iKuai的目的 所以我移除了iKuai虚拟机 只用LEDE 又遇到了如下问题
- LEDE的固件是随便找的 可能有安全问题
- LEDE固件不能使用Openwrt的源
- LEDE固件因为是随便找的 结果我想要用某些功能无法完成
种种问题 所以我决定移除这套方案
Openwrt
移除上一套方案后 想直接裸机使用Openwrt 所以就更换了硬盘 使用msata接口的三星PM810 32G 更换了一条海力士的4G内存条 这样才能物尽其用
Openwrt有一个squashfs格式和ext4格式 前者我在硬路由上使用 软路由我决定使用后者 使用官方固件我成功获取了ipv6地址
官方安装之后有如下问题:
- Openwrt默认安装完不会占用整个硬盘空间
- Openwrt提供v2ray的维护者并不打算支持v2rayN提供的订阅格式
- Openwrt提供的ss/v2ray的方案都没有lean提供的ssr-plus好用
解决办法如下:
- 第一个问题解决方案就是用Ubuntu live启动之后 用fdisk删除存放分区 再重新建立分区 起始的offset一致 不要抹去分区签名 就可以完全扩容了
- 第二个问题 无解 可以修改源码
- 第三个问题 可以选择移植ssr-plus到Openwrt 也可以选择使用其他的链接方案
总之解决方案都是需要自己移植/编译 所以我选择放弃
lean’s LEDE
反正都需要编译了 索性就选择lean’s LEDE
编译时候遇见的问题如下
- 产生uefi启动的img并不能良好启动
- 想直接扩容超过4G可能会超过U盘上fat32单个文件大小限制
- 默认参数不支持ipv6 需要手工配置开启
最终我选择了使用传统引导和分区为2Gb的方案 然后再利用扩容的方法使其完整使用硬盘
本来我在固件中选择编译了Docker 结果我发现我这么多设备 我要用一个路由器去跑docker? 再想到我学长的话 - 『路由器核心设备,勿动』 遂放弃并且移除相关功能

我写了一个相关脚本合集
然后我写了一个Dockerfile 可以直接docker build生产LEDE-x64固件
后来使用Github Actions生成固件
生成的 img 固件可以直接更新系统
结语
少折腾路由器 越折腾你断网越久.jpg
以上