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版本,这应该都是大家试验之后得出的结论。
下载安装
下载
有好几种镜像,分两种文件系统、两种类型( factory
和 sysupgrade
),文件系统都可以,但是要注意 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
应该可以看到 radio0
的 disabled
属性为 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管理界面了