树莓派安装Openwrt作为旁路由的过程和踩坑

这篇文章上次修改于 4 个月前,可能部分内容已经不适用,如有疑问可询问作者。

树莓派安装Openwrt作为旁路由的过程和踩坑

前言

这两天收到了一个树莓派,由于我第一次用树莓派,踩了不少坑,目前我有两台服务器,所以决定将树莓派作为旁路由放在家里满足一些特殊需求。

我的树莓派是3B,由于没有买屏幕键盘什么的,所以用烧录的方法刷入系统,不仅方便,而且节省空间

准备工作

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

  • SD Memory Formatter
    https://www.sdcard.org/downloads/formatter/sd-memory-card-formatter-for-mac-download/
    :用于格式化SD卡
  • ApplePi Baker
    https://www.tweaking4all.com/software/macosx-software/macosx-apple-pi-baker/
    :用于刷入系统
  • Openwrt镜像,我使用的是
    SuLingGG
    https://github.com/SuLingGG
    编译的
    Lean OpenWrt
    https://github.com/coolsnowwolf/lede
    固件:
    openwrt.cc
    https://openwrt.cc/releases/targets/bcm27xx/bcm2711/
    、
    Google Drive
    https://drive.google.com/drive/folders/1_P2RoPbguY99qJxmCU4SKUgP8Kg0Xr03
    ,我是树莓派3B,所以下载bcm2710的镜像,其他树莓派型号可以去网上搜索相关信息 注:名称中带有ext4的固件更容易扩容,最好选择此类固件

开始

1.格式化tf卡

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

2.烧录系统

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

https://pan.baiblog.ren/d/R%E7%9B%98/images/blog/Pi-Openwrt/p2.webp
https://pan.baiblog.ren/d/R%E7%9B%98/images/blog/Pi-Openwrt/p2.webp
)

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

3.系统设置

使用网线连接电脑/连接树莓派发出的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
Copy

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

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

4.客户端设置

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

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

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

5.一些坑

AdguardHome

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

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

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

Read-Only system

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

6.扩容

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

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

由于我已经扩容完毕了,所以没有显示绿色;如果你没有扩容,选择一个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]
$
Copy

结尾

我觉得坑还是蛮多的吧,主要是那个Read-Only的问题导致我重新刷了好几遍系统,网上找又找不到可以解决的办法,如果各位有办法解决可以评论告诉我

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