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管理界面了

RaspberryPi 3b+ 安装OpenWrt教程的更多相关文章

  1. 树莓派3B安装OpenWrt打造超级路由器

    网上有很多树莓派安装OpenWrt的教程,我这里写一下个人安装体验以及踩过的坑

  2. Raspberrypi 3B+ 安装 php+sqlite

    按照网上的命令都为安装php5-fpm 和 php5-sqlite, 但是发现无法找到软件,可能是系统版本比较高的缘故,原来的版本已经不支持了. 经过努力华找到如下安装方法 sudo apt-get ...

  3. OPENWRT X86 安装使用教程 (未完成)

    目 录  一 下载 Openwrt 镜像文件 二 将镜像文件写入目标磁盘 2.1  写盘工具 2.2 Physdiskwrite 写盘 2.3 win32diskimager 写盘 三 管理界面 3. ...

  4. openwrt教程 第一章 物联网&openwrt开发概述

    1.1 我们的宗旨 互联网.移动互联网的时代已经过去,物联网的时代已经来临!2014年,是物联网元年,2016年,物联网将达到高潮!为了迎接该潮流,我们工作室(F403科技创意室:http://f40 ...

  5. 树莓派3B安装LEDE

    本来想安装openwrt的,但是op官方没有支持pi3,甚至op都不怎么发新版了,仅LEDE分支有缓慢的更新..离题了,之前给pi3装过LEDE,体验不是很好.今天到openwrt官网看了下,发现之前 ...

  6. wr720n v4 折腾笔记(一):安装Openwrt

    好久没有写过文章了,今天先来个引子:wr720n v4版本安装openwrt 最近弄了个路由器wr720n,想抓包做点东西,于是就先从刷固件openwrt开始吧. 所需工具: 1.wr720n v4路 ...

  7. IntelliJ IDEA - 热部署插件JRebel 安装使用教程

    IntelliJ IDEA - JRebel 安装使用教程 JRebel 能做什么? JRebel 是一款热部署插件.当你的 Java-web 项目在 tomcat 中 run/debug 的时候 , ...

  8. Zabbix3.x安装图解教程

    准备知识: Zabbix3.x比较之前的2.0界面有了很大的变化,但是安装部署过程与2.x基本完全一样. 1.Zabbix2.x安装图解教程 http://www.osyunwei.com/archi ...

  9. VMware vCenter Server安装图解教程

    安装说明: 1.安装VMware vCenter Server的主机操作系统为:Windows Server 2008 R2 2.在Windows Server 2008 R2中需要预先安装好SQL ...

随机推荐

  1. 【Java并发基础】安全性、活跃性与性能问题

    前言 Java的多线程是一把双刃剑,使用好它可以使我们的程序更高效,但是出现并发问题时,我们的程序将会变得非常糟糕.并发编程中需要注意三方面的问题,分别是安全性.活跃性和性能问题. 安全性问题 我们经 ...

  2. 13、python的路径处理

    前言:本文主要介绍python中路径的处理,包括os模块和有关的2个魔法变量. 一.os模块 python里面的os模块有许多方法可以让我们通过代码实现创建,删除和更改目录,具体如下: os.getc ...

  3. 创建dynamics CRM client-side (五) - 使用regular expression (正则表达式)来检查phone number

    我们这次要使用account, 让我们首先重建一个JavaScript. 建议每个entity都创建专属的js // Converting functions to Namespace Notatio ...

  4. Python的条件控制及循环

    一.条件控制: 1.If语句的使用: Python中if语句的一般形式如下所示: 上图中: 如果 "score>=90" 为 True 将执行 "print(‘优秀 ...

  5. Spring注解开发系列Ⅵ --- AOP&事务

    注解开发 --- AOP AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,横向重复,纵向抽取.详细的AO ...

  6. alert弹出窗口,点击确认后关闭页面

    alert("点击确认后,关闭页面"); window.opener=null;window.top.open('','_self','');window.close(this);

  7. centos7 手动设置时间

    date -s "2020-02-03 23:13:00" hwclock -w clock -w

  8. IntelliJ IDEA 2019.3 安装+永久破解[Windows]

    IntelliJ IDEA 2019的最后一个版本发布了,听说大幅优化了运行速度,本人实测启动速度确实比以前快不少,所以赶紧安排上新版本IDEA的破解教程 系统环境:Win10 LTSC(1809) ...

  9. 1755: N相关孪生素数

    #include<stdio.h>int f(int n,int L,int R){ int ch[10000],i,j,count=0; j=1; for(i=L;i<=R;i++ ...

  10. pycharm破解码

    今天又遇到了pycharm注册码失效的问题: 找到了一个好用的破解教程,为了能够尽快的使用,我用的是注册码的方式 教程链接:https://www.cnblogs.com/yuuje/p/101009 ...