路由器

当前位置:首页>IT运维>路由器
全部 17 路由器 17

OpenWrt 常用命令大全

时间:2025-03-24   访问量:1059


作为软路由系统的折腾党就要会使用 OpenWrt 的命令,比如有些小白经常把 mips、aarch64、X86 的插件胡乱瞎装,不会区分架构,这时就要用到查看 CPU 架构的命令了,下面就是 OpenWrt 查询维护命令,主要是硬件、系统、磁盘、安装等相关常用命令。

硬件相关

cat /proc/cpuinfo
# 查看CPU信息

uname -m
# 查看CPU架构

cat /proc/meminfo
# 查看内存使用情况

df -h
# 查看磁盘的使用率

系统相关

uname -a
# 查看内核信息

opkg print-architecture
# 可接受的架构

dmesg
# 读取内核的日志

logread
# 读取系统日志

ps -w
# 列出进程

uptime
# 显示运行时间、CPU负载

vi etc/config/network
# 修改后台地址或绑定网口

/etc/init.d/uhttpd restart 
# Luci 重启命令

/etc/init.d/uhttpd enable 
# 开机自启动  

/etc/init.d/uhttpd start 
# 启动uhttpd  

/etc/init.d/firewall restart
# 重启防火墙

/etc/init.d/network restart
# 重启网络服务  

reboot
# 重启设备

安装管理

opkg update
# 更新软件包列表

opkg install ***
# 安装软件包

opkg remove ***
# 卸载软件包

opkg install *.ipk
# 批量安装软件包

opkg [install/remove] [包名] --force-depends
# 强制安装和卸载

opkg list |grep ***
# 查找软件包

opkg list-installed
# 列出所有安装的包

opkg info ***
# 查看包的信息

opkg files ***
# 查看包的文件

rm -f /var/lock/opkg.lock
# 清理opkg update缓存文件

磁盘管理

fsisk -l 
# 列出素所有分区表“-u”与“ -l”搭配使用,显示分割数

fsisk -m 
# 显示菜单和帮助信息

fsisk -a 
# 活动分区标记/引导分区

fsisk -d 
# 删除分区

fsisk -l 
# 显示分区类型

fsisk -n 
# 新建分区

fsisk -p 
# 显示分区信息

fsisk -q 
# 退出不保存

fsisk -t 
# 设置分区号

fsisk -v 
# 进行分区检查

fsisk -w 
# 保存修改

fsisk -x 
# 扩展应用,高级功能

fsisk -s 
# 指定分区

fsisk -v 
# 版本信息

mount –t ntfs-3g /dev/sdb1 /mnt/usb
# 挂载ntfs硬盘

sleep 30 && mount -t ntfs-3g /dev/sdb1 /mnt/sdb1
# 挂载磁盘到文件夹

无线相关

iwinfo wlan0 info 
# 查看无线网卡的信息

wifi down 
wifi up
# 重启无线服务

iw dev wlan0 scan
# 扫描热点

iwinfo wlan0 assoclist  
iw dev wlan0 station dump
# 查看设备连接的客户端

其他命令

passwd
# 修改登录密码

firstboot
# 重置命令

chmod +x ***
# 脚本赋权

nslookup www.baidu.com 202.96.69.38
# DNS查询测试

du -s /root/* | sort -nr
# 查看文件目录大小

ifconfig eth0 down
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX //更改的MAC地址
ifconfig eth0 up
# 更改MAC地址

opkg install vsftpd openssh-sftp-server
/etc/init.d/vsftpd enable
/etc/init.d/vsftpd start
# 安装 SFTP 文件传输

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-commanddescription
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-commanddescription
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 ,它看起来是这样:

src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay

本地仓库

可以配置 opkg 从本地获取软件包:

src/gz local file:///path/to/packagesDirectory

Barrier_breaker 使用多个仓库,每个参考需要个唯一的标识符。逻辑上使用仓库原始的名称。如:

...
src/gz base file:///path/to/packages/directory/packages/base
src/gz luci file:///path/to/packages/directory/packages/luci
src/gz packages file:///path/to/packages/directory/packages/packages
src/gz oldpackages file:///path/to/packages/directory/packages/oldpackages
... etc ...

挂载点

opkg 有个不为那些 apt 系工具使用者熟悉的有用特性,它可以为任一软件包指定安装目的位置。
默认的 opkg.conf 包含三个目的位置:

dest root /
dest ram /tmp
dest mnt /mnt

目的位置行的格式很简单,关键字 dest 跟着目的位置名称(可以随便起),然后就是文件系统位置。任一如上配置好的目的位置都可以在 opkg 命令行中使用,如:

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

–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 应用后台运行、开机自启动

后台运行

实际上要一个应用后台运行,在输入命令的时候加上 “&” 符号就可以了,向下面

helloworld &

开启自启动

开机自启动这好像还是挺多方法的,一个是在 /etc/init.d 目录编写文件,一个是在网页上的开机运行脚本上加上上面后台运行的命令。

编写自启动脚本

在 openwrt 开发板命令行中输入

vi /etc/init.d/mystart

里面输入如下内容:

#!/bin/sh /etc/rc.common
START=99
STOP=15

start(){
    echo start helloword
    helloword &
}

stop(){
    echo stop helloword
}

restart(){
    echo restart helloword
}

enable(){
    echo enable helloword
}

disable(){
    echo disable helloword
}

命令应该很好理解,前面 START 和 STOP 是启动和关闭的优先级。

下面是另一种自启动脚本的写法,应该是差不多,注释写的也挺清楚了

#!/bin/sh /etc/rc.common

START=99 # 执行的顺序,按照字符串顺序排序并不是数字排序
STOP=15
SERVICE=helloword
PROG=/bin/helloword
USE_PROCD=1 # 使用procd启动

# start_service 函数必须要重新定义
start_service()
{
    echo service helloword start
    procd_open_instance  # 创建一个实例, 在 procd 看来一个应用程序可以多个实例
    # ubus call service list 可以查看实例
    procd_set_param command $PROG # mycode执行的命令是"/app/mycode", 若后面有参数可以直接在后面加上
    procd_set_param respawn # 定义respawn参数,告知procd当mycode程序退出后尝试进行重启
    # procd_close_instance # 关闭实例
}


编写完文件后还应该记得改一下权限,让脚本能够执行

cd /etc
chmod -R 777 init.d/mystart #设置权限,否则无法激活开机启动,提示权限不足

使用的时候按下面输入命令就可以,和普通服务类似

/etc/init.d/mystart enable #激活开机启动
/etc/init.d/mystart start #运行start函数启动程序

在网页上配置自启动

由于这项目是上一家公司的时候开发的了,都快一年了,源码都在之前公司的笔记本电脑里面,自己电脑没源码,就简单讲讲。

先要打开 openwrt 的网页控制界面,里面找到自启动功能,在里面的文本行中加入下面命令

helloword &

实际上使用起来,好像在网页上配置的自启动还好一些,用配置文件写的但是还总出错,当时是对 4G 上网模块有影响,具体记不清了。当时分析出错的原因是,用配置文件写的命令在软件被停止后会尝试重新启动,当然如果你没遇到这些问题,两种方法都是可以的。

自启动进阶

网上的博客一般到这里就完了,可是我当时不想做差不多先生,我将自启动脚本写到我们的源码文件中去,在安装的时候就给自动弄好,简单省事,下面看看写法。

这里再源码目录总编写我们的自启动脚本文件,以上一篇的 helloword 为例

mkdir ~/openwrt/package/hellworld/auto
cd  ~/openwrt/package/hellworld/auto

这里新起了一个目录来存放我们的配置文件,内容和上面一样,不说了。

接下来的重点是编写外层的 Makefile 文件,在复制那一段将我们的配置文件复制到 /etc/init.d/ 目录中去

define Package/helloword /install
    echo "Here is Package/install"
    $(INSTALL_DIR) $(1)/bin $(1)/etc/init.d/
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/helloword $(1)/bin/
    $(INSTALL_BIN) ./auto/mystart $(1)/etc/init.d/
endef

注意这里的 $(INSTALL_BIN),复制的是二进制文件,权限问题我忘了,如果启动不了,也还是按上面的方法增加运行权限吧。

上一篇:virsh命令详解

下一篇:没有了!

发表评论:

评论记录:

未查询到任何数据!

在线咨询

点击这里给我发消息 售前咨询专员

点击这里给我发消息 售后服务专员

在线咨询

免费通话

24小时免费咨询

请输入您的联系电话,座机请加区号

免费通话

微信扫一扫

微信联系
返回顶部