一个小型的无线路由器 Linux 系统OpenWRT分类:电脑技术 » linux应用    出处:网络   OpenWRT - (http://www.openwrt.org)

开发板: 十几种市面上很容易买到的无线路由器,价钱500元左右, 请看硬件列表: (http://wiki.openwrt.org/TableOfHardware)

我使用的是 Linksys WRT54G:

CPU: MIPS 200MHZ

内存: 16M

ROM: 4M

网络接口: 4个LAN, 1个WAN, 1个Wireless Lan

已加接SD Card, 双串口和JTAG

详细请看这里: (http://www.eosp.org/?page_id=20)

在开发前可先安装使用jffs2(可读写)文件系统的Firmware, 了解系统架构, 安装软件, 内建HTTP, DHCP, DNS, SSH, Telnet, PPPOE, PPTP等, 有WEB界面,

另外可加装软件有7百多个选择, 包括Samba, mysql, Open×××, Asterisk,

软件列表:

http://tracker.openwrt.org/packages/

到熟悉后使用Buildroot 做交叉编译等工作, 自后打包软件, 制作自己的Firmware, 进入嵌入式Linux 的世界.

学习后还可以继续充当家里无线路由器的角色, 或你改装后的小型Linux服务器!!!

这是安装 OpenWRT 的步驟注: 转贴时请保持文章的完整性.

在安装 OpenWrt 之前,首先你要知道你所使用的无线路由器 OpenWrt 是否支持,在 OpenWrt 的网页上提供了一个路由器列表,地址是:

http://wiki.openwrt.org/TableOfHardware 。

当 中最多人使用的是 Linksys WRT54G/GS 和 ASUS WL-500G,相关的文档也较多,Linksys在前面已经介绍过,我在这里不再重复了,其次是 ASUS WL-500G,原因是它在市面容易找到,而且支持 USB,即使价钱比一般的无线路由器贵1百多元,也相当值得,有了USB,你可以接上一个掫像头,移动盘,硬盘和打印机等设备。接下来我会说明 OpenWrt 在 WRT54G上的安装过程。

首先,到 OpenWrt 下载 Firmware,地址是:

http://downloads.openwrt.org/whiterussian/rc4/bin/

OpenWrt 提供很多版本的 Firmware下载,例如 openwrt-brcm-2.4-jffs2-4MB.trx,其中brcm是通用版本,如果你ASUS的路由器就属于这类;2.4是所使用的 Kernel版本;jffs2是文件系统,文件系统有2种,jffs2是可读写的,没有压缩,文件较大,squashfs是只读的,由于是压缩文件系统, 这意味着在相同大小的 Flash Rom 你可以安装更多软件;4MB是 Flash Rom 大小,这根据你使用的路由器版本而定,请参考刚才的路由器列表。下面是现时 OpenWrt提供的 Firmware:

[ ] openwrt-brcm-2.4-jffs2-4MB.trx 14-Sep-2005 19:21 2.1M

[ ] openwrt-brcm-2.4-jffs2-8MB.trx 14-Sep-2005 19:21 2.1M

[ ] openwrt-brcm-2.4-squashfs.trx 14-Sep-2005 19:21 1.5M

[ ] openwrt-motorola-jffs2-4MB.bin 14-Sep-2005 19:21 2.1M

[ ] openwrt-motorola-jffs2-8MB.bin 14-Sep-2005 19:21 2.1M

[ ] openwrt-motorola-squashfs.bin 14-Sep-2005 19:21 1.5M

[ ] openwrt-wrt54g-jffs2.bin 14-Sep-2005 19:21 2.1M

[ ] openwrt-wrt54g-squashfs.bin 14-Sep-2005 19:21 1.5M

[ ] openwrt-wrt54gs-jffs2.bin 14-Sep-2005 19:21 2.1M

[ ] openwrt-wrt54gs-squashfs.bin 14-Sep-2005 19:21 1.5M

[ ] openwrt-wrt54gs_v4-jffs2.bin 14-Sep-2005 19:21 2.1M

[ ] openwrt-wrt54gs_v4-squashfs.bin 14-Sep-2005 19:21 1.5M

我 用的是WRT54G v2.2版,所以我下载了 openwrt-wrt54gs-jffs2.bin,有了这文件后,我可以开始设定我的路由器了。WRT54G 默认的 IP 是 192.168.1.1,在接上你的电脑之前,你要更改你电脑的网络设定,把你电脑改为固定IP,IP是192.168.1.xxx,掩码是 255.255.255.0。然后用网络线把你的电脑和 WRT54G 其中一个 LAN 接口连起来,这时候你可以在 DOS PROMPT 中输入 “ping 192.168.1.1” 这命令,如果有回应的话就证明连线没有问题,如果出现 “Request Time Out” ,请检查一下你的防火墙和网线有没有问题(不要忘了为WRT54G接上电源)。

安装 OpenWrt 有几种方法,在不拆开路由器的情况下,最简单的方法是利用TFTP 软件,把整个 OpenWrt Firmware 更新到 WRT54G 的 Flash Rom里,

现 在请打开你的浏览器,在网址一栏输入“http://192.168.1.1”,这时候应该会出现一个登入画面,用户和密码都是“admin”,如果你的 路由器是新买回来的话,请先把WAN设定好,你可以随便给一个固定IP,但不要设定DHCP,因为如果WAN接口没有连线而且没有IP的话,接下来我们的 PING工具将无法使用,我们会利用“PING”工具的一个小BUG,更改[/url] WRT54G 的 BOOTWAIT 设定,让我们可以把 Firmware上传到TFTP服务器。操作如下:

1. 打开 ping工具,“administration” --> “diagnostics” --> “Ping”,又或者在网址一栏输入 “192.168.1.1/ping.asp”

2. 在 “IP Address”一栏中,顺序输入下面4行指令,每输入一行就按一下“PING”按钮:

;cp${IFS}*/*/nvram${IFS}/tmp/n

;*/n${IFS}set${IFS}boot_wait=on

;*/n${IFS}commit

;*/n${IFS}show>tmp/ping.log

当最后一行输入后,你会看到一堆文字,如果你看到其中一行是“boot_wait=on”的话,你可以继续下一步了。

3. 把你的 WRT54G 电源拔出来,然后准备好刚才的 Firmware,在Windows的DOS PROMPT,输入这条命令,但不要按 “ENTER”:

tftp -i 192.168.1.1 PUT C:\openwrt-wrt54gs-jffs2.bin

*这里,我把openwrt-wrt54gs-jffs2.bin放在 C:\ ,如果你放在别的位置,请按你的情况更改

4. 一边接上 WRT54G 的电源,同时另一边按 “ENTER” ,如果成功的话,你会看见 WRT54G上 的 DMZ 灯不停闪动,而且画面会出现类似下面的讯息:

Transfer successful: 1537024 bytes in 6 seconds, 256170 bytes/s

5. 等待 2-3 分钟后,DMZ 灯会停止闪动,这时执行 “telnet 192.168.1.1”,如果出现 OpenWrt 的欢迎画面,代表你安装成功了。

Trying 192.168.1.1...

Connected to 192.168.1.1.

Escape character is '^]'.

BusyBox v1.00 (2004.12.24-03:19+0000) Built-in shell (ash)

Enter 'help' for a list of built-in commands.

_______ ________ __

| |.-----.-----.-----.| | | |.----.| |_

| - || _ | -__| || | | || _|| _|

|_______|| __|_____|__|__||________||__| |____|

|__| W I R E L E S S F R E E D O M

root@OpenWrt:/#

NVRAM 全名是 Non-Volatile Ram ,在 OpenWrt 里是用了 Flash Rom 最后的 64K 区块,用来储存一些环境参数,OpenWrt 通过这些参数来配置网络,DHCP,DNS和记载硬件版本等。

常用的 nvram 指令有以下 4 种:

1. nvram show

列出 NVRAM 内所有参数,我们亦可以用 grep 命令来抽取部份资讯,例如

nvram show | grep lan_

这命令列出了所以用 lan_ 开头的参数,结果如下:

lan_gateway=192.168.1.254

dr_lan_rx=0

lan_netmask=255.255.255.0

lan_lease=86400

lan_stp=1

lan_hwaddr=00:12:17:E1:56:F5

lan_dns=211.152.179.7 202.96.128.86

lan_ifnames=vlan0 eth1

size: 12567 bytes (20201 left)

lan_ipaddr=192.168.1.1

lan_proto=static

lan_ifname=br0

lan_wins=

lan_hwnames=

2. nvram set 参数=数值

用来添加或修改一些参数,例如我想把 LAN 的 IP 由 192.168.1.1 改为 192.168.1.2,可执行:

nvram set lan_ipaddr=192.168.1.2

nvram commit

reboot

第 1 行是修改 IP 地址,第 2 行是保存,第 3 行是重新启动 OpenWrt ,因为更改 IP 地址后要重启才能生效。

3. nvram unset 参数

用来删除一些参数,不过这个功能很少用到,因为 NVRAM 的 64K 容量足够保存大量参数,大部份人都赖得去删。

例如我想删除 “dr_lan_rx=0” 这个参数,请执行:

nvram unset dr_lan_rx

4. nvram commit

当你对 NVRAM 做了一大堆修改后,你需要把这些修改保存起来,否则你的路由器 RESET 后,这些修改便没有了,和上面一样,这时你要执行:

nvram commit

1. WRT54G 的网络概况

下面是 WRT54G 的内部结构示意图:

WRT54G由包括LAN,WAN,WIFI 等 3 部份组成,相等于图中的vlan0,vlan1,eth0。

http://www.eosp.org/wp-content/photo...chitecture.png

当你安装好 OpenWrt 后,NVRAM 里的默认配置是这样的:

lan_ifname=br0

lan_ifnames=”vlan0 eth1”

lan_proto=static

lan_ipaddr=192.168.1.1

lan_netmask=255.255.255.0

wan_ifname=vlan1

wan_proto=dhcp

第 1 项 lan_ifname=br0 是指 LAN 的网络介面名称;

第 2 项 lan_ifnames=”vlan0 eth1” 是指实际上 LAN 的真正网络介面,这里包括 vlan0(Port 1-4) 和 eth1 (无线网卡接口) ;

第 3 项 lan_proto=static 是指 LAN 用固定 IP 方式;

第 4 项 lan_ipaddr=192.168.1.1 指定了 LAN 的 IP 是 192.168.1.1;

第 5 项 lan_netmask=255.255.255.0 指定了 LAN 的子网络掩码;

第 6 项 wan_ifname=vlan1 指定了 WAN 的网络为 vlan1 (Port 0);

第 7 项 wan_proto=dhcp 指定了 WAN 的网络方式为 DHCP;

2. 配置 Lan 网络参数

假设我想修改路由器的 TCP/IP 设定为:

IP: 192.168.0.1

掩码: 255.255.255.0

网关: 192.168.0.254

DNS1: 192.168.0.254

DNS2: 202.14.67.4

并打开 DHCP 服务,IP 范围由 192.168.0.100 至 192.168.0.150;可以执行以下命令:

nvram set lan_proto=static

nvram set lan_ipaddr=192.168.0.1

nvram set lan_netmask=255.255.255.0

nvram set lan_gateway=192.168.0.254

nvram set lan_dns=’192.168.0.254 202.14.67.4’

nvram set dhcp_start=100

nvram set dhcp_num=50

nvram commit

reboot

第 1 项 nvram set lan_proto=static 是指 LAN 的网络方式为固定 IP

第 2 项 nvram set lan_ipaddr=192.168.0.1 是指定 LAN 的 IP 地址为 192.168.0.1

第 3 项 nvram set lan_netmask=255.255.255.0 是指定 LAN 的子网络掩码为 255.255.255.0

第 4 项 nvram set lan_gateway=192.168.0.254 是指定 LAN 的网关为 192.168.0.254

第 5 项 nvram set lan_dns=’192.168.0.254 202.14.67.4’ 是指定 LAN 使的 DNS 服务器,由于DNS服务器有 2 个,所以用空格来分开。

第 6 项 nvram set dhcp_start=100 是指 DHCP 服务器从 192.168.0.100 开始派发 IP

第 7 项 nvram set dhcp_num=50 是指 DHCP 从 192.168.0.100 开始 派发到 192.168.0.150 (100+50) 为止。

3. 设定WAN

一般常见的上网方式有3种: DHCP, PPPOE 拨号上网 及 STATIC IP(固定 IP)

2.1 DHCP

DHCP很简单,你只需告诉路由器用DHCP来上网,它便会替你自动取得IP,网络掩码,网关,DNS等资料

nvram set wan_proto=dhcp

nvram commit

reboot

2.2 固定 IP

很多商用宽带都是使用固定 IP,ISP 会提供 IP 地址(第2项),子网络掩码(第3项),网关(第4项)及DNS(第5项)资料,DNS如果超过一个的话用空格分开。

nvram set wan_proto=static

nvram set wan_ipaddr=218.103.124.24

nvram set wan_netmask=255.255.255.252

nvram set wan_gateway=218.103.124.23

nvram set wan_dns=’210.80.60.1 210.80.60.2’

nvram commit

reboot

2.3 PPPOE

PPPOE 在家用宽带是很常见的,ISP会提供 用户名及密码,你只需把下面第5和第6项换成相应的用户名及密码就可以用PPPOE上网了。

nvram set wan_ifname=ppp0

nvram set wan_proto=pppoe

nvram set ppp_mtu=1492

nvram set pppoe_ifname=vlan1

nvram set ppp_username=your_isp_login

nvram set ppp_passwd=your_isp_password

nvram commit

reboot

第 1 项 nvram set wan_ifname=ppp0 是指 WAN 使用 ppp0 网络介面来拨号上网

第 2 项 nvram set wan_proto=pppoe 是指 WAN 使用 PPPOE 的方式上网

第 3 项 nvram set ppp_mtu=1492 指定 MTU 为 1492

第 4 项 nvram set pppoe_ifname=vlan1 指 PPPOE 拨号的介面是 vlan1

第 5 项 nvram set ppp_username=your_isp_login 指定PPPOE 的用户名是 your_isp_login

第 6 项 nvram set ppp_passwd=your_isp_password 指定了 PPPOE 的密码是 your_isp_password

4. 配置无线网络

nvram set wl0_gmode=

nvram set wl0_ssid=

nvram set wl0_channel=

nvram set wl0_closed=

nvram commit

wifi up

关闭 WEP 和 WPA

nvram set wl0_wep=disabled

nvram set wl0_akm=open

开启WEP

nvram set wl0_wep=

nvram set wl0_wep_bit=

nvram set wl0_key=

nvram set wl0_key1=

nvram set wl0_key2=

nvram set wl0_key3=

nvram set wl0_key4=

nvram set security_mode_last=wep

nvram commit

ifdown wifi

ifup wifi

WPA

nvram unset wl0_auth_mode

nvram set wl0_akm=psk

nvram set wl0_crypto=

nvram set wl0_wpa_psk=

nvram set wl0_radius_key=

nvram set wl0_radius_ipaddr=

nvram set wl0_radius_port=

nvram set security_mode_last=wpa

nvram commit

无线网络 – MAC Filter

nvram set wl0_macmode=allow

nvram set wl0_mac_list=

nvram set wl0_mac_deny=

nvram commit

wifi up

5. 加强 OpenWrt 的安全性

我认为没有密码和使用 Telnet 是不安全的,OpenWrt 在设定密码后会把 Telnet 关闭,改用 SSH 服务

passwd

ipkg 是 OpenWrt 内的一个软件安装管理工具,在 OpenWrt 内输入

root@Linksys:~# ipkg

你会得到 ipkg 的说明和帮助,接下来我会说明 ipkg 常用的几个命令:

1. ipkg update

ipkg 会到 http://downloads.openwrt.org/whiterussian/packages/ 下载并更新最新的软件包列表(这个列表的位置在/etc/ipkg.conf指定):

root@Linksys:~# ipkg update

Downloading http://downloads.openwrt.org/whiteru...kages/Packages

Updated list of available packages in /usr/lib/ipkg/lists/whiterussian

Downloading http://downloads.openwrt.org/whiteru...-free/Packages

Updated list of available packages in /usr/lib/ipkg/lists/non-free

Successfully terminated.

2. ipkg list

在更新之后,我们可以用 ipkg list 这命令查看一下有什么软件包可供安装,这里我会列出部份结果:

root@Linksys:~# ipkg list

aiccu – 2005.01.31-1 – SixXS Automatic IPv6 Connectivity Client Utility

arptables – 0.0.3-1 – ARP firewalling software

arpwatch – 2.1a11-1 – Ethernet monitor program for keeping track of ethernet/ip address pairings

asterisk – 1.0.7-1 – An open source PBX

...

3. ipkg install

安装软件包,有 2 种方法,例如我想安装 OpenSSH 的 SFTP 服务器(注 1),方便我以后上传文件到 OpenWrt,我可以执行 ipkg list 或到 OpenWrt 的软件包网址取得软件 SFTP 服务器的资料:

Package: openssh-sftp-server

Version: 4.0p1-1

Depends: zlib, libopenssl

Section: net

Architecture: mipsel

Maintainer:

MD5Sum: 145c72f82f2404b991a96bf5f3ef2262

Size: 14086

Filename: openssh-sftp-server_4.0p1-1_mipsel.ipk

Source: buildroot internal

Description: OpenSSH SFTP server

之后我可以选择第 1 个方法用软件包名来安装,这方法会自动把软件包下载并安装:

ipkg install openssh-sftp-server

或者选择第 2 个方法从网站把安装包下载到路由器上,然后输入文件名安装:

ipkg install openssh-sftp-server_4.0p1-1_mipsel.ipk

4. ipkg list_installed

这个命令会列出 OpenWrt 预先为你安装好的软件 (包括一些常用软件和驱动) 以及你后来安装的软件。

5. ipkg remove

当你的空间不足时,这个命令非常有用,你先执行 ipkg list_installed 得出己安装的软件列表,然后找出你要删除的软件包名称,例如:

ipkg remove openssh-sftp-server

注意事项:

由于 WRG54G 的空间有限,安装软件时要留意软件的大小和剩余的空间,我们可以用 df -h 命令得知 Flash Rom 和 虚拟内存的使用量:

root@Linksys:~# df -h

Filesystem Size Used Available Use% Mounted on

/dev/root 3.2M 2.8M 372.0k 89% /

none 7.0M 6.5M 540.0k 92% /tmp

/dev/mmc/disc0/part1 14.2M 7.5M 6.6M 53% /sd

结果显示我的 WRT54G 只剩下 372k 的空间,虚拟内存也只剩下 540k,因为我为我的WRT54G 加装了一张 16MB 的 SD Card,所以你会看到有一项设备 /dev/mmc/disc0/part1 剩余 6.6M 空间。

注 1: 安装了 openssh-sftp-server,你会发现 sftp 服务器并不能正常使用,为什么呢?!这时你要输入这个命令:

ln -s /usr/libexec /usr/lib

路由器 刷 linux系统版本,一个小型的无线路由器 Linux 系统OpenWRT[转]相关推荐

  1. linux系统组成之小型RedHat little linux制作二

    本篇是在上篇"linux系统组成之小型RedHat little linux制作一"的基础上对微型小系统进一步完善,使其实现关机.重启等功能 ⑴.通过脚本使其微型系统实现关机.重启 ...

  2. GPT模型介绍并且使用pytorch实现一个小型GPT中文闲聊系统

    文章目录 GPT模型介绍 无监督训练方式 模型结构 微调 下游任务输入形式 GPT-2 GPT-3 pytorch实现一个小型GPT中文闲聊系统 GPT模型介绍 GPT与BERT一样也是一种预训练模型 ...

  3. linux旧版本如何升级成新版本,Linux如何升级软件版本,

    Linux如何升级软件版本, 简介 在使用Linux的时候,安装软件一般有几种:系统包管理器安装.源码编译.二进制包,还有现在桌面系统用比较多的Snap.AppImage.Flatpak等. 升级 由 ...

  4. 在linux中建立一个vim的目录,Linux学习笔记一(目录结构、Vim编辑器、用户管理)...

    1.Linux介绍 linux是一个开源.免费的操做系统,其稳定性.安全性.处理多并发已经获得 业界的承认,目前不少企业级的项目都会部署到Linux/unix系统上. Linux主要的发行版: Ubu ...

  5. linux lts版本的区别,什么是Linux 发行版的 LTS 版本?

    描述 在 Linux 的世界里,特别是谈到 Ubuntu 的时候,你会遇到 LTS( 长期支持(Long Term Support))这个词. 如果你是一个经验丰富的 Linux 用户,你可能知道 L ...

  6. 在linux上面找一个脚本,30个Linux Shell脚本经典案例

    在学习Linux运维时,普遍反馈是:Linux Shell是一个很难的知识板块.虽然大家都认真学,基本的语法也都掌握了,但有需求时,很难直接上手编程,要么写了很久,要么写不好! 也有很多做运维很多年的 ...

  7. linux红帽子版本安装报告,红帽子RedHat Linux 9.0安装图解(图c

    因/dev/hda6是用来做交换分区,所以挂载点一栏不用选,只选"将分区格式化成swap", 然后点击"确定"即可.显示如下图17 在图中可见到/dev/hda ...

  8. php一个简单的投票系统_一个简单的PHP投票系统

    一个简单的PHP投票系统 分享到: 作者:转接卡 建立2个表,一个用来显示当前主题,一个存放历史结果. 当前主题表结构:选项(包括主题),票数 历史结果表结构:id,主题名,关点,投票开始时间,投票结 ...

  9. 设计一个小型的物联网应用系统_物联网应用设计需注意的连接器要求

    物联网(IoT)专家认为,只有基于无线通信系统的改变星球般的技术才能发IoT的全部潜力.尽管肯定有大量的IoT节点将由电池供电并以无线方式连接,但是仍然有很大一部分IoT系统将从通过电缆连接的传感器的 ...

最新文章

  1. 同一账户同时只能在一处登陆(单点登陆)
  2. python调用adb传输电脑文件到手机_使用adb在电脑和手机间传文件
  3. Coursera课程Python for everyone:chapter8
  4. 前端月趋势榜:9 月最新上榜的、热门的 10 个前端开源项目 - 2109
  5. 将IDEA工程代码提交到Github
  6. Java wait notify
  7. 湖北省仙桃市2021年高考成绩查询,2021年4月湖北仙桃市自考成绩查询时间和有效期是多久?...
  8. Android7.0 发生的android.os.FileUriExposedException错误
  9. 下载地址jquery upload file demo (C#)
  10. 磁盘格式化(mkfs命令)、磁盘挂载(mount)、手动添加swap
  11. 【C++笔记】函数(笔记)
  12. 2.权限管理准备工作:你应该知道的ASP.NET网站最基本的安全措施!
  13. Package php5 have no installation candidate解决方案
  14. C# Winform设置焦点
  15. vue添加axios及页面的导航、搜索、分页
  16. DCS概念简述——以教学用ABB HT 600控制系统/WinCS为例
  17. 通过u盘启动计算机使用ghost安装系统步骤,简单教程:如何使用u boot u盘安装ghost系统[教程]...
  18. iSee图片专家 V3.8.7.3 圣诞贺岁版
  19. vite 配置修改 antd 主题色
  20. 3388=24及24点游戏的穷举算法

热门文章

  1. 互联网月饼大赏,你最喜欢哪家的?
  2. Tomcat启动内存设置
  3. 【TypeScript】带类型语法的JavaScript
  4. 本地JSON格式化工具下载
  5. T88 excel 行高列宽单位
  6. 基于1939协议的发动机控制程序:包括发动机转速油门控制,发动机常用转速、机油压力、水温、工作小时读取,spn故障码取,发动机启动转速保护
  7. 国庆假期欣赏机械之美
  8. 神经网络优化算法总结
  9. iCloud 照片无法同步的解决方法
  10. 自己动手写编译器:中间代码生成1