RaspberryPi 3b+ 安装OpenWrt教程

近日在研究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管理界面了

posted @ 2019-09-29 13:41  l_____py  阅读(7886)  评论(0)    收藏  举报