本文最后更新于 超过 1 年前,文中所描述的信息可能已发生改变。
前言
这段时间收到了同学送的树莓派3B,准备放在家里当作软路由满足一些特殊需求,但这个3B网口仅有百兆,USB也只有2.0这意味着即使外接千兆网卡也跑不满,即使在内网传输速度也仅有100Mbps上下,非常难受。所以想要当软路由使用,至少也需要树莓派3B+,网口支持到300Mbps。
准备工作
这些软件均为Mac版本,在macOS12.0.1系统下工作良好
- SD Memory Formatter:用于格式化SD卡
- ApplePi Baker:用于刷入系统
- Openwrt镜像,我使用的是 SuLingGG 编译的 Lean OpenWrt 固件:openwrt.cc、Google Drive,我是树莓派3B,所以下载bcm2710的镜像,其他树莓派型号可以去网上搜索相关信息 注:名称中带有ext4的固件更容易扩容,最好选择此类固件
具体流程
格式化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
已经正常显示(我这里已经使用了一阵)
# 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加成