发现你身边的“优质应用”

0%

自编译 OpenWrt R9.10.24 固件,支持 Raspberry Pi 2B/3B/3B+/4B

文章更新

20190107 初次成文(第一版)

20190305 更新固件 更新和优化了树状功能图(文章底部) 并做一些补充说明

20190306 加入 IPV6 支持(实验性)(第二版)

20190317 正式支持 IPV6 并添加 IPV6 使用说明,增加64位固件,并做固件升级说明(第三版)

20190321 修复重启后板载网卡不工作的问题,增加了若干功能(第四版)

20190416 暂停 64 位固件更新,日常跟进更新并再做一些补充说明(第五版)

20190521 日常跟进更新(第六版)

20190620 日常跟进更新(第七版)

20191007 日常跟进更新(第八版)

写在前面

OpenWrt 是适合于嵌入式设备的一个 Linux 发行版,今天小苏为大家带来的是自己编译的 OpenWrt 固件,为了满足大家的各种需求,小苏为大家提供两种固件,其中 IPV4 Only 固件适用于 不需要连通 IPV6 网络的情况(如果你没有连通 IPV6 的需求,IPV4 Only 固件也是小苏的推荐选择),IPV4+IPV6 固件适用于需要连通 IPV6 网络的使用情况。

固件仅支持树莓派 2B/3B/3B+/4B 。不支持上述树莓派型号以外的其他设备;

(换句话说除了树莓派以外的其他设备都不支持,望周知)

如果你只是想使用 OpenWrt 的功能,没有使用树莓派进行宽带拨号和发射无线的需求的话,小苏强烈推荐在 Docker 中运行 OpenWrt 并将树莓派作为旁路由使用。采用这种方式,树莓派可结合现有路由器协同工作,即可实现 OpenWrt 的大多数功能,又可享受路由器的高质量无线性能,同时可充分利用树莓派的硬件性能。可参考这篇文章:

https://mlapp.cn/376.html

由于工作繁忙,很多时候不能及时回复评论,可以加入博客的 QQ 群:397251040 以便第一时间得到回复以及获得最新信息~

编译 OpenWrt 采用的源码来自 Lean 大的 Openwrt 项目:

https://github.com/coolsnowwolf/lede

在此特别感谢 Lean 大~

固件更新日志

第八版固件更新日志

固件版本更新: R9.6.19 -> R9.10.1;

Linux 内核更新: 4.14.127-> 4.14.146;

实验性支持树莓派 4B,但因为驱动原因,4B 的板载无线网卡不可用,板载有线网口不受影响。可用作旁路由或外接 USB 网卡使用;

新增 微信推送 (Server 酱)

新增更美观的新版 Argon 主题,但默认还是 Material 主题,可在“系统 - 系统 - 语言和界面”中自行切换;

增加 PPTP/L2TP/OPENVPN 客户端支持,可在“网络 - 接口 - 添加新接口 - 新接口的协议”中添加这些连接;

尝试提高 USB 存储设备的兼容性;

由于网卡驱动冲突的原因,从此次编译开始,固件将不包含额外的 USB 有线网卡和无线网卡驱动(板载有线和无线网卡不受影响),但在编译过程中,小苏额外编译了这些 ipk 软件包,有 USB 有线网卡和无线网卡需求的小伙伴可以在 Package 文件夹中下载所有 ipk 文件的 zip 压缩包,在其中找到你需要的网卡驱动并在“系统 - 文件传输”中上传并自行安装。

第七版固件更新日志

固件版本更新: R9.5.6 -> R9.6.19;

Linux 内核更新: 4.14.118 -> 4.14.127;

以下是源码更新主要内容:

新增软件包 解锁网易云灰色歌曲、天翼家庭云/天翼云盘提速、V2ray 服务器;

第六版固件更新日志

固件版本更新: R9.4.6 -> R9.5.6;

Linux 内核更新: 4.14.111 -> 4.14.118;

以下是源码更新主要内容:

加入 HAProxy 实现对 SSR 的负载均衡和高可用;

为 ShandowsocksR Plus+ 加入 V2ray 订阅;

加入可道云支持;

在以后的版本中 ShandowsocksR Plus+ 不会受到影响。

第五版固件更新日志

固件版本更新: R9.3.17 -> R9.4.6;

Linux 内核更新: 4.14.104 -> 4.14.111;

[实验性] 加入 MentoHUST (锐捷校园网拨号客户端) 及 luci-app-mentohust (MentoHUST 控制面板) 支持,因为小苏这边没有校园网网络环境,所以请大家帮忙测试~

