零成本升级:把吃灰的树莓派刷成路由器!
发布时间:2025-08-11 17:14 浏览量:1
近期推出的树莓派型号性能优于传统路由器,因此将其用作路由器可能会颇具吸引力。然而,它并非完美无缺,因为大多数路由器软件并不支持树莓派(或仅支持命令行操作)。幸运的是,OpenWrt或许是个不错的解决方案。它可在树莓派上运行,并配备了用于配置所有功能的网页界面。下面,让我们一起来学习如何使用它。
OpenWrt在其官网上为所有树莓派型号提供了定制版本。它可以像其他操作系统一样烧录到SD卡上。首次启动时,需要一些命令来配置网络,但之后,一切操作都可以在网页界面上完成。
即使你之前在PC或传统路由器上使用过OpenWrt,其安装过程和初始配置也会有所不同。因此,我将指导你完成初始步骤,直到你能够访问网页界面并像往常一样进行操作。
目录
安装OpenWrt前的先决条件
在树莓派上安装OpenWrt
在树莓派上使用OpenWrt的技巧
OpenWRT进阶使用
安装OpenWrt前的先决条件
在树莓派上安装OpenWrt之前,需牢记一些先决条件。下面,我将详细解释。
更新引导加载程序
所有树莓派型号的主板上都直接内置了一段代码(不在SD卡上),用于处理启动过程。自初始发布以来,这段代码已频繁更新(例如,增加了对USB和网络启动的支持、修复了漏洞等)。
OpenWrt要求你的引导加载程序(EEPROM包)为最新版本。
在树莓派操作系统上,此更新会自动完成。因此,如果你已经在树莓派上使用过该系统(并进行了更新),那么它可能已经是最新版本。
但是,如果你刚购买了树莓派,建议先安装树莓派操作系统,更新EEPROM,然后再安装OpenWrt。
以下是在树莓派操作系统上检查引导加载程序是否为最新版本的方法:
在终端中运行以下命令:
sudo rpi-eeprom-update
该命令会显示你当前的版本以及是否有可用更新。
如果需要,你可以使用以下命令安装更新:
sudo rpi-eeprom-update -a
sudo reboot
完成更新后(完全重启后),你可以关闭树莓派,并按照接下来的步骤在其上安装OpenWrt。
警告:避免网络冲突
与大多数路由器一样,OpenWrt在首次启动时默认会设置IP地址为192.168.1.1。你的当前路由器很有可能已经在使用这个IP地址,这可能会导致网络冲突。
如果你不想造成任何问题,建议在首次启动时拔掉以太网电缆,或者在本教程操作过程中创建一个不同的物理网络。
例如,你可以使用一个小型网络交换机,将树莓派和你的电脑连接到上面,并手动设置你的电脑使用任何以192.168.1.X开头的IP地址。
如果你对所有技术细节感到困惑,我可以帮助你。
我写了一本书,帮助你从树莓派初学者水平提升到更高级的水平(包括与之相关的所有内容:Linux、网络知识、编程)。数千名读者终于对这些专业术语更加熟悉,现在能够轻松完成有趣且实用的项目。
https://raspberrytips.com/school/master-raspberry-pi/?nab=0&coupon=IP21LK&src=inpost_retropie
硬件要求
如果你没有创建单独的网络(特别是如果你的主网络处于同一范围),则需要将键盘和显示器连接到树莓派上。
在我的情况下,我的家庭网络以192.168.222.X开头,因此不会产生任何冲突。但我将无法从我的电脑连接到192.168.1.1。因此,我将通过一些命令行手动更改树莓派的IP地址,这需要键盘和显示器。
供你参考,OpenWrt启动时采用QWERTY键盘布局(美国默认布局),并不支持其他布局。如果你像我一样使用其他布局,首次启动时可能需要以下内容:
除此之外,你不需要其他特殊设备。
以下是我在为你测试本教程时所使用的设备:
树莓派:OpenWrt几乎支持所有型号,包括最新的树莓派5。在本教程中,我使用的是配备4GB内存的树莓派4。
优质的SD卡:你不需要任何高端产品,镜像文件非常小,存档文件不到100MB!
我的树莓派显示器和micro-HDMI线。
我新宠的Rii键盘。
以太网电缆。
好了,让我们来看看如何在其上安装OpenWrt。
在树莓派上安装OpenWrt
以下是在树莓派上安装OpenWrt所需的步骤
从官方Wiki下载最新镜像。
将镜像烧录到SD卡上。
启动树莓派。
配置网络接口。
访问网页界面。
下面,我们将详细讨论如何执行这些步骤。
从官方网站下载OpenWrt
第一步是从官方Wiki下载最新的可用镜像。
https://openwrt.org/toh/raspberry_pi_foundation/raspberry_pi#installation
在该页面上,找到以下表格:
找到与你的树莓派型号相对应的列。点击“Firmware Openwrt Install”列中的链接以下载.gz镜像文件。无需解压。
烧录下载的镜像
下载镜像后,将其烧录到你的SD卡上。我通常使用Raspberry Pi Imager(当我已经将镜像保存在电脑上时),但其他工具如Balena Etcher也应该能正常工作。
https://raspberrytips.com/raspberry-pi-imager-guide/
https://raspberrytips.com/install-etcher-on-raspberry-pi/
以下是烧录镜像的步骤:
启动Raspberry Pi Imager(或你喜欢的工具)。
如果你还没有Imager,可以在此处免费下载。
https://www.raspberrypi.com/software/
使用SD卡读卡器将SD卡插入电脑。
点击选择操作系统 > 使用自定义,并指向你上面下载的文件。
点击选择存储设备,并选择你的SD卡。
点击下一步,当被询问是否应用设置时,点击否。
确认后,写入过程将开始。
如你所见,镜像非常小(本例中为14MB),因此只需几秒钟即可完成。
首次启动
SD卡创建完成后,将其插入树莓派并通电启动。
你将看到一堆调试信息(黑底白字)。当它停止滚动时,按Enter键以访问命令提示符:
如果你看到相同的内容,则表示一切正常,你可以继续下一步。
如果它无法启动或出现错误,请仔细检查先决条件(特别是EEPROM更新),并随时访问OpenWrt论坛寻求帮助。
https://forum.openwrt.org/
可选:设置以太网IP地址
如前所述,OpenWrt默认会将以太网适配器设置为192.168.1.1。如果你觉得没问题,可以跳过此步骤并直接访问网页界面。
但在大多数情况下(对我来说也是如此),需要更改此设置。
我的网络使用的是192.168.222.1-254范围,我希望从其他设备访问OpenWrt。
或者,192.168.1.1可能已被你的主路由器占用,因此你需要更改OpenWrt以使用不同的IP地址。
无论哪种情况,你都可以使用以下三个命令更改默认IP地址:
uci set network.lan.ipaddr=>YOUR_IP>
uci commit
/etc/init.d/network restart
记住:默认键盘布局为QWERTY(美国布局),因此你可能需要使用前面给出的图片来输入这些命令。
如果你开始时断开了网络电缆以避免任何冲突,现在可以插上它并继续操作。在我的情况下,我现在可以ping通树莓派了,因此我准备对其进行配置。
访问网页界面
现在,你已经将OpenWrt设备连接到了网络,其所有配置都可以通过网页界面完成。因此,你不再需要使用控制台命令。
从与树莓派相同网络上的电脑上打开网页浏览器,并访问树莓派的IP地址:
http://
这是你刚刚在命令行中设置的IP地址,或者如果你没有更改它,则可能是192.168.1.1。
默认用户名为root,密码为空。
你将连接到OpenWrt的完整界面,但在继续之前,建议为root设置一个密码。
设置root密码
连接到网页界面后的第一步是为root设置一个密码。
转到系统 > 管理,你将看到一个如下形式的表单:
填写一个强密码,并点击保存以应用更改。
在树莓派上使用OpenWrt的技巧
我们快完成了,但让我给你一些在树莓派上使用OpenWrt的技巧。
我今天的目标不是开设OpenWrt大师班,但至少要解释一下正确的入门步骤。
切换到SSH
一旦你设置了IP地址和root密码,SSH服务就变得可用。
因此,如果你将来需要在OpenWrt上运行一些命令行,使用SSH客户端可能会比直接在树莓派上输入更舒适。
你可以使用root登录。在大多数操作系统上,你可以从终端使用以下命令:
ssh root@IP
输入你刚刚设置的密码,你将连接成功。
如果你需要更多关于如何使用SSH与树莓派的指导,请点击链接阅读我的完整指南。
https://raspberrytips.com/ssh-guide-raspberry-pi/
它主要是针对树莓派操作系统的,但原理与任何发行版都相同(并且我在其中分享了我最喜欢的SSH客户端)。
更新系统时间
当你首次安装OpenWrt时,它通常会显示错误的时间。这种时间不一致可能会影响后续的软件包更新。
以下是在OpenWrt上更新系统时间的方法:
转到系统 > 系统
在常规设置选项卡下,点击与浏览器同步或与NTP服务器同步。
你可以两者都尝试以确保准确。
等待5-10秒以使其同步。它将把你的系统更新为UTC日期和时间,这是一个不错的默认设置
点击底部的保存并应用。
现在,本地时间应该正确了(别忘了它是UTC时间)。
配置DNS服务器
我最初在使用网页界面时遇到了很多问题,但很快就找到了原因。
例如,当我尝试更新新软件包时,出现了以下错误:
无法从X下载软件包列表
opkg_download:请检查你的网络设置和连接性。
发送请求失败:操作不被允许。
那是因为我们还没有为OpenWrt设置DNS服务器,因此几乎所有需要互联网访问的功能都无法工作。这里有两种可能的解决方案。
解决方案1:使用自定义DNS服务器
在网页界面中,转到网络 > 接口。
点击LAN接口前面的编辑。
转到高级设置选项卡,并找到使用自定义DNS服务器字段。
填写你首选的DNS服务器地址。你可以使用本地网络上的一个(如果你有的话),或者简单地使用一个公共DNS服务器(我正在测试8.8.8.8,这是谷歌的DNS服务器)。
点击保存。在返回的下一个屏幕上,别忘了点击保存并应用。
解决方案2:将协议更改为DHCP客户端
如果上述方法对你不起作用,请尝试此方法。
通常,人们会将OpenWrt设备设置为直接连接到互联网的路由器。但在我的情况下,OpenWrt-Pi位于另一个路由器(我的主路由器)后面。这种配置导致了DNS问题,即OpenWrt无法访问互联网。
一种解决方案是让OpenWrt从你的主路由器接收其DNS。方法如下:
转到网络 > 接口。
点击编辑。
在常规设置选项卡下,将协议更改为DHCP客户端。
点击保存。在返回的下一个屏幕上,点击保存并应用。
你的树莓派将重新连接到网络并接收一个新的IP地址。你将需要找出树莓派的新IP地址,因为它将是随机分配的。
一旦你可以重新连接到网页界面,请检查互联网访问是否正常工作。
进入“网络”>“诊断”并点击“IPv4 ping”。如果正常工作,您应该会收到响应。
安装附加组件
如果互联网连接可用且DNS服务器配置正确,你现在可以使用网页界面中的软件功能来安装新的软件包。
系统 > 软件页面默认情况下几乎是空的。点击更新列表…以与存储库同步。你应该会看到类似以下内容:
注意:如果你的更新失败,可能是因为OpenWrt无法访问互联网。要检查这一点,请转到网络 > 诊断并尝试ping一个域名。如果ping失败,请使用上述部分中的方法来修复你的DNS设置。
与树莓派操作系统和大多数Linux发行版上的软件包工作方式类似,你可以轻松地从该页面在OpenWrt上安装新的软件包(我们稍后将使用它)。
你可以找到特定设备的驱动程序,以及传统的软件包(你可以在命令行中使用)或网页界面功能。这里有一个搜索引擎,你可以用来快速查找内容。
启用无线接口
在我的树莓派4上,有一个无线接口,并且它被自动检测到了。因此,一旦你访问了网页界面,就可以快速配置它并使用它。
我测试这个功能花费了很多时间,因为我试图从“网络”>“接口”菜单中配置它,但实际上,它已经在“网络”>“无线”下面了。
如果你使用的是树莓派4,你应该会看到类似以下内容:
点击“扫描”以查看检测到的无线网络列表。
点击你想要连接的网络,并填写带有密码的表单:
按照向导中的步骤保存配置并连接到你的Wi-Fi。
如果一切顺利,你现在应该在主页上看到两个网络配置:
这是一个不太好的例子,因为如果我的目标真的是构建一个路由器,我应该使用两个不同的网络范围。但我只是在向你展示如何配置基本内容。之后,你可以自由更改任何内容以满足你的需求。
例如,一旦连接到你的Wi-Fi,你现在可以配置以太网以使用不同的网络范围,以将你的以太网网络与其他电脑隔离。
如何使用USB适配器
树莓派只有一个以太网适配器,这对于构建路由器来说并不理想。在某些型号上,你有无线接口,但并非所有型号都有。好消息是:如果你的树莓派使用USB转以太网适配器,并且与OpenWrt兼容,那么它是受支持的!
我有一个适配器,当我插上它时,它被直接检测到了。
在显示器上,我看到了以下消息:
即使OpenWrt检测到你插入了设备,它也不一定会默认安装驱动程序(并且它不是即插即用的,你需要安装它)。
在之前的截图中,有两个需要注意的事项:
制造商是Realtek。我们不关心适配器上标注的品牌,重要的是网络适配器制造商,通常是Realtek或Intel。
确切型号是8153(RTL8153)。
有了这些信息,你可以进入软件安装程序并搜索相应的驱动程序。如果你有不同的适配器,请确保搜索你的确切型号。
不过,搜索引擎并不完美。在我的情况下,无论我尝试什么,都没有结果。我在网上找到,你可以使用RTL8152驱动程序来支持8153型号。因此,我安装了它,然后它在网页界面中被正确检测到了。
但你可能需要进行一些研究以找到缺失的正确驱动程序。
完成后,你可以转到“网络”>“设备”,你应该会在这里看到你的USB适配器:
点击“配置”以使用此网络设备创建一个新的接口。
OpenWRT进阶使用
从这里开始,在树莓派上使用OpenWrt将与在任何其他设备上使用它没有区别。你可以访问网页界面,并且你的硬件被正确检测到了(即使你使用USB适配器),因此你可以继续创建你需要的配置。
正如我告诉你的,我的目标是在这里帮助你开始使用树莓派而不是更传统的设备。如果你需要更多指导,你可以参考官方文档或任何好的在线教程,即使它们不是为树莓派编写的。
https://openwrt.org/docs/start
如果你不喜欢OpenWrt并想尝试传统方法(使用IPTables),你可以参考我多年前写的另一篇教程,它解释了如何手动完成所有操作。
https://raspberrytips.com/raspberry-pi-firewall/
其中还简要介绍了网络基础知识,即使你使用OpenWrt完成相同的项目,这也可能很有趣。
如果你想在命令行中尝试iptables的替代方案,那就是测试“ufw”,它代表“简单防火墙”。我在这篇文章中解释了一切。
如果觉得文章不错记得点赞,收藏,关注,转发~
我们很乐意为您提供工业树莓派的解决方案,项目有需求请联系我们~
官方网站:www.edatec.cn/cn