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. .net Core 2.*使用autofac注入

    创建项目 1.创建一个.net core 项目 2.创建一个类库 2.1创建interface文件夹 2.2创建Service文件夹 好了给大家看项目目录 对的.我创建了一个IUserService和 ...

  2. java面试| 精选基础题(2)

    关注微信公众号"java从心",置顶公众号 每天进步一点点,距离大腿又近一步! 阅读本文大概需要6分钟 继续挖掘一些有趣的基础面试题,有错望指出来哈,请赐教~ 1.包装类的装箱与拆 ...

  3. Linux下socket编程基本知识

    本文档主要讲解了Linux下socket编程的一些基本知识,主要包括套接字和字节序的概念,以及一些常用的结构体和函数. 本文是在网易云课堂学习过程中的记录,这个老师讲得很不错,推荐大家围观. Linu ...

  4. 百度搜索关键词联想API JSONP使用实例

    许多搜索引擎都提供了关键词联想api,且大多数都是jsonp. Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获 ...

  5. vijos 小胖守皇宫

    点击打开题目 树形DP 显然会想到某个点放或不放守卫来定义状态,但在不放的情况下,需要分类讨论是父亲放还是一个儿子放,于是定义以下状态: f[root][0]表示自己不放,父亲也不放 f[root][ ...

  6. 深入了解Zookeeper

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项目,其 ...

  7. windows配置Lua开发环境

    官网上下载的不靠谱,很多库不能用,你如 require "socket" 如果没有vc那些编译也麻烦,摸索了很久,直接下载安装文件安装即可: 安装这两个就行: 先安装C++2005 ...

  8. 安装jrebel并激活

    1.File-Settings-Plugins搜索jrebel,找到JRebel for IntelliJ ,点击install(我这里已经安装过了,所以显示的是更新) 2.重启idea 3.激活步骤 ...

  9. Struts2与OGNL的联系

    1.Struts与OGNL的结合原理 (1)值栈: OGNL表达式要想运行就要准备一个OGNLContext对象,Struts2内部含有一个OGNLContext对象,名字叫做值栈. 值栈也由两部分组 ...

  10. mint ui的tabBar监听路由变化实现tabBar切换

    说明 最近学习vue,使用了mint ui的tabBar,感觉好难受,结合 tab-container使用更难受,因为它不是根据路由来切换页面的.mui与它基本相反,因此它能根据搜索栏的路由变化,相应 ...