教程OpenWRT总结.docx
《教程OpenWRT总结.docx》由会员分享,可在线阅读,更多相关《教程OpenWRT总结.docx(13页珍藏版)》请在冰豆网上搜索。
教程OpenWRT总结
[教程]OpenWRT总结
OpenWRT可以被描述为一个嵌入式的Linux发行版,(主流路由器固件有dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。
OpenWRT的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序
对于开发人员,OpenWRT是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备
由于OpenWRT是基于Linux的发行版,所以就决定了很多的Linux特性在OpenWRT上的继承性,对于路由器来说,这实在是一个极其优良的特性,意味着路由器使用者可以像使用Linux那样去使用这个固件,虽然使用方式因发行版的差距而存在区别
1、安装
OpenWRT官网:
https:
//openwrt.org/
安装的时候要注意固件的硬件版本一定要和路由器硬件版本一致,否则会出现很多的奇葩情况,甚至直接变砖
固件下载:
http:
//downloads.openwrt.org/
可以下载最新的barrier_breaker(14.xrc)版本,也可以选择官方稳定版本attitude_adjustment(12.09),或者是更早的backfire版本(10.x),另外在snapshot目录下还有trunk版本,选择适合自己的版本就好
固件名称的格式:
openwrt--generic--<硬件版本>-<格式>-<固件用途>
Example:
openwrt-ar71xx-generic-tl-wr740n-v5-squashfs-factory.bin
openwrt-ar71xx-generic-tl-wr740n-v5-jffs2-factory.bin
openwrt-ar71xx-generic-tl-wr740n-v5-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-tl-wr740n-v5-jffs2-sysupgrade.bin
Firmware常见的3种扩展名格式TRX,TRX2,BIN
还需要注意的是要分清两个文件factory和sysupgrade的区别,factory固件包含art部分,是从原厂固件升级到op用的,可以在路由器原版固件界面直接软升级,亦或是使用TTL方式刷入路由器,sysupgrade仅包含firmware部分,是已经是op的情况下升级固件用的,除非你对编程器非常了解,否则不推荐使用TTL方式刷入,升级最好的方式就是OpenWRT自带的sysupgrade功能,其次也可以使用mtd命令
当使用原版固件刷固件之后,第一次登录它只有telnet被启动,只有设置好root的密码后,我们才可以SSH进行操作
注意:
原版固件是没有LUCI等等WEB管理界面的,所以需要文本操作
首先我们要telnet到路由器:
(推荐工具:
PUTTY)
#telnet192.168.1.1
设定root密码:
#passwd
之后输入root密码,完成后SSH会自动启动,之后就可以像使用Linux那样去使用了。
2、UCI(UnifiedConfigurationInterface)
UCI是OpenWRT的系统设置工具,我们可以使用它设置路由器上的一切一切
所需的packages:
uci(/sbin/uci)
libuci(/lib/libuci.so)
所有设置存放在
/etc/config/xxx
常用设置文件:
/etc/config/dhcp#DHCP配置文件
/etc/config/dropbear#SSH配置文件
/etc/config/firewall#OpenWRT防火墙配置文件
/etc/config/network#网络配置文件
/etc/config/system#系统设置文件
/etc/config/timeserver#NTP配置文件
/etc/config/wireless#无线配置文件
配置文件一般格式:
package'example'
config'example''test'
option'string''somevalue'
option'boolean''1'
list'collection''firstitem'
list'collection''seconditem'
UCI命令行使用方法:
uci[arguments]
command:
commit#把修改设置写入flash,并且应用(包括uci及人工修改)
show[[.[.
get#查看某个设置值(compressednotation)
changes[config]
set.
add_list.
delete[.
revert[.[.
export[config]#导出某设置(UCIsyntax)
import[config]#导入设置值
Example:
#ucisetdhcp.lan.leasetime=4h
#ucisetdhcp.lan.leasetime=24h
-------------------------------------
#ucigetdhcp.lan.leasetime
24h
-------------------------------------
#ucishowdhcp
dhcp.lan=dhcp
dhcp.lan.interface=lan
dhcp.lan.start=100
dhcp.lan.limit=150
dhcp.lan.leasetime=24h
------------------------------------
#ucichanges
dhcp.lan.leasetime=1
dhcp.lan.leasetime=24h
#ucirevertdhcp
#ucigetdhcp.lan.leasetime
12h
#ucicommit
系统现在的状态:
#uci-P/var/stateshownetwork.wan
Usage:
uci-Paddasearchpathforconfigchangefilesanduseasdefault
顺序问题:
某些设置是有次序之分的,比如firewall的rule
所以设置有另一种格式
@rule[-1]#[-1]代表最尾
root@OpenWrt:
~#uciaddfirewallrule
root@OpenWrt:
~#ucisetfirewall.@rule[-1].src=wan
root@OpenWrt:
~#ucisetfirewall.@rule[-1].target=ACCEPT
root@OpenWrt:
~#ucisetfirewall.@rule[-1].proto=tcp
root@OpenWrt:
~#ucisetfirewall.@rule[-1].dest_port=22
root@OpenWrt:
~#ucicommitfirewall
root@OpenWrt:
~#/etc/init.d/firewallrestart
服务的开机启动:
/etc/init.d/xxx
start立刻启动服务
enable每次开机自动启动
3、SSH连接(Dropbear)
设置文件:
/etc/config/dropbear
----------------------------------
enable<--on
BannerFile<--/etc/banner
Port<--22
GatewayPorts<---tunnelport
Interface<--0.0.0.0
RootLogin<--default:
on
RootPasswordAuth<--default:
on
SSHFromWan:
/etc/config/firewall
---------------------------------
#AllowSSH
configrule
optionsrcwan
optionprototcp
optiondest_portssh
optiontargetACCEPT
4、包管理工具OPKG
OPKG可以理解为一个小型的包管理工具,具有一般包管理工具具有的主要功能。
设置文件:
/etc/opkg.conf
src/gzsnapshotshttp:
//downloads.openwrt.org/snapshots/trunk/ar71xx/packages#下載Packages.gz
destroot/
destram/tmp
lists_dirext/var/opkg-lists#/var/opkg-lists/snapshots
optionoverlay_root/overlay
archall100
#package优先次序
lock文件:
/usr/lib/opkg/lock
命令行用法:
opkg[options...][arguments...]
update#下载可用的package文件(/var/opkg-lists/snapshots)
install
remove
flag
hold,noprune,user,ok,installed,unpacked
configure
upgrade#(找出pkgsopkglist-upgradable)
#不建议在SquashFSpartition上使用
download#下载某package(并没有下载所要的依赖package)
包信息:
status[pkg|regexp]
info[pkg|regexp]
list[pkg|regexp]Listavailablepackages
list-installedListinstalledpackages
files#有什files
search#這file是屬於什package
destinationforanypackageinstallation.
destroot/
destram/tmp
destmnt/mnt
opkginstallsomepackage-ddestination_name
Example:
-dram
有用的opti