[实验性] 加入 LXC 容器支持 (建议科学上网使用);

加入更多小工具( file grep htop lrzsz lsusb lscpu mc tree whereis 等);

因 64 位版本固件问题较多,暂停 64 位版本更新,敬请谅解。

第四版固件更新日志

紧急修复了由于 autosamba 导致的重启后板载网卡不工作的问题;

加入了open-ssh-serverNFS文件系统支持,添加了遗漏的 fdisk ;

实验性增加了博通的 debug 无线驱动 (不知道有没有用);

固件进一步细分,将固件分为 IPV4 Only 和 IPV4+IPV6 两类,如果对连通 IPV6 有要求,可以直接选择 IPV4+IPV6 固件(但需要进一步设置),当然,如果你对 IPV6 没有需求,强烈推荐选择 IPV4 Only 固件;

由于冲突的原因,此次编译了 V2ray Pro 但未集成进固件内,可以在 “Packages (ipk)” 文件夹找到所有软件包的 ipk 压缩包解压后搜索 luci-app-v2ray-pro_1.0-11_all.ipk自行安装;

3B 上安装 64 位固件依然会存在 CPU 负载高,网络性能变差的问题,所以如果你的设备是 3B,尽量还是选择 32 位固件。但目前 在 3B+ 上好像没有这些问题

此次编译好像漏掉了 htop ,下次补上吧~

第三版固件更新日志

由 2019.03.17 再次拉取 Lean 大最新源码进行编译,发布第三版固件:

固件版本更新: R9.2.14 -> R9.3.17;

Linux 内核更新: 4.14.103 ->4.14.104;

新增 aarch64 架构 (64 位) 固件,但目前发现 64 位固件在 3B 上工作不稳定,如 CPU 负载异常增高,网络性能变差等,请谨慎刷入。原 arm 架构固件在树莓派 3B / 3B+ 设备上仍然适用。

应大家要求加回 wachcat 功能 ;

新增 sysupgrade 格式升级专用固件,降低升级成本 (详见下文)。

第二版固件更新日志

由 2019.03.05 拉取 Lean 大最新源码进行编译,发布第二版固件,更新内容如下:

(我只负责拉取源码 & 编译发布,不负责固件开发,固件更新内容与 OpenWrt 项目和 Lean 大项目有关)

固件版本更新: R9.1.1 -> R9.2.14;

Linux 内核更新: 4.14.90 -> 4.14.103;

为提高稳定性和兼容性砍掉了一些基本不用的功能,常用功能不受影响 (文章底部的树状功能图为最新版固件带有的功能);

重磅: 尽最大程度加入了若干无线网卡支持,目前 OpenWrt 源码中支持的 95% 的无线网卡,90% 的无线网卡应该无需单独安装驱动;

[实验性] 支持 IPV6 (固件文件名前带有 [IPV6] 标识),感谢评论区 @wgedu实验性增加 ip6tables & ip6tables_mod_nat 特性。

补充说明(重要):

目前已经可以确定固件在 RaspberryPi 3B+ 设备上基本运行正常,但是在 3B+ 设备上会出现树莓派的板载 WIFI 网卡在 2.4Ghz 频段下无法工作在 N 模式的 Bug ,(2.4Ghz 频段下的 Legacy 模式与 5GHz 频段下没有这个问题)。感谢评论区 :) 的测试反馈~

在设置树莓派 3B+ 的板载无线网卡时,请优先设置 radio0 接口,在设置树莓派 3B 的板载无线网卡时,请优先设置 radio2 接口(点此跳转详情)。

从第四版固件开始,文件夹名为 “IPV4+IPV6”内固件已支持连通 IPV6,但默认情况下,需要做一些设置才可正常连通 IPV6 网络 (点此跳转详情)。如果你不需要接入 IPV6,强烈建议选择文件夹 “IPV4 Only” 内只支持 IPV4 的固件。

同时,因为与 IPV6 网络存在冲突的原因,支持 IPV6 的固件中未集成 “负载均衡”“多线多拨”“mwan3 分流助手”这些功能,IPV4 Only 固件默认集成这些功能,不受影响。

如果你想从我编译的旧版固件升级到新版固件,可以直接在 Luci 控制面板中刷入 sysupgrade 格式固件,此操作可仅升级系统分区(需打钩“保留配置”),用户数据不受影响 (点此跳转详情)。

