RaspberryPi 3b+ 安装OpenWrt教程

时间:2024-03-07 16:08:02

layout: post
title: "RaspberryPi 3b+ 安装OpenWrt教程"
date: 2019-09-28 22:00:00 +0800
categories: RaspberryPi

近日在研究p2p原理的时候,因为NAT类型的限制,遇到了不少麻烦,而我们宿舍的路由器又不支持控制NAT方式,于是想在我的树莓派上安装OpenWrt以实现一个NAT可控的路由器,本以为既然有了OpenWrt官方固件,应该会比较简单,可还是遇到了不少麻烦,因此简单记录一下,供遇到同样问题的朋友们参考。

硬件

  • Raspberrypi 3b+

首次说明一下需要的硬件,因为 Raspberrypi 3b+ 本身带有无线网卡,网线接口,如果只是打算用树莓派连接WAN,作为无线路由器的话,是不需要任何其他配件的,对于之前的型号,可能就需要配网卡了。

  • 显示器、键盘

注意snapshot版本是不带 lcui 的,所以没法直接在浏览器进入管理界面,不过理论上来说,开机之后,通过网线和电脑相连应该就可以通过 192.168.1.1 登录 ssh 了,但是不排除因为网络调整之类的原因导致无法连接,最好直接连接显示器和键盘,便于调试。

固件说明

接下来说一下固件,有两种类型固件,一种是release版本,另一种是snapshot版本。在我安装的时候,release版本不带无线网卡驱动,而snapshot版本不带lcui(也就是用于在浏览器登录的那个路由器管理程序)。
我原本安装的是release版本,安装好之后发现无线网卡无法启动,于是从我的Raspbian系统中复制了相应的无线网卡驱动到OpenWrt系统中,然后就可以成功连接WIFI,也能开AP了,但是由于在之后我连接WAN的时候,树莓派总是莫名重启,频繁到根本无法连接到热点,于是我决定试试snapshot版本。所以下面就从说说snapshot版本的安装与配置过程吧,建议读者安装snapshot版本,我当时查资料的时候大家都推荐的snapshot版本,这应该都是大家试验之后得出的结论。

下载安装

下载

有好几种镜像,分两种文件系统、两种类型( factorysysupgrade ),文件系统都可以,但是要注意 sysupgrade 是用于在路由器管理界面升级使用的,factory 才是使用SD卡刷系统使用的,因为相对更了解ext4,所以我下载了ext4-factory版本。

解压并写入镜像文件

注意sdX代表你SD卡对应的设备文件

gzip -d openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img.gz

sudo dd if=openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img of=/dev/sdX bs=2M conv=fsync

开机

接好显示器和键盘,把sd卡装入树莓派开机,如果不出意外应该就可以看到输出,等屏幕上提示按Enter启动console的时候,就可以按Enter启动终端了。

如果没有显示器的话,可以尝试用网线直接连接电脑,看能否通过 root@192.168.1.1 登录,默认是可以直接登录的,登录之后可以通过 passwd 设置root密码。

当然也可以先把sd卡挂载到电脑上,根据下面的说明,改好配置文件后再装进去开机测试。

启用无线网卡

确认无线网卡是否正常驱动

使用 ip addr 命令,查看 interface 信息如果存在 wlan0 ,则可确定无线网卡驱动没有问题。

启用无线网卡

我在刚开机时执行 ip addr 命令,wlan0 的状态为 DOWN 也就是关闭状态,因此需要手动启用。于是我尝试使用 wifi up 命令来启用,但是并没有成功,好像是提示 wlan0处于disabled状态,这时候如果你执行 wifi status 应该可以看到 radio0disabled 属性为 true

因此需要修改 /etc/config/wireless 文件(系统带有 vi 命令),将 radio0 配置中的 disabled 改为 0

...
config wifi-device \'radio0\'
        ...
        option disabled \'0\'
        ...

然后执行 /etc/init.d/network restart 重启网络服务,这时候再次使用 ip addr 查看网络情况,无线网卡应该就已经启用了,如果没有的活,可以尝试使用 wifi up 或者 ip 命令手动启用

配置网络

我的配置方式是使用wlan0(无线网卡)建立本地无线局域网,而eno0(以太网卡)只用于连接WAN。

因此我将原本配置文件的 lan 配置中包含 bridge 那一行删掉了,因为我并不打算用于桥接,并且改成了使用无线网卡 wlan0(原本是eno0)。

还有一点值得注意的是,我将 lan 中的 ipaddr 改为了 192.168.2.1 , 这是为了避免将WAN口连接到我们宿舍的路由器上时发生地址冲突,这样配置之后,连接到树莓派的无线局域网中的设备的ip也将是192.168.2.*,用那些设备登录路由器设置(现在还不能用,只有装好了lcui才能用)或者登录ssh的话要使用 192.168.2.1 这个地址。

如果你使用网线连接电脑的方式登录ssh,这样配置会导致你无法继续使用这种方式,不过如果wifi配置正确的话,应该可以连接wifi来继续使用ssh。

config interface \'lan\'
	option ifname \'wlan0\'
	option proto \'static\'
	option ipaddr \'192.168.2.1\'
	option netmask \'255.255.255.0\'
	option ip6assign \'60\'

对于WAN,要根据实际情况配置

  • 如果是宽带的话,一般是使用 PPPOE 方式
config interface \'wan\'
	option proto \'pppoe\'
	option ifname \'eth0\'
	option ipv6 \'auto\'
	option username \'用户名\'
	option password \'密码\'
  • 如果是DHCP局域网,配置更为简单
config interface \'wan\'
	option proto \'dhcp\'
	option ifname \'eth0\'

改好配置文件之后, /etc/init.d/network restart 重启网络服务,测试一下能否连接wifi,出问题的话,也要多使用 ip addr 命令来排查错误,查找原因。

正常情况下,现在应该已经可以连接wifi,连接此wifi的设备也可以连接到 root@192.168.2.1 了。对于wan口,可以使用 ip addr 查看wan口是否已经获取到了ip地址,没有的话好好检查下配置。

检测是否一切正常

如果你的WAN可以正常连接,WIFI也可以正常使用的话,那么恭喜,如果WAN正常连接而WIFI不能上网的话,可能是防火墙配置的问题,下文会告诉你怎么改配置。既然已经可以连接网络了,我们不妨先来安装好 lcui ,然后就可以像路由器一样登录管理界面了。

安装 lcui 管理程序

参见https://openwrt.org/zh-cn/doc/howto/luci.essentials

安装

在软件库中检索可用软件包的最新列表:

  opkg update

完整安装一个不需要HTTPS支持的LuCI:

  opkg install luci

完整安装一个需要HTTPS支持的LuCI:

  opkg install luci-ssl

开始使用Web服务器(uHTTPd)

Web服务器uHTTPd是LuCI安装包的一个依赖软件,它会在你安装LuCI时自动安装。

安装后,Web服务器是未运行的!你需要手动开启它。你还应该启动Web服务器,以使它在你重启路由器时自动启动。

下面的第一个命令启动Web服务器,第二个使它在重启时启动。

  /etc/init.d/uhttpd start
  /etc/init.d/uhttpd enable

安装好之后,应该就可以登录OpenWrt管理界面了