2022年2022年教程OpenWRT总结,推荐文档 .pdf
教程 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.x rc)版本,也可以选择官方稳定版本attitude_adjustment(12.09),或者是更早的backfire 版本(10.x),另外在 snapshot 目录下还有trunk 版本,选择适合自己的版本就好固件名称的格式:openwrt-generic-Example:openwrt-ar71xx-generic-tl-wr740n-v5-squashfs-factory.binopenwrt-ar71xx-generic-tl-wr740n-v5-jffs2-factory.binopenwrt-ar71xx-generic-tl-wr740n-v5-squashfs-sysupgrade.binopenwrt-ar71xx-generic-tl-wr740n-v5-jffs2-sysupgrade.binFirmware 常见的 3 种扩展名格式TRX,TRX2,BIN名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -还需要注意的是要分清两个文件factory 和 sysupgrade 的区别,factory 固件包含art 部分,是从原厂固件升级到op 用的,可以在路由器原版固件界面直接软升级,亦或是使用TTL方式刷入路由器,sysupgrade 仅包含 firmware 部分,是已经是op 的情况下升级固件用的,除非你对编程器非常了解,否则不推荐使用TTL方式刷入,升级最好的方式就是OpenWRT 自带的 sysupgrade 功能,其次也可以使用mtd 命令当使用原版固件刷固件之后,第一次登录它只有telnet 被启动,只有设置好root 的密码后,我们才可以SSH进行操作注意:原版固件是没有LUCI等等 WEB管理界面的,所以需要文本操作首先我们要telnet 到路由器:(推荐工具:PUTTY)#telnet 192.168.1.1设定 root 密码:#passwd之后输入 root 密码,完成后SSH会自动启动,之后就可以像使用Linux 那样去使用了。2、UCI(Unified Configuration Interface)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防火墙配置文件名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 17 页 -/etc/config/network#网络配置文件/etc/config/system#系统设置文件/etc/config/timeserver#NTP配置文件/etc/config/wireless#无线配置文件配置文件一般格式:package exampleconfig example testoption string some valueoption boolean 1list collection first itemlist collection second itemUCI命令行使用方法:uci argumentscommand:commit#把修改设置写入flash,并且应用(包括uci 及人工修改)show.#查看设置(compressed notation)get#查看某个设置值(compressed notation)changes configset.=add_list.=delete.section.名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -revert.#没有 commit 的设置都可以revertexport config#导出某设置(UCI syntax)import config#导入设置值Example:#uci set dhcp.lan.leasetime=4h#uci set dhcp.lan.leasetime=24h-#uci get dhcp.lan.leasetime24h-#uci show dhcpdhcp.lan=dhcpdhcp.lan.interface=landhcp.lan.start=100dhcp.lan.limit=150dhcp.lan.leasetime=24h-#uci changesdhcp.lan.leasetime=1dhcp.lan.leasetime=24h#uci revert dhcp#uci get dhcp.lan.leasetime名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 17 页 -12h#uci commit系统现在的状态:#uci-P/var/state show network.wanUsage:uci-P add a search path for config change files and use as default顺序问题:某些设置是有次序之分的,比如firewall 的 rule所以设置有另一种格式rule-1#-1 代表最尾rootOpenWrt:#uci add firewall rulerootOpenWrt:#uci set firewall.rule-1.src=wanrootOpenWrt:#uci set firewall.rule-1.target=ACCEPTrootOpenWrt:#uci set firewall.rule-1.proto=tcprootOpenWrt:#uci set firewall.rule-1.dest_port=22rootOpenWrt:#uci commit firewallrootOpenWrt:#/etc/init.d/firewall restart服务的开机启动:/etc/init.d/xxx#xxx为服务名称start 立刻启动服务enable 每次开机自动启动3、SSH连接(Dropbear)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 17 页 -设置文件:/etc/config/dropbear-enable-onBannerFile-/etc/bannerPort-22GatewayPorts-tunnel portInterface-0.0.0.0RootLogin-default:onRootPasswordAuth-default:onSSH From Wan:/etc/config/firewall-#Allow SSHconfig ruleoption src wanoption proto tcpoption dest_port sshoption target ACCEPT4、包管理工具OPKGOPKG可以理解为一个小型的包管理工具,具有一般包管理工具具有的主要功能。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 17 页 -设置文件:/etc/opkg.confsrc/gz snapshots http:/downloads.openwrt.org/snapshots/trunk/ar71xx/packages#下載Packages.gzdest root/dest ram/tmplists_dir ext/var/opkg-lists#/var/opkg-lists/snapshots option overlay_root/overlayarch all 100#package优先次序lock 文件:/usr/lib/opkg/lock命令行用法:opkg options.arguments.update#下载可用的package 文件(/var/opkg-lists/snapshots)install remove flag hold,noprune,user,ok,installed,unpackedconfigure upgrade#(找出pkgs opkg list-upgradable)#不建议在SquashFS partition 上使用名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 17 页 -download#下载某package(并没有下载所要的依赖package)包信息:status pkg|regexpinfo pkg|regexplist pkg|regexp List available packageslist-installed List installed packagesfiles#有什filessearch#這 file 是屬於什packagedestination for any package installation.dest root/dest ram/tmpdest mnt/mntopkg install somepackage-d destination_nameExample:-d ram有用的 options:-cache-nodepsExample:用 winscp 上传所需的package 到/tmp/package#opkg install*.ipk查看依賴性:名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 17 页 -#opkg depends muninlitemuninlite depends on:xinetdTroubleshoot:rm/usr/lib/opkg/lock5、路由器初始化(FIRSTBOOT)以下过程只适用于使用SquashFS 的 openwrt 路由器原因是 squashfs 才有 failsafe modeStep1:把 PC 的 IP地址设置为192.168.1.2(与路由器在同一网段上)Step2:长 ping 192.168.1.1,会看到以下情況#ping-t 192.168.1.1Ping 192.168.1.1:回复自192.168.1.101:目的地主机无法连接。请求超时。回复自192.168.1.1:字节=32 time1ms TTL=64回复自192.168.1.1:字节=32 time1ms TTL=64回复自192.168.1.1:字节=32 time1ms TTL=64请求超时。请求超时。名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 17 页 -请求超时。请求超时。回复自192.168.1.1:字节=32 time1ms TTL=64回复自192.168.1.1:字节=32 time1ms TTL=64回复自192.168.1.1:字节=32 time1ms TTL=64回复自192.168.1.1:字节=32 time1ms TTL=64-Step3:在前段4 次 ping 到的期间按路由器reset 按键,之后会看到路由器的LED 狂闪Step4:当成功ping 到路由器时,就可以telnet 到路由器了此时不需要密码即可登录路由器Step5:由于系统是在Read-only file system,所以要mount_root 它 r/w之后才可以重置密码#passwd刪除一切設定:#mtd-r erase rootfs_data#相当于 firstboot 指令或者#firstboot#all settings will be resetedStep6:#reboot-f#Force reboot(initis not running)名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 17 页 -注意:不在rescuse mode 用 firstboot 是会出问题的,请不要尝试6、系统升级我们可以用官方工具去升級固件:sysupgrade命令行用法:sysupgrade options options:-f restore configuration from.tar.gz(file or url)#整个 overlayfs-n do not save configuration over reflash-v more verbose-c 保留系统设置#根据/lib/upgrade/keep.d来保留base-filesfirewallbase-files-essentialuhttpd自己要保留的设置就放在/etc/sysupgrade.conf检查固件的完整性:#md5sum-c md5sums-c Check sums against list in FILEsmd5sums:86c3f5da10a7f7350391c0fd191cd9b4 名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 17 页 -*openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.binExample:#md5sum-c md5sums.txtopenwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.bin:OK#检查一次image 的完整性再upgrade 会避免很多问题升級:Example:#sysupgrade-v openwrt-ar71xx-generic-tl-wr740n-v3-squashfs-sysupgrade.binSaving config files.etc/sysctl.confetc/shellsetc/rc.localetc/profileetc/passwdetc/inittabetc/hostsetc/groupetc/firewall.useretc/dropbear/dropbear_rsa_host_keyetc/dropbear/dropbear_dss_host_keyetc/config/wirelessetc/config/timeserver名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 17 页 -etc/config/systemetc/config/networketc/config/firewalletc/config/dropbearetc/config/dhcpSwitching to ramdisk.Performing system upgrade.Unlocking firmware.Writing from to firmware.Appending jffs2 data from/tmp/sysupgrade.tgz to firmware.TRX header not foundError fixing up TRX headerUpgrade completedRebooting system.基本上是不会出现什么问题的,有时候刷一些第三方固件时会出现:Invalid image,hardware ID mismatch,hw:07400001 image:07400003.Image check platform_check_image failed.Error:Firmware upgrade is not implemented for this platform.sysupgrade openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-factory.binFirmware upgrade is not implemented for this platform.rootOpenWrt:/tmp#sysupgrade openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.binFirmware upgrade is not implemented for this platform.名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 17 页 -解決:#mtd write openwrt-ar71xx-generic-tl-wr740n-v4-squashfs-sysupgrade.bin firmware注意:使用mtd 命令时要注意固件的写入位置,先使用cat/proc/mtd查看当前路由器的固件分区名,部分路由器可能是linux,视情况选择刷入位置7、mtd(Memory Technology Device)mtd 是一个类似于dd 的工具,命令行用法:mtd option command:erase erase all data on devicewrite|-write (use-for stdin)to device查看 mtd:#cat/proc/mtddev:size erasesize namemtd0:00020000 00010000 u-boot -boot loadermtd1:000e5e00 00010000 kernel -firmwaremtd2:002ea200 00010000 rootfs -firmwaremtd3:00170000 00010000 rootfs_datamtd4:00010000 00010000 artmtd5:003d0000 00010000 firmware配置文件:名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 17 页 -/dev/mtdX备份:#dd if=/dev/mtd0 of=/tmp/boot.backup还原:#mtd-r write/tmp/original_firmware.bin firmware8、LuCI主页:http:/luci.subsignal.org/tracLuCI是 OpenWRT中一个非常常用的WEB端路由器管理页面,可以让OpenWRT 路由器像各大厂商路由器那样使用WEB管理界面管理路由器安裝:#opkg install lucipackages:luci#Meta package,它是一大堆dependsuhttpd,luci-mod-admin-full,luci-theme-openwrt,luci-app-firewall,luci-proto-core,luci-proto-ppp,libiwinfo-lualuci-ssl#httpsluci-theme-openwrtluci-i18n-*luci-app-*luci-app-firewallluci-app-ddns名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 17 页 -luci-app-ahcpluci-app-freifunk-policyroutingluci-app-multiwanluci-app-ntpcluci-app-openvpnluci-app-qosluci-app-statisticsluci-app-sambaluci-app-tinyproxyluci-app-vnstatluci-app-wolluci-app-wshaperluci-proto-ppp-PPPoEluci-proto-pptppptppppkmod-greresolveip启用:#/etc/init.d/uhttpd enable-started at every boot#/etc/init.d/uhttpd startTips:名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 17 页 -Hostnames:tim-pc.lan#要配合domain 使用Unsaved Change:本文出自Server&Coding.,转载时请注明出处及相应链接。0OpenWRT?教程 CentOS6搭建 PPTPVPN整理 OpenWRT 路由器校园网IPv6 大法?发表评论电子邮件地址不会被公开。必填项已用*标注姓名*电子邮件*站点名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 17 页 -