树莓派烧录Openwrt镜像 以及一些踩坑

本文最后更新于 超过 1 年前,文中所描述的信息可能已发生改变。

前言

这段时间收到了同学送的树莓派3B,准备放在家里当作软路由满足一些特殊需求,但这个3B网口仅有百兆,USB也只有2.0这意味着即使外接千兆网卡也跑不满,即使在内网传输速度也仅有100Mbps上下,非常难受。所以想要当软路由使用,至少也需要树莓派3B+,网口支持到300Mbps。

准备工作

这些软件均为Mac版本,在macOS12.0.1系统下工作良好

具体流程

格式化tf卡

插入tf卡,打开SD Formatter,没有需求的话选项都不需要动,直接点击右下角Format就好。

烧录系统

打开ApplePi Baker,左侧选择刚刚格式好的tf卡,右边IMG file选刚下好的openwrt镜像,点击Restore Backup即可,下方的选项意思是当成功刷入后自动弹出tf卡,等待完成即可

完成后拔下tf卡,插入树莓派,接上电源,树莓派就会自动启动力

系统设置

使用网线连接电脑/连接树莓派发出的openwrt无线网,在浏览器中输入默认的后台地址192.168.1.1进入管理页面,默认密码为password

在后台左侧进入网络里的接口选项卡,在右侧修改Lan口设置,我家里的主路由网段为192.168.3.x,所以修改ip地址为网段内的任意ip即可,网关设置主路由的ip,广播最后一位设为255,DNS服务器设置为主路由的ip,之后禁用ipv6分配后保存

滑到最底部,勾选忽略此接口,保存并应用即可

之后把网线插到主路由的lan口上,通过上面修改的树莓派的ip进入后台(我是192.168.3.100)

还有最重要的一步,进入网络-防火墙-自定义规则中添加一句:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

右下角重启防火墙即可应用,如果不添加这一句会导致其他连接上树莓派的设备无法访问网络

最必要的设置已经全部完成,后面可以修改一下无线网的名称和密码,修改一下管理员密码,树莓派放在一个安全的位置就大功告成了

客户端设置

现在树莓派仅作为主路由的旁路由,并没有DCHP的功能,必须其他设备修改ip才能接入树莓派,进入客户端(此处以IOS为例)按如下规则修改:

  • IP地址:DCHP分配的ip
  • 子网掩码: 255.255.255.0
  • 网关:192.168.3.100(此处为树莓派的ip)

之后还需修改DNS设置为树莓派的ip,此时此客户端已经成功接入树莓派。

一些坑

AdguardHome

AdguardHome中,需要先更新版本,不然固件里是没有二进制文件的,之后需要修改执行文件路径,在后面再加一个AdGuardHome,完整路径为/usr/bin/AdGuardHome/AdGuardHome如图所示。

重定向功能:如果对一些魔法的网络plus有需求的话,需要选择第二个重定向53端口到AdGuardHome,不然会间接性出现无法上网的问题

由于有重定向功能,所以在安装时提示53端口有占用的话,随便改一个不占用的端口 即可,重定向会把整机的dns指向AdGuard

Read-Only system

连接ssh出现这个问题是因为在没有关机,tf卡读取的时候强行断电导致的,目前我还没找到修复办法,只能重新刷系统,所以请务必断电前使用Poweroff关机

扩容

使用df -h会发现,使用的空间并不是整个tf卡的空间,因为有一部分并没有被分区,所以需要扩容,这里使用的是cfdisk工具,简单方便。

opkg update
opkg install cfdisk  #安装cfdisk
cfdisk /dev/mmcblk0

由于我已经扩容完毕了,所以没有显示绿色;如果你没有扩容,选择一个Free space,Enter按顺序选择New -Primary-Write,然后quit退出即可。

进入openwrt后台-系统-挂载点-生成配置,滑倒下面的挂载点应该已经正确识别刚才的分区,钩上启用此挂载点,我这里选择作为Docker使用,所以无需任何设置,保存&应用即可

reboot重启下,再次df -h已经正常显示(我这里已经使用了一阵)

shell
# root @ OpenWrt in ~ [11:51:50]
$ df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               944.9M    717.6M    211.3M  77% /
tmpfs                   459.3M     17.0M    442.3M   4% /tmp
/dev/mmcblk0p1           63.9M     17.4M     46.4M  27% /boot
tmpfs                   512.0K         0    512.0K   0% /dev
/dev/mmcblk0p3           54.1G      5.8G     45.5G  11% /opt
cgroup                  459.3M         0    459.3M   0% /sys/fs/cgroup
/dev/mmcblk0p3           54.1G      5.8G     45.5G  11% /opt/docker
overlay                  54.1G      5.8G     45.5G  11% /opt/docker/overlay2/f68fb3ca0beab2df19de3b409e2d2ca00313938e92981805f7c3a52091a1ca7b/merged

# root @ OpenWrt in ~ [11:51:52]
$

结尾

现在树莓派涨价好多,3b就要500多了,这是我同学送给我的礼物,也没必要挑剔。3b的网线口只是百兆的,有购买usb千兆网卡的想法(Updated:受限于USB2.0的速率,实际购买usb千兆网卡也是跑不到千兆的),但还没有动手,百兆作为一些轻微使用的设备也是足够的了,其他没有对特殊上网有需求的设备可以只享受AdGuard的DNS加成

'remote-https' is not a git command. See 'git --help'.
使用rlcone挂载onedrive网盘