从第三版开始新增适配于树莓派 3B / 3B+ 设备的 64 位固件,但此 64 位固件在 “系统 - 概览”中存在显示 Bug,表现为 “架构”项显示为 “?”,大家可以在 SSH 或者 TTYD 终端中使用 uname -a命令查看固件的真实架构。

64 位固件中 Adbyby Plus + 无法正常运行。

64 位固件目前暂时不支持 kcptun,原因是 kcptun 目前暂无适配于 aarch64 架构的官方编译版本。详见:https://github.com/coolsnowwolf/lede/issues/1107

OpenWrt 编译教程会出的,并且我的教程要比别人的教程简单哦(敬请期待)~

固件说明

由于树莓派的性能要比普通的路由器高很多,并且树莓派采用 SD 卡作为存储介质,所以在编译时不必过多考虑固件大小及插件对设备造成的影响 ,为了更有效地利用树莓派“优秀”的硬件性能(当然是相对于普通路由器而言),小苏在编译时采用了比较“激进”的方式:尽可能编译“更多”插件以满足使用者各种各样的需求。

同时默认支持板载网卡,自 R9.10.1 版本起,固件将不包含额外的外置 USB 有线网卡和外置 USB 无线网卡驱动(板载有线和无线网卡不受影响),但在编译过程中,小苏额外编译了这些 ipk 软件包,有外置 USB 有线网卡和无线网卡需求的小伙伴可以在 Package 文件夹中下载所有 ipk 文件的 zip 压缩包,在其中找到你需要的外置网卡驱动并在“系统 - 文件传输”中上传并自行安装。

成功安装外置网卡驱动后,可以在“网络 - 接口 - 添加新接口”界面添加新的外置网卡。

为了方便使用者配置和使用,固件在编译时加入了一些常用工具,比如 adb, bzip, gzip, htop, nano, resize2fs, tmux, unzip, vim,固件原生支持 exfat, ext4, f2fs, fat32, ntfs, squashfs, fuse 等文件系统。并且加入了 automount 支持,即外部可存储设备插入 USB 接口时,若文件系统支持,可以自动挂载设备。

为了满足使用者的各种需求,小苏为大家提供了两种格式的固件:ext4 格式和 squashfs 格式。这两种固件的区别是,ext4 格式的固件更适合熟悉 Linux 系统的用户使用,可以比较方便地调整 ext4 分区的大小,而 squashfs 格式的固件适用于“不折腾”的用户,其优点是可以比较方便地进行系统还原(你没听错,在控制面板里面点击一下“恢复出厂设置”按钮就可以回到刚刷入固件时的状态了,就像长按路由器后面的 Reset 按钮的效果一样),哪怕你一不小心玩坏固件,只要还能进入控制面板,就可以很方便地进行“系统还原操作”。相应的,在编译固件时小苏为 ext4 或 squashfs 根分区留出了 500M 的空间,一般来说这 500M 根分区空间足够你各种折腾了(毕竟固件本身才不到 100M),SD卡 剩余的空闲空间可以在 Windows 下使用 DiskGenius 新建一个分区继续折腾。当然,如果 500M 的根分区空间还是不够你折腾,你也可以选用 ext4 格式的固件刷入 SD卡 然后使用 fdisk(需要 opkg install fdisk 安装) e2fsck 和 resize2fs 命令来扩展根分区(方法详见参考资料最后一项)。

初始设置

刷入固件通电开机后,稍等 30秒 你将可以搜索到一个 SSID 为: Openwrt 的 WIFI 热点,连接此热点,在浏览器地址栏输入:

http://192.168.1.1

即可进入 Luci 控制面板。同时你也可以选择用网线连接树莓派和电脑,在浏览器输入相同的地址来进入控制面板。登陆控制面板时用户名默认为 root,密码默认为 password。登陆面板时,你会发现控制面板采用 https 作为连接协议,这可能会导致浏览器弹出“https证书不被信任”的提示,为了解决这个问题,你可以在“系统 - WEB 管理”中进行如下设置,保存并应用,清除浏览器缓存后即可使用默认的 http 协议访问控制面板:

WEB 管理页面

网口设置

刷入固件后树莓派的网口默认为 Lan 口,如果你有拨号需求或者需要将树莓派设置为子路由的话,需要将树莓派的网口改为 Wan 口,配置方法如下:

以下内容每做完一步后必须点击“保存”而不是“保存&应用”,做完全部步骤之后才可点击右上角的 “未保存的配置”应用所有修改,否则可能会造成在设置过程中无法连接到树莓派的情况发生。

进入“网络 - 接口”,点击“添加新接口”:

添加新接口

在“新接口的名称” 中填入 wan(小写),“新接口的协议”依据具体情况而定,如果要将树莓派的作拨号用,则选择PPPOE,如果想要用网线与上一设备 (如路由器) 的 Lan 口相连的话则选择DHCP客户端,在接口选项中,选择以太网适配器 "eth0",选择完成后,点击右下角的“提交”。

配置新接口

之后在 Lan 接口的 “物理设置”中修改取消勾选eth0,点击下方的“保存”而不是“保存&应用”

取消 Lan 口绑定的 eth0 接口

最后点击右上角的 “未保存的配置”应用所有修改即可。

值得一提的是,如果你是使用网线方式连接电脑和树莓派的话,当你把树莓派的网口改为 Wan 口后,你将无法通过浏览器进入 Luci 控制面板,但是使用无线方式连接到树莓派还是可以正常进入控制面板的,所以当你发现电脑无法进入控制面板后,不要惊慌,拔掉网线连接树莓派的无线热点即可正常进入控制面板~

无线设置(板载网卡)

在设置树莓派 3B+ 的板载无线网卡时,请优先设置 radio0 接口;

在设置树莓派 3B 的板载无线网卡时,请优先设置 radio2 接口;

如果你的设备是树莓派 3B+,板载网卡将无法工作在 2.4Ghz 频段的 Legacy 模式下。

目前已知

在树莓派 3B+ 下, 5Ghz 频段工作正常,2.4Ghz 频段下 Legacy 模式工作正常 (radio0 接口)。

树莓派 3B 下, 2.4Ghz 频段下 Legacy 模式和 N 模式工作正常 (radio2 接口)。

IPV6

从第四版固件开始,文件名带有 “IPV4+IPV6”的固件已支持连通 IPV6,但我们需要在 “网络 - 接口”中将 “IPv6 ULA 前缀”框中的内容清空 (如果此项本身为空可忽略此步),重启后才可正常连通 IPV6 网络,否则 IPV6 默认不可用。如果你不需要接入 IPV6 可以忽略此项。

清空"IPv6 ULA 前缀"

IPV6 连通成功

重启即可连通 IPV6 网络~

查看 IPV6 是否连通可以在这里测试:http://test-ipv6.hkg.vr.org/

IPV6 测试成功

开启神秘功能

(最新版本已不需要此步骤)

本固件自带 ShadowSocksR 客户端,但是因为蜜汁原因,刷好固件后 ShadowSocksR 的控制面板默认隐藏,我们可以在 SSH 或者 TTYD 终端中执行以下命令开启这个十分重要的功能。

(来自:https://github.com/coolsnowwolf/lede/issues/881#issuecomment-444450163)

echo 0xDEADBEEF > /etc/config/google_fu_mode

ShadowSocksR控制面板

功能展示

看到这里,你可能会说:小苏你自卖自夸了这么长时间,这个固件究竟有哪些功能呢?别着急,有图有真相:

控制面板首页

控制面板首页

软件包控制面板

软件包控制面板

ShadowSocksR Plus+

ShadowSocksR Plus+ (同时支持 V2Ray 和 SS)

Adbyby Plus+

Adbyby Plus+ 去广告程序

Frpc 内网穿透客户端

Frpc 内网穿透客户端

MentoHUST(锐捷校园网拨号客户端)

MentoHUST

LXC 容器

LXC 容器

Aria2

Aria2 配置

Aria2 Web-UI

Aria2 Web-UI

Samba

Samba 4.0

Transmission

Transmission

Transmission Web 界面

Transmission Web Interface

SSR Python 服务器

SSR Python 服务器

Turbo ACC 网络加速

Turbo ACC 网络加速(支持 BBR 加速)

多线多拨

多线多拨

负载均衡

负载均衡

统计图表

统计图表

固件功能列表

OpenWrt
├── 状态
│├── 概况
│├── 防火墙
│├── 路由表
│├── 系统日志
│├── 内核日志
│├── 进程
│├── 实时信息
│├── VNStat 流量监控
│├── WireGuard 状态
│├── 负载均衡
│└── 释放内存
├── 系统
│├── 系统
│├── Web 管理
│├── 管理权
│├── 软件包
│├── TTYD 终端
│├── 启动项
│├── 计划任务
│├── 时间同步
│├── 挂载点
│├── LED 配置
│├── 备份/升级
│├── 自定义命令
│├── 定时重启
│├── 文件传输
│├── 双分区启动切换
│└── 重启
├── 服务
│├── MentoHUST
│├── ShadowSocksR Plus+
│├── 广告屏蔽大师 Plus+
│├── Adblock
│├── 上网时间控制
│├── 动态 DNS
│├── WiFi 计划
│├── LXC Containers
│├── WatchCat
│├── 网络唤醒
│├── Tinyproxy
│├── UPnP
│├── Frp 内网穿透
│├── KMS 服务器
│├── HAProxy
│├── Shairplay
│├── 迅雷快鸟
│└── MWAN3 分流助手 (IPV4+IPV6 固件不可用)
├── 网络存储
│├── 可道云
│├── USB打印服务器
│├── 硬盘休眠
│├── 网络共享
│├── aMule 设置
│├── Aria2 配置
│├── miniDLNA
│├── MJPG-streamer
│├── Transmission
│└── FTP服务器
├── VPN
│├── SSR Python 服务器
│├── N2N v2 VPN
│├── OpenVPN 服务器
│├── PPTP VPN 服务器
│└── ZeroTier
├── 网络
│├── 接口
│├── 无线
│├── 访客网络
│├── DHCP/DNS
│├── 主机名
│├── IP/MAC 绑定
│├── 静态路由
│├── 防火墙
│├── 诊断
│├── SQM QoS
│├── 动态 DNSPOD
│├── Turbo ACC 网络加速
│├── 多线多拨 (IPV4+IPV6 固件不可用)
│└── 负载均衡 (IPV4+IPV6 固件不可用)
├── 带宽监控
│├── 显示
│├── 配置
│├── 备份
│└── 实时流量监测
└── 统计
├── 图表
└── 设置

安装和升级

安装

带有 factory 字样的文件为安装固件,下载固件到本地并解压即可得到 factory 格式的 img 镜像文件。其中,文件名中带有 ext4 字样的为 ext4 固件,文件名中带有 squashfs 字样的为 squashfs 格式固件,即使固件格式不同,但是它们刷入 SD卡 的方法是一样的,在 Windows 下你可以使用 Win32 Disk Imager或者 Etcher 将 img 固件写入 SD卡,在 Linux 下你可以使用 dd命令写入。

升级

带有 sysupgrade 字样的文件为升级固件,下载固件到本地并解压即可得到 sysupgrade 格式的 img 镜像文件,如果你想从我编译的旧版固件升级到新版固件,可以直接在 Luci 控制面板中刷入 sysupgrade 格式的 img 镜像固件 (可免去在电脑端刷写固件的麻烦),此操作只会升级系统分区,如果打钩“保留配置”,那么用户数据将不受影响。

如果卡中的固件不是我编译的 OpenWrt 固件 ,包括但不限于其他发行版固件 (如 Raspbian,Arch Linux Arm 等) 或其他人编译的 OpenWrt 固件,都需要刷入带有 factory 字样的固件

固件升级

固件下载

迅乐云 (高速/推荐):

链接: https://pan.xunlew.com/u/sun1215009714/1471

OneDrive:

链接: 点击此处下载

百度网盘:

链接: https://pan.baidu.com/s/1DqhSb9WtYpPnBterziObTA

密码: vemw

参考资料

OpenWrt By Lean · coolsnowwolf/lede - GitHub:

https://github.com/coolsnowwolf/lede

不显示S-SR-plus · Issue #881 · coolsnowwolf/lede - GitHub:

https://github.com/coolsnowwolf/lede/issues/881#issuecomment-444450163

MentoHUST OpenWrt ipk · KyleRicardo/MentoHUST-OpenWrt-ipk - Github:

https://github.com/KyleRicardo/MentoHUST-OpenWrt-ipk

OpenWrt/LEDE LuCI for MentoHUST BoringCat/luci-app-mentohust - Github:

https://github.com/BoringCat/luci-app-mentohust

树莓派 3(Raspberry Pi 3)安装 Openwrt + shadowsocks + ChinaDNS - 简单

http://www.wzero.net/?p=137

树莓派 3 做路由并负载 SSR - 瓜地

https://ljkgpxs.xyz/2018/01/24/raspberry3b-router-run-shadowsocksr/

Resize the root partition - Banoffee Pi Server:

http://banoffeepiserver.com/resize-the-root-file-system-partition.html