树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)

树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)

图片[1]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net

树莓派做路由器已经是在3代的时候就开始了,只不过树莓派3代的网口速率还不到千兆标准,再加上A53的性能也不是很赞。但是,性能还是碾压一般家用路由器的;现在4代升级了千兆网口,加上两颗A72大核性能拉满,与入门级x86软路由相比,关键功耗体积财力投入都要小很多 : ),全方面看上还是有一战之力的,实测不接大型用电设备满载不会超过12W,其次就是需要外接一个usb千兆网卡,实测网速可以几乎跑满千兆的情况下CPU占用率不到35%,因为是外接usb网卡所以很吃CPU的资源。

        其次,我相信很多玩软路由的老铁们,肯定还很关心一个参数 AES指令集→不支持,我在后续的实测中发现树莓派做软路由最吃硬件性能的就属AES加解密,跑跑主流的V贰锐,酸酸乳,百兆的服务器也可以轻轻松松应对,如果平时经常大流量跑建议还是上个小风扇,保证高性能的同时CPU核心不会降频拉跨,真的可以说RaspberryPi YES!。

以下是自用50Mbps服务器跑满播放8k视频(AES性能)

图片[2]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
实测跑油管8k视频树莓派Cpu占用率

折腾建议:

  • 树莓派最好是2G及以下版本(太大性能浪费);
  • 都1202年了千兆USB网卡是标配,型号市面常见的RTL(螃蟹网卡)都可;
  • 一张内存不那么大的SD卡足以(1-2G足够了,关键你能买到就行);
  • 有块闲着不用的树莓派,如果有想折腾软路由Pi但是还没入手那就考虑友善的NanoPi R4S性能和树莓派4不相上下,重点: 有原生双网口,不用外接USB网卡 性能也更好;
  • 树莓派4已经作为我的主路由静静呆在角落里运行快一年了,可靠性没得说;
  • 其次有软路由的需求又不想折腾x86的;
  • 其实做旁路由更为合适(这里留个坑,下一期补);
  • 最后以上没有恰饭内容,可放心食用:)

软路由Pi的逼格之处:

  • 功耗低,体积小相对于x86动辄20W起步树莓派平时就7W左右,怼个充电宝都可以跑起来;
  • 科学上网(帕斯握,酸酸乳Plus),广告过滤(AdGuardHome),行为管理,DNS优化,网络加速,内网穿透Frp~~~,KMS微软全家桶激活服务器等等;
  • 宽带多播(单线多拨,多线多拨)和链路聚合,有多个宽带账户的可以将带宽进行多拨合并使用,家里带宽已经超500M了(白嫖移动那啥~ ~ ~)手动狗头,还有解决各种限速,以我多年和学校信息管理中心斗智斗勇的经验来看,即使在公司里,限速~ 嗨呀~不存在的~~~
  • 可挂载硬盘做个轻量型NAS;
  • 其他的话装个Docker尽管折腾;
  • 还有好多就不一一列举了.

 上面可能壁画太多,正片开始

准备OpenWrt固件:

一. 自行编译(逐渐开始对新手不友好 :(  想白嫖 👉 可跳过看第二部分)

        开始编译属于自己固件之前需要准备Ubuntu 18 LTS x64系统或者Ubuntu 20 LTS都可以,可以在VMware中装Ubuntu,也可使用微软子系统,我们就用微软的子系统简单粗暴

(已经有虚拟机系统环境的空降到第2部);

1.系统准备(微软子系统)

首先在开始菜单搜索找到打开控制面板 》程序 》启用或关闭Windows功能 》适用于Linux…

图片[3]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
开启系统设置

等待系统处理完成 然后重启电脑

图片[4]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
重启电脑

重启以后在开始菜单搜索找到微软商店(MicrosoftStore)打开,搜索Ubuntu

图片[5]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
下载Ubuntu系统

然后任选其一下载安装系统 (演示中我们选Ubuntu 20.04 LTS,注意:系统将会装在你的C盘中,如果空间已不足10G请自行清理,实在不行就用Vmware装虚拟机吧)

图片[6]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
系统选择安装

选择目标系统后点击 安装(系统会自动开始下载并安装),安装好以后点击 启动,后期使用可在开始菜单查找,下图为第一次启动稍等一会儿系统初始化即可

图片[7]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
系统初始化

创建一个新用户,为了方便我就用 openwrt 然后回车确认(切记:用户名不能为root

图片[8]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
用户名

然后开始设置该用户名的密码 (一定要记住!)  不会显示输入的密码输入完成回车确认即可

图片[9]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
密码

不出意外就能设置成功并自动登录系统

图片[10]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
成功进入系统

2.openwrt源码下载与环境准备

        在openwrt源码上我比较推荐Lean大神的源码,源码社区很活跃,更新迅速,稳定;我们打开lean大openwrt的代码仓库地址:https://github.com/coolsnowwolf/lede 按照如下命令依次在Ubuntu中逐步执行即可;

图片[11]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
编译源码

下面一步一步执行(把命令复制粘贴过去即可)

#执行系统更新
#如果提示输入密码 则键入刚才创建用户的密码即可
sudo apt-get update

(如果系统更新下载速度慢请更换国内源 国内源更换请见 这篇文章)

图片[12]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
执行系统更新

建议执行两次以确保没有遗漏

#安装openwrt依赖
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

第二次在执行上面代码提示以下信息即所有依赖安装成功

图片[13]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
依赖安装完成

代码下载(以下步骤不要用 root 用户执行!)

#openwrt源码拉取
git clone https://github.com/coolsnowwolf/lede

#进入源码目录
cd lede

#软件包套件更新下载
./scripts/feeds update -a && ./scripts/feeds install -a
图片[14]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
代码拉取更新

3.openwrt系统配置

若没有出现error字样的报错即可输入make menuconfig开始配置路由系统

#配置菜单 (执行以下代码后会进入配置菜单)
make menuconfig
图片[15]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
系统配置菜单

 键盘操作提示:

  • 按空格为设置该项/选中 当目标选项为( ※ )即为选中状态;
  • 回车为进入子菜单/选择;
  • 方向键 ↓ 和 ↑ 为上下选择;
  • 方向键 ← 和 → 下方菜单选项;
  • 双击两下ESC为退回上一层;
  • 在根菜单下双击为推出配置菜单;

开始配置系统,勾选树莓派 三个重要参数 ↓ (上下键选择 回车进入 空格选择目标)

Target System —> Broadcom BCM27xx  

Subtarget —> BCM2711 boards (64 bit)

Target Profile —> Raspberry Pi 4B (64bit)

图片[16]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
树莓派型号选择

文件系统大小修改(根据SD卡大小设置就行,kernel大小一般256足够了)

图片[17]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
镜像 文件系统大小修改

添加USB设备驱动支持(例如USB网卡,USB集线器,USB无线网络等)

(USB支持目录选项建议全选,方便,不会导致编译失败)

图片[18]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
USB Support

插件app页面 原版已经继承了很多实用的app

图片[19]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
LUCI插件

常用的插件 👇

  • luci-app-adbyby-plus 广告过滤插件 (暂不支持Arm x64)
  • luci-app-docker 容器
  • luci-app-frpc 内网穿透客户端
  • luci-app-nps 内网穿透插件
  • luci-app-kodexplorer 可道云
  • luci-app-n2n_v2  点对点内网穿透
  • luci-app-ddns 动态域名解析
  • luci-app-mwan3helper  分流助手(多运营商网络)
  • luci-app-netdata 网络监控插件
  • luci-app-samba SMB网络共享
  • luci-app-syncdial 多拨插件
  • luci-app-unblockmusic
  • luci-app-ttyd 网页终端插件
  • luci-app-usb-printer 打印机插件
  • luci-app-vlmcsd KMS激活微软全家通
  • luci-app-wol 网络唤醒
  • luci-app-ssr-plus 科学上网插件

附开启科学上网插件神秘代码

#在lede目录下执行 也可打开feeds.conf.default文件将helloworld前面的#删除即可
echo 'src-git helloworld https://github.com/fw876/helloworld'>>./feeds.conf.default

#执行包更新
./scripts/feeds update -a && ./scripts/feeds install -a

#再次打开配置菜单LUCI-> Application中勾选即可
make menuconfig

其他插件可以下载到 lede/package 文件夹下再打开make menuconfig配置菜单即可找到

#以下插件在 lede/package 目录下执行即可
#科学上网插件
git clone --depth=1 https://github.com/xiaorouji/openwrt-passwall
git clone --depth=1 -b master https://github.com/vernesong/OpenClash

#大学生校园网mentohust
git clone --depth=1 https://github.com/BoringCat/luci-app-mentohust
git clone --depth=1 https://github.com/KyleRicardo/MentoHUST-OpenWrt-ipk

#广告过滤插件
git clone https://github.com/rufengsuixing/luci-app-adguardhome

#应用过滤
git clone https://github.com/destan19/OpenAppFilter

#Lienol整理的一堆实用的插件
git clone https://github.com/Lienol/openwrt-package

web主题 (建议全选 还有很多漂亮的主题自行查阅下载)

图片[20]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
openwrt主题

         其他设置就不做举例了,到这一步也就可以配置出一个功能基本齐全的路由系统了,如果觉得这样很麻烦可使用我写的一个简单脚本 一键环境下载安装,源码拉取,常用app集成,自动编译(单线程、多线程编译),后期使用一键更新openwrt源码和插件app(只需配置好系统),很省心,脚本已经放在github 需要的自取 地址: https://github.com/bigbugcc/Openwrt         后期还会做一期非常详细的openwrt使用教程,以及已经在开发的openwrt云编译系统{ 在网页端配置选项,一键编译,邮箱发送固件 } 后期会考虑开源。

4.openwrt编译

        首次编译最好使用《单线程编译》,以免报错;小技巧:首次编译时先不要选任何插件,只选择重要的参数,然后直接编译,第二次在选择其他的组件、插件然后多线程编译 速度会快不少也不会因为多线程编译报错。(首次编译大概会耗时2-3小时,具体耗时还得看U的  性能)

#下载dll库(国内请尽量全局科学上网)
make -j8 download V=s

#编译固件(单线程编译)
make -j1 V=s

#编译固件(多线程 火力全开)
make -j$(($(nproc) + 1)) V=s
图片[21]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
下载dll库
图片[22]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
dll库下载完成
图片[23]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
开始编译
图片[24]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
。。。

淦!有报错

图片[25]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
环境变量报错

编译环境变量错误切换系统环境变量即可(目前这个错误只会出现在WSL上,虚拟机不会)

#切换系统环境变量 再执行编译命令
source /etc/environment

#编译命令
make -j1 V=s
图片[26]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
编译成功

编译好的有四个固件

图片[27]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
编译好的四个固件

重新配置(如果因为配置错误导致无法编译可清除配置后再试)

#清除所有配置
rm -rf ./tmp && rm -rf .config

编译好的固件输出的路径 :/lede/bin/targets  ,使用复制命令将固件复制到桌面,也可以直接打开子系统的文件目录(可能会有权限问题)

#查看磁盘挂载情况
df -h

#可以复制到任何一个目录(例如:D盘为 /mnt/d/ )
cp -ri lede/bin/targets/bcm27xx/bcm2711/ /mnt/d/

以下采用命令复制出来,也可在windows下文件管理器直接打开子系统Ubuntu的目录复制

图片[28]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
固件移出
图片[29]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
复制到windows的固件

固件格式说明:

  • ext4 和 squashfs 是指文件系统格式,ext4格式较为新;
  • factory 新刷固件到sd卡用这个(sd卡刷固件时请选择带factory的固件);
  • sysupgrade 用于升级固件;

        到这固件编译就结束了,接下来就是将固件刷入SD卡再插入树莓派启动就可以启动openwrt了,固件刷入就不再唠叨了( >偷.懒<)请参考该文章的第二部分👇 (已附工具下载地址),刷入固件时就选刚刚复制出来的四个固件中带factory字样的固件中的一个。

二. 啥?你想白嫖 ! (编译好固件可跳过)

        从零开始编译Openwrt固件可能真的有点困难所以我给萌新们准备了Plan B,也有想直接白嫖的,编译固件当中也有不少坑,所以我推荐一个网上大佬编译好的可以直接拿来用;

        打开链接 : https://github.com/bigbugcc/OpenWrts 找到以下列表,该固件是用Lean大开源的Openwrt云编译的固件,安全性大家可以放心毕竟开源了。

图片[30]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
固件列表

        列表中我们推荐使用Lean大的固件稳定可靠,包括自己编译使用的固件也是Lean大神的,路由器开机一直使用半年多也就出现一次故障,重启以后就解决了。下面的固件列表中选择Lean树莓派4B固件。

图片[31]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
选择固件

以下我们选择最新编译好的

https://github.com/bigbugcc/OpenWrts/releases

图片[32]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
固件

        在以上的固件列表中选择一个带factory字样的固件即可,系统刷入同样可以参考这篇文章的第二部分 👇 

三. 系统设置/优化

        在给SD卡输入系统后,先将usb网卡接好在给树莓派通电,随后耐心等待树莓派启动,在此期间树莓派的绿灯会快速闪烁,最后将网线接入树莓派板载网口(LAN),另一端接入电脑,打开网络适配器如果已经有IPv4地址192.168.1.1说明系统已经成功启动。

图片[33]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
ip地址

接下来就是在浏览器登录路由器后台

地址:192.168.1.1

用户名:root

密码:password

图片[34]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
路由器登录
图片[35]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
路由器概况

WAN口设置

系统还未添加WAN口,路由器后台打开 网络 》接口 》添加接口 

图片[36]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
WAN口设置

选择USB网卡,一般情况就是 eth1

图片[37]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
选择USB网卡
图片[38]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
网口防火墙设置
图片[39]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
设置完成

无线设置

打开 网络》无线》修改

图片[40]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
无线设置

设置无线WIFI名

图片[41]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
设置SSID

设置WIFI密码(频宽不要动会导致WIFI无法使用)

图片[42]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
设置wifi密码

插件页

图片[43]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net
插件页

        其他项就不做一一展示了,一时半会儿还真介绍不完,请看后面的Openwrt文章会做非常详细的教学,以上步骤做完就能亲手打造一款软路由。创作不易,希望帮助到各位大帅x的同时能给个三连支持一下!有问题请留言,我尽量会第一时间回复解决问题。

        附一张已在家服役快一年的树莓派4主路由图 ( 使用情况:无线设备由红米AX6和小米R3G做AP模式负责 ,三台电脑+七个手机+几个平板+两台电视 ),带宽为500Mbps(单线多拨200m+300m)网络中重度使用主要刷视频看直播还有打游戏,稳如老狗。

图片[44]-树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三)-嗨皮网-Hpeak.net

本教程转载自:树莓派4B 亲手打造一款Openwrt软路由(带编译固件-超详细) – RaspberryPi硬核系列(三) – 哔哩哔哩 (bilibili.com)

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容