OpenWrt常用命令大全
作为软路由系统的折腾党就要会使用 OpenWrt 的命令,比如有些小白经常把 mips、aarch64、X86 的插件胡乱瞎装,不会区分架构,这时就要用到查看 CPU 架构的命令了,下面就是 OpenWrt 查询维护命令,主要是硬件、系统、磁盘、安装等相关常用命令。
硬件相关
1 | cat /proc/cpuinfo |
系统相关
1 | uname -a |
安装管理
1 | opkg update |
磁盘管理
1 | fsisk -l |
无线相关
1 | iwinfo wlan0 info |
其他命令
1 | passwd |
opkg软件包管理
opkg软件包管理「建议收藏」opkg工具(一个ipkg变种)是一个用来从本地软件仓库或互联网软件仓库上下载并安装OpenWrt软件包的轻量型软件包管理器。GNU/Linux用户可能会对apt-get,aptitude,pacman,yum等比较熟悉,也会看出其相似之处。它与NSLU2上同样用于嵌入式设备的Optware也有相似之处。OPKG没有仅仅将软件安装到一个单独的路径(如:/opt),而…
大家好,又见面了,我是你们的朋友全栈君。
opkg 工具 (一个 ipkg 变种) 是一个用来从本地软件仓库或互联网软件仓库上下载并安装 OpenWrt 软件包的轻量型软件包管理器。
GNU/Linux 用户可能会对 apt-get,aptitude,pacman,yum 等比较熟悉,也会看出其相似之处。它与 NSLU2 上同样用于嵌入式设备的 Optware 也有相似之处。OPKG 没有仅仅将软件安装到一个单独的路径(如:/opt),而是根文件系统上的一个完整的包管理器。它也包含了增加内核模块与驱动的可能性。OPKG 有时被称为 Entware ,但这主要是针对为嵌入式设备准备的 Entware 仓库。
调用
opkg必须有一个子命令参数:
usage: opkg [options…] sub-command [arguments…]
其中的子命令可以是以下:
软件包管理
sub-command | description |
---|---|
update | 更新可用软件包列表 |
upgrade |
升级软件包 要升级一组软件包,运行 opkg upgrade 软件包名1 软件包名2 即可。 命令 opkg list-upgradable 可以获取一个可升级软件包的列表。 |
install <pkgs | FQDN> | 安装一个或多个软件包 eg: opkg install hiawatha opkg install http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/hiawatha_7.7-2_ar71xx.ipk opkg install /tmp/hiawatha_7.7-2_ar71xx.ipk |
configure |
配置一个或者多个未安装的包 |
remove <pkgs | globp> | 移除一个或多个软件包 |
flag |
标记一个或多个软件包 每次调用仅允许一个标记。 可用标记有: hold • noprune • user • ok • installed • unpacked |
信息命令
sub-command | description |
---|---|
list [pkg | globp] | 列出可用软件包 Package name – Version – Description |
list-installed | 列出已安装软件包 |
list-upgradable | 列出可升级的已安装软件包 |
list-changed-conffiles | 列出用户修改过的配置文件 |
files |
列出属于软件包 的文件 仅适用于已安装的软件包 |
search <file | globp> | 列出包含 |
info [pkg | globp] | 显示软件包 |
status [pkg | globp] | 显示软件包 |
download |
下载软件包 |
配置
调整仓库
opkg唯一的配置文件是 /etc/opkg.conf ,它看起来是这样:
1 | src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages |
本地仓库
可以配置opkg 从本地获取软件包:
1 | src/gz local file:///path/to/packagesDirectory |
Barrier_breaker 使用多个仓库,每个参考需要个唯一的标识符。逻辑上使用仓库原始的名称。如:
1 | ... |
挂载点
opkg 有个不为那些 apt 系工具使用者熟悉的有用特性,它可以为任一软件包指定安装目的位置。
默认的 opkg.conf 包含三个目的位置:
1 | dest root / |
目的位置行的格式很简单,关键字 dest 跟着目的位置名称(可以随便起),然后就是文件系统位置。任一如上配置好的目的位置都可以在 opkg 命令行中使用,如:
1 | opkg install somepackage -d destination_name |
dest 参数必须为 /etc/opkg.conf 中定义的目的位置名。如:-d ram 会将软件包安装到 /tmp/ 下。
基础:学会用ssh登录路由器用linux命令查看。
ps 命令查看当前系统运行的进程信息
free 命令查看内存使用和swap挂载情况
ls 查看目录和文件
cd 进入退出目录
vi 查看编辑配置文件
安装命令:
opkg update
opkg install nano
uci set network.lan.ipaddr=[lan ip]
使用pppoe设置
Shell代码
uci set network.wan.proto=pppoe //设置wan口类型为pppoe
uci set network.wan.username=[上网帐户]
uci set network.wan.password=[上网密码] //这两行设置pppoe用户名和密码
如果要挂在上级路由下面,就需要进行下面的设置
Shell代码
uci set network.wan.proto=none //关掉wan
uci set network.lan.gateway=[上级路由ip] //网关指向上级路由
uci set network.lan.dns=[上级路由ip] //dns指向上级路由
uci set dhcp.lan.ignore=1 //关掉lan的dhcp
最后对无线网络进行配置
Shell代码
uci set wireless.@wifi-device[0].disabled=0 //打开无线
uci set wireless.@wifi-device[0].txpower=17 //设置功率为17dbm 太高会烧无线模块
uci set wireless.@wifi-device[0].channel=6 //设置无线信道为6
uci set wireless.@wifi-iface[0].mode=ap //设置无线模式为ap
uci set wireless.@wifi-iface[0].ssid=[自己设置SSID] //设置无线SSID
uci set wireless.@wifi-iface[0].network=lan //无线链接到lan上
uci set wireless.@wifi-iface[0].encryption=psk2 //设置加密为WPA2-PSK
uci set wireless.@wifi-iface[0].key=[密码] //设置无线密码
提交应用配置
Shell代码
uci commit //应用
/etc/init.d/network restart //重启网络服务
安装luci管理界面
Shell代码
opkg update // 更新软件列表
opkg list-installed // 查看已安装软件
opkg install luci // 安装LUCI
opkg install luci-i18n-chinese // 支持中文
luci-app-firewall - 0.10.0-1
luci-i18n-english - 0.10.0-1
luci-lib-core - 0.10.0-1
luci-lib-ipkg - 0.10.0-1
luci-lib-lmo - 0.10.0-1
luci-lib-nixio - 0.10.0-1
luci-lib-sys - 0.10.0-1
luci-lib-web - 0.10.0-1
luci-mod-admin-core - 0.10.0-1
luci-mod-admin-full - 0.10.0-1
luci-proto-core - 0.10.0-1
luci-proto-ppp - 0.10.0-1
luci-sgi-cgi - 0.10.0-1
luci-theme-base - 0.10.0-1
luci-theme-openwrt - 0.10.0-1
即可完成LUCI的安装。
输入以下命令开启支持web服务的uhttpd,并设置其为自启动:
Shell代码
/etc/init.d/uhttpd enable # 开机自启动
/etc/init.d/uhttpd start # 启动uhttpd
- Wifidog
你可以尝试执行以下命令安装Wifidog:
opkg update # Optional
opkg install wifidog
–sftp安装
opkg update
opkg install vsftpd openssh-sftp-server
/etc/init.d/vsftpd enable
/etc/init.d/vsftpd start
端口转发命令:
通过修改vi /etc/config/firewall 这个文件来实现开放自己需要的端口到外网。
config rule ‘httpdwan’
option src ‘wan’
option dest_port ‘8088’
option proto ‘tcp’
option target ‘ACCEPT’
option name ‘’’’httpd wan accept tcp port 8088’’’’
保存后,执行 /etc/init.d/firewall restart 重启防火墙。
openwrt 应用后台运行、开机自启动
后台运行
实际上要一个应用后台运行,在输入命令的时候加上 “&” 符号就可以了,向下面
1 | helloworld & |
开启自启动
开机自启动这好像还是挺多方法的,一个是在 /etc/init.d目录编写文件,一个是在网页上的开机运行脚本上加上上面后台运行的命令。
编写自启动脚本
在 openwrt 开发板命令行中输入
1 | vi /etc/init.d/mystart |
里面输入如下内容:
1 |
|
命令应该很好理解,前面 START 和 STOP 是启动和关闭的优先级。
下面是另一种自启动脚本的写法,应该是差不多,注释写的也挺清楚了
1 |
|
编写完文件后还应该记得改一下权限,让脚本能够执行
1 | cd /etc |
使用的时候按下面输入命令就可以,和普通服务类似
1 | /etc/init.d/mystart enable #激活开机启动 |
在网页上配置自启动
由于这项目是上一家公司的时候开发的了,都快一年了,源码都在之前公司的笔记本电脑里面,自己电脑没源码,就简单讲讲。
先要打开 openwrt 的网页控制界面,里面找到自启动功能,在里面的文本行中加入下面命令
1 | helloword & |
实际上使用起来,好像在网页上配置的自启动还好一些,用配置文件写的但是还总出错,当时是对4G上网模块有影响,具体记不清了。当时分析出错的原因是,用配置文件写的命令在软件被停止后会尝试重新启动,当然如果你没遇到这些问题,两种方法都是可以的。
自启动进阶
网上的博客一般到这里就完了,可是我当时不想做差不多先生,我将自启动脚本写到我们的源码文件中去,在安装的时候就给自动弄好,简单省事,下面看看写法。
- 先编写配置文件
这里再源码目录总编写我们的自启动脚本文件,以上一篇的 helloword 为例
1 | mkdir ~/openwrt/package/hellworld/auto |
这里新起了一个目录来存放我们的配置文件,内容和上面一样,不说了。
接下来的重点是编写外层的 Makefile 文件,在复制那一段将我们的配置文件复制到 /etc/init.d/ 目录中去
1 | define Package/helloword /install |
注意这里的 $(INSTALL_BIN),复制的是二进制文件,权限问题我忘了,如果启动不了,也还是按上面的方法增加运行权限吧。