关于我
~一个热爱火影的业余小提琴玩家~
Joynaruto

树莓派驾到--OpenWrt初体验

前言

前阵子看了老白的这个视频,顿时有了折腾个移动软路由的念头,这样在自己单位或者其他客户单位办公的时候,我所有的设备都能留有隐私并且能够全家出国。于是便开始物色起来,老白视频中介绍的是全志出品的R1S-H5,他有两个网口(其中一个是usb转接而来),本来也许是个好选择,然而他的无线信号频段只有2.4GHz,这将严重影响实际体验效果,老白在视频中测速峰值结果为23Mbps,这个速度真的挺一般。于是我继续寻寻觅觅,直到发现了她!

树莓派驾到

首先先贴上树莓派的维基百科介绍

树莓派(英语:Raspberry Pi)是基于Linux的单片机电脑,由英国树莓派基金会开发,目的是以低价硬件及自由软件促进学校的基本计算机科学教育。

我这次入手的在2019年6月发布的树莓派4b,具体硬件配置如下图:

再放几张我实体开箱图:

绝对是”麻雀虽小,五脏俱全”。采用Type-c供电意味着我出门带着他可以少带一套充电设备;两个mini-hdmi可同时输出4k分辨率视频;另比起上代这代的USB也升级到了3.0,这样的话如果后期网口不够还能使用usb转网口配件来扩充网口,总体来说这次树莓派4b的配置还是挺好的!

编译固件

和之前编译的X86架构的Openwrt不同,树莓派的架构是Broadcom BCM27xx,所以在选架构这里有点区别。折腾过程参考了这篇文章,贴上我自己的配置:

基础配置:

#系统架构选择
Target System -> Broadcom BCM27xx
Subtarget -> BCM2711 boards (64 bit)
Target Profile -> Raspberry Pi 4B
#镜像选择
Target Images -> squashfs
Target Images -> Kernel partition size = 20
Target Images -> Root filesystem partition size = 500
#工具选择
Base system -> block-mount
Base system -> blockd
Administration -> htop

内核模块:

#文件系统选择
Kernel modules -> Filesystems -> kmod-fs-ext4
Kernel modules -> Filesystems -> kmod-fs-ntfs
Kernel modules -> Filesystems -> kmod-fs-squashfs
Kernel modules -> Filesystems -> kmod-fs-vfat
Kernel modules -> Filesystems -> kmod-fuse
# USB支持
Kernel modules -> USB Support -> kmod-usb-core
Kernel modules -> USB Support -> kmod-usb-hid
Kernel modules -> USB Support -> kmod-usb-storage
Kernel modules -> USB Support -> kmod-usb-storage-extras
Kernel modules -> USB Support -> kmod-usb-usb2
Kernel modules -> USB Support -> kmod-usb-usb3
Kernel modules -> USB Support -> kmod-usb-net-asix   //启用usb转网口支持
Kernel modules -> USB Support -> kmod-usb-net-asix-ax88179

LuCI配置

# LuCI设置
LuCI -> Collections -> luci
LuCI -> Modules -> Translations	-> Chinese(zh-cn)
LuCI -> Themes -> luci-theme-material	

# LuCI应用
LuCI -> Applications -> luci-app-adbyby-plus
LuCI -> Applications -> luci-app-arpbind
LuCI -> Applications -> luci-app-autoreboot
LuCI -> Applications -> luci-app-ddns
LuCI -> Applications -> luci-app-firewall
LuCI -> Applications -> luci-app-flowoffload
LuCI -> Applications -> luci-app-frpc
LuCI -> Applications -> luci-app-hd-idle
LuCI -> Applications -> luci-app-netdata
LuCI -> Applications -> luci-app-opkg
LuCI -> Applications -> luci-app-qos
LuCI -> Applications -> luci-app-samba
LuCI -> Applications -> luci-app-shadowsocks-libev
LuCI -> Applications -> luci-app-ttyd
LuCI -> Applications -> luci-app-upnp
LuCI -> Applications -> luci-app-vssr    //psw和plus都下架,试试新的hw
LuCI -> Applications -> luci-app-vlmcsd
LuCI -> Applications -> luci-app-wol

其他配置

Network -> File Transfer -> curl
Network -> File Transfer -> wget
Utilities -> Compression -> bsdtar	
Utilities -> Compression -> gzip
Utilities -> Compression -> xz-utils
Utilities -> Compression -> unzip
Utilities -> Compression -> zip
Utilities -> Disc -> fdisk
Utilities -> Disc -> lsblk
Utilities -> Editors -> nano
Utilities -> Editors -> vim
Utilities -> Filesystem -> ntfs-3g
Utilities - Terminal -> screen

IPv6支持(也许未来某天我会启用)

Global build settings -> Enable IPv6 support in packages
Network -> odhcp6c
Network -> odhcpd-ipv6only
Network -> Firewall -> ip6tables
LuCI -> Protocols -> luci-proto-ipv6

刷入系统

我使用的是BalenaEtcher来进行系统刷写,整个写入过程大概30秒左右,挺快的!

配置树莓派

值得一提的是树莓派4b有且仅有一个千兆网口,这也就意味着他无法像R1S-H5那样一个口设置wan口,另一个设置lan口。而且我一开始没有勾选内核模块中的Kernel modules -> USB Support -> kmod-usb-net-asix,这导致我usb转网口无法被识别,我有的只是一个千兆网口和一个无线网卡。

网关服务器模式(旁路由)

一开始在单位我只能把他当做网关服务器(旁路由)来使用:先通过电脑连接网线获取公司网线段的IP地址和对应网关地址,然后通过电脑网线连接树莓派,手动设置一个和单位网络同网段的静态IP地址,网关地址设为单位网关。这一轮设置好后理论上是可以访问网络了,然而我并无法访问任何网页,整个网关服务器仍处在未连接互联网状态。最后在我设置了公共DNS后,立马就通了 :cry: 难道单位的DNS被污染了么?

二级路由模式

因为工作原因,我常常会在不同客户单位和自己单位办公,但如果每次到一个新的地方都要像上面那样重新配置一遍IP地址以及网关还是非常的麻烦的。最好的解决方案还是二级路由,二级路由不光配置方便,而且在一级路由看来是看不到我们接在二级路由下的设备的,隐私得以保障。然而我上面提到树莓派4b有且仅有一个千兆网口,而且由于我编译问题没勾选usb转网口驱动(不过话讲回来就算行我也不打算用,拖根线太丑了= =。。)网上看了说是配置虚拟vlan,一口当二口用,我愣是没看懂 :!: 。就在我快放弃的时候,我领导的便携路由器给了我灵感。他的那小玩意儿只有一个百兆网口另加一个2.4GHz的无线,日常使用就是网口插入网线利用无线来上网。于是我依葫芦画瓢地把我的唯一的网口设置为wan口,模式采用DHCP,把原来的lan口留给无线,这样一来就可以拿网线直接插入树莓派4b的网口,通过DHCP自动获取一个IP地址,然后我的客户端就可以通过树莓派4b5GHz的无线网络来出国上网了或者进入后台来管理了,完美 :idea:


上个最终使用图

小技巧

  • 在”系统 -> LED配置”中:LED0是绿色灯,LED1是红色灯,可以用来当无线收发的指示灯
  • 使用:cat /sys/class/thermal/thermal_zone0/temp查看CPU温度

最后

目前使用良好,唯一一点就是这小家伙的5GHz信号强度不是很强,稍微走远点就减弱很多,但是对于在工位这点地方上使用那真是绰绰有余了,跑分下来基本稳定在110Mbps,碾压R1S-H523Mbps,爽!

发表回复

textsms
account_circle
email

Joynaruto

树莓派驾到--OpenWrt初体验
前言 前阵子看了老白的这个视频,顿时有了折腾个移动软路由的念头,这样在自己单位或者其他客户单位办公的时候,我所有的设备都能留有隐私并且能够全家出国。于是便开始物色起来,老白视…
扫描二维码继续阅读
2020-04-18