openwrt怎么考(玩转openwrt)

纸扎戏偶

本篇文章给大家谈谈openwrt怎么考,以及玩转openwrt对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

  • 1、ppp模式如何设置openwrt
  • 2、openwrt接入点ap功能怎么用
  • 3、如何编译OpenWrt

ppp模式如何设置openwrt

1.刷 ROM

? a.首先确定你的设备可以被 OpenWRT 所支持(到这里查看支持的设备列表:),然后到这里下载编译好的 ROM: 。最新的 stable 版本是 attitude_adjustment(12.09),我下载的是 trunk 版本。

?

? b.在 OpenWRT 官网找相应设备的 Wiki 页面查看刷机方法,一般都是在路由器官方Web固件升级页面直接刷入(我的 WNDR3800 Wiki页面是:)

?

? 2.初始配置

? a.路由器启动后,有的型号没有安装 Wifi 模块,需要先用网线连接到 LAN 口,本机 IP 配置为静态 192.168.1.x,然后 telnet 到 192.168.1.1,更改 root 密码,然后 ssh 连入,参考:

? b.配置 WAN 口,让路由连上 Internet

_.安装 LuCI Web 管理界面并设置开机自动启动

_.浏览器输入路由器 LAN 侧 IP(多为192.168.1.1),进行 Wifi 等配置

openwrt接入点ap功能怎么用

上层 DHCP 服务) –有线– (openwrt) –无线– (笔记本,手机)

bridged AP 官方配置 wiki :

配置网络

配置无线

关闭 dnsmasq

home

针对家里的上层拨号路由器 (192.168.1.1) 配置:

config interface ‘loopback’

option ifname ‘lo’

option proto ‘static’

option ipaddr ‘127.0.0.1’

option netmask ‘255.0.0.0’

config interface ‘lan’

option ifname ‘eth0’

option type ‘bridge’

option proto ‘static’

option ipaddr ‘192.168.1.11’

option netmask ‘255.255.255.0’

## 为了 openwrt 可以连接外网,需要配置以下网关和 DNS

option gateway ‘192.168.1’

option dns ‘192.168.1.1’

奇葩的是 DNS 要由上层路由器 代理解析 ,测试用 google 的 DNS 8.8.8.8 不行

在家里配置比较简单,注意 管理地址 不要冲突就好

office

办公室的环境和家里的有些不同,还做了限制:

办公室的网络是 10.x.x.x 网段

禁用了 手动 设置 IP 访问公网,必须要 DHCP 获取地址

因为是两个网段,需要在 openwrt 配置 ip 别名 (ip alias) 进行管理:

alias 官方配置 wiki :

config interface ‘loopback’

option ifname ‘lo’

option proto ‘static’

option ipaddr ‘127.0.0.1’

option netmask ‘255.0.0.0’

//动态获取办公网地址,不然 openwrt 没法上网

config interface ‘lan’

option ifname ‘eth0’

option type ‘bridge’

option proto ‘dhcp’

//手工配置的内网地址,用作管理用

config ‘alias’

option interface ‘lan’

option proto ‘static’

option ipaddr ‘10.10.15.187’

option netmask ‘255.255.255.0’

// 如果上面两个地址分配失败,这个备用地址用来连接管理 openwrt

//需要将笔记本网卡手工设为 192.168.x.x 网段

config ‘alias’

option interface ‘lan’

option proto ‘static’

option ipaddr ‘192.168.1.12’

option netmask ‘255.255.255.0’

上面的配置,都没有指定 gateway 如果网关 不是 真实存且可达的。配置之后,会导致无法登录 openwrt 需要进入安全模式修改配置了。gateway 其实是不需要的,使用网线将路由器和电脑互联, 只要路由器和电脑设为同一网段,掩码一致,就可以直接访问的

/etc/init.d/network restart

重启网络后,可以通过手工设置的办公网地址连接到 openwrt 说明配置生效了

登录查看正确的获取到了 DHCP 地址也,但是 ifconfig 却无法显示 ip alias :

ifconfig

br-lan Link encap:Ethernet HWaddr B0:48:7A:3B:EF:64

inet addr:10.10.15.38 Bcast:10.10.15.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

… …

eth0 Link encap:Ethernet HWaddr B0:48:7A:3B:EF:64

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

… …

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

UP LOOPBACK RUNNING MTU:16436 Metric:1

… …

wlan0 Link encap:Ethernet HWaddr B0:48:7A:3B:EF:64

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

… …

从路由表中也可以看出配置的 IP alias 生效了:

route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 10.10.15.254 0.0.0.0 UG 0 0 0 br-lan

10.10.15.0 0.0.0.0 255.255.255.0 U 0 0 0 br-lan

192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br-lan

这篇文章 may be a bug: alias interface do not show on ifconfig 提到 ip addr

想到 sencondary ip address 使用 ifconfig 是看不到的,安装 opkg install ip 软件包

ip -a

1: lo: LOOPBACK,UP,LOWER_UP mtu 16436 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast master br-lan state UP qlen 1000

link/ether b0:48:7a:3b:ef:64 brd ff:ff:ff:ff:ff:ff

10: br-lan: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc noqueue state UP

link/ether b0:48:7a:3b:ef:64 brd ff:ff:ff:ff:ff:ff

inet 10.10.15.38/24 brd 10.10.15.255 scope global br-lan

inet 192.168.1.12/24 brd 192.168.1.255 scope global br-lan

inet 10.10.15.187/24 brd 10.10.15.255 scope global secondary br-lan

11: wlan0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq master br-lan state UP qlen 32

link/ether b0:48:7a:3b:ef:64 brd ff:ff:ff:ff:ff:ff

果然 openwrt 的 alias 其实是 辅助 ip 地址 (secondary ip address)

而不是 ip 别名 (ip alias) 两者区别可以参考下面这篇文章:

从 ip addr add 和 ifconfig 的区别看 linux 网卡 ip 地址的结构

bridge AP vs 虚化化网桥

从路由器的视角来看 bridged AP 有点类似 linux 中虚拟化的桥接 :

brctl show

bridge name bridge id STP enabled interfaces

br-lan 8000.b0487a3aee72 no eth0

wlan0

linux 宿主机的桥接设备还是需要配置可用的 IP 不然下面的虚拟机网络就没法用了。 对于 wr703n 路由器,只有一个 wan / lan 自适应网口 openwrt 中即使 br-lan 网桥地址设置错误 bridged AP 模式可以正常用,只是无法连接管理地址,登录 openwrt 进行管理而已

看得出来 接入点模式 真的很无视路由器的存在哦 -_-#

如何编译OpenWrt

 Openwrt 官方正式的发行版是已编译好了的映像文件(后缀名bin或trx、trx2),此映像文件可从Openwrt官方网站的下载页面中轻松获取到,连接地址为 OpenWrt官方网站。这些编译好的映像文件是基于默认的配置设置,且只针对受支持的平台或设备的。因此,为什么要打造一个自己的映像文件,理由有以下四点:

您想拥有一个个性化的配置OpenWrt(彰显个性,在朋友圈子里显摆显摆,开个玩笑);

您想在实验性的平台上测试OpenWrt;

您参与测试或参与开发OpenWrt的工作;

或者,最简单的目的就是为了保持自己的Openwrt为最新版本;

 若想实现上述目的,其实很简单,按下述文字即可成功编译出一个您的Openwrt来。

准备工作

在开始编译Openwrt之前需要您做些准备工作;与其他编译过程一样,类似的编译工具和编译环境是必不可少的:

一个构建OpenWrt映像的系统平台,简单说就是准备一个操作系统(比如Ubuntu、Debian等);

确保安装了所需的依赖关系库, (在debian系统中就是安装各种需要的软件包)

OpenWrt源代码副本

首先, 开机登陆到支持编译Openwrt的操作系统(废话了)。实体机或者虚拟机(Vmware 或者 Qemu)里的操作系统都行,这里推荐使用Linux系统。 bsd和mac osx系统也可以编,但不推荐,且未验证是否可编译成功。下文假定您使用的是Debian操作系统,使用 apt-get 来管理包. 替代的选择是 Ubuntu (分支 Kubuntu, Xubuntu 等即可)。

第二步, 就是安装所需要的各种软件包, 包括编译器,解压工具,特定的库等. 这些工作可以简单的通过键入以下命令 (通常需要root 或者是 sudo 权限),以root权限安装下列软件包(可能并不完整,会有提示,提示缺少即装就可以了):

32位(x86)请执行下列命令:

# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \

git libncurses5-dev libz-dev patch unzip zlib1g-dev

64位(x86_64)请执行下列命令(多装了哪些库或软件包呢?请您仔细看一看哦):

# apt-get install build-essential asciidoc binutils bzip2 gawk gettext \

git libncurses5-dev libz-dev patch unzip zlib1g-dev ia32-libs \

lib32gcc1 libc6-dev-i386

参考 本列表中 所列的编译环境所需要软件包或库。

某些依赖的为库或软件包也许操作系统中已经安装过,此时apt-get会作出提示(提示您忽略或重新安装的),别紧张,放轻松些,编译Openwrt不会像编译DD-WRT那样难的(至少本人是体会到了编译DD-WRT的难)。

最后下载一份完整的 Openwrt 源码到编译环境中。关于Openwrt的源代码下载,途径有二,一是通过 svn ,一是通过 git,建议使用 svn ,因为Openwrt主要以 svn 来维护Openwrt系统的版本。另外,请注意Openwrt中不同的分支版本,一个是用得较多的开发快照,俗称 trunk,二是稳定版,俗称 backfire。

安装Subversion

若你想通过svn下载源代码,你需安装 Subversion。Subversion,或称SVN, 是OpenWrt的project中用来控制版本的系统,它非常类似的 CVS的界面和使用条款。 执行下述命令即可安装SVN,很容易的:

# apt-get install subversion

Subversion安装完毕,通过SVN命令可获取得到一份OpenWrt纯净源代码。您还得创建一个目录以便存放获取得到的Openwrt源代码,要获取源代码你还得输入subversion命令来获取 (svn里这种操作称之为'check out') 。命令很简单的,继续看下去就能见到了,别着急,耐心点儿。

编译流程

编译专属于您的设备的特定Openwrt固件以一下五个步骤:

通过Subversion命令获得源代码;

更新(或安装) package feeds[package feeds无法确切翻译,待译吧);

创建一个默认配置以检查编译环境是否搭建好了 (假如需要的话);

用Menuconfig来配置即将编译生成的固件映像文件的配置项;

最后开始编译固件;

下载源代码

最后,下载一份完整的OpenWrt源代码。你可选择:

下载稳定发行版,或

下载开发版 (俗称"trunk"版)。

使用发行版的源码

截止本文时, Openwrt公开发行的稳定版为 OpenWrt 10.03 "backfire"。此版本是最稳定的,但也许不包括最新更新的补丁或最新编写的出的新功能。

下述代码即举例说明了通过svn从brandkfire获得backfire源代码(此版本意思是从trunk分支的补丁也在backfire版本中了,即包含修复补丁):

# mkdir OpenWrt/

# cd OpenWrt/

# svn co svn://svn.openwrt.org/openwrt/branches/backfire

注解: 上述svn命令将在当前目录创建一个 OpenWrt/backfire/ 子目录,此目录包含此命令获取到的源代码。

您也可以通过下述命令,下载不含修复补丁的backfire的原版源码:

# svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03

使用开发版源代码

当前的开发版本分支(trunk)已包含最新的实验补丁。此分支或许还突破了Openwrt原来所不支持的硬件设备的限制哦,惊喜的同时也有风险存在。因此,编译trunk版,慎之~

# mkdir OpenWrt/

# cd OpenWrt/

# svn co svn://svn.openwrt.org/openwrt/trunk/

更多详细资料详见: .

跟进并更新源代码

因Openwrt的源代码随时都会变动,故此命令将确保您所获取得到的源码的最新性。下述假设您用的是backfire版本的源码:

## Here, backfire is the directory name of the current release branch you're tracking

# cd OpenWrt/backfire/

# svn up

'svn up' 命令用于更新SVN上更新了,但本地尚未更新的这部分源代码(本人实践证明此命令会将本地源码与SVN上的源码先比较,若SVN有更新才会下载更新的部分,很实用的一个命令)。如果未指定目标路径,则此命令将更新当前目录及当前目录的子目录内的源码。

Feeds下载

Feeds即为包含到你的OpenWrt环境中的额外软件包的索引之类的。(feed译名很多,莫衷一是,至2008年底为止,还没有一个十分通用而备受认可的中文译名;所以此文当中我们用英文feed来称呼)。 最主要的Feeds有以下三个:

'packages' - 路由的基本功能,

关于openwrt怎么考和玩转openwrt的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

文章版权声明:除非注明,否则均为我爱教程术原创文章,转载或复制请以超链接形式并注明出处。