电脑学堂
第二套高阶模板 · 更大气的阅读体验

路由器固件里怎么运行脚本命令?家庭用户实操指南

发布时间:2026-03-22 06:30:31 阅读:3 次

家里那台老路由器刷了OpenWrt,想让它每天凌晨自动重启、定时限速,或者把USB打印机共享出来——光点网页界面可搞不定,得靠命令行跑脚本。别怕,这不是服务器运维,家庭网络里跑个脚本,其实就几步。

先确认你的路由器支不支持

不是所有路由器都能随便敲命令。常见家用品牌里,华硕(ASUS)的梅林固件、网件(Netgear)部分型号刷OpenWrt后、小米/极路由刷Padavan或OpenWrt,基本都开放了SSH权限。进路由器后台看看「系统管理」或「高级设置」里有没有「SSH开启」、「远程终端」这类选项,打开它,用电脑装个PuTTY或Mac/Linux直接开终端连上就行。

连上去之后,最常用的几个命令位置

登录后默认在/根目录,但脚本一般放这仨地方:

  • /etc/init.d/:开机自启服务脚本,比如你想让某程序随路由器一起启动;
  • /etc/rc.local:一个文本文件,类似“开机最后执行的命令清单”,适合放简单命令;
  • /root//tmp/:临时存你写的.sh脚本,测试用。

写个自动重启的小脚本试试

比如想每天早上6点重启路由器(缓解长时间运行卡顿),先新建脚本:

vi /root/reboot_daily.sh

i进入编辑,输入:

#!/bin/sh
# 每天6点重启
/sbin/reboot

Esc,再输:wq保存退出。然后加执行权限:

chmod +x /root/reboot_daily.sh

再配上定时任务(crontab):

echo "0 6 * * * /root/reboot_daily.sh" >> /etc/crontabs/root

最后重启crond服务生效:

/etc/init.d/cron restart

注意几个坑

1. 路由器存储小,/tmp是内存盘,重启就清空,脚本别只放这儿;
2. /etc/rc.local末尾必须有exit 0,不然开机可能卡住;
3. 某些固件(如老版Padavan)用的是busybox ash,不支持$(date)这种写法,优先用`date`反引号格式;
4. 修改完配置记得uci commit(OpenWrt),否则重启后失效。

举个真实场景:孩子晚上9点自动断网

假设你用的是OpenWrt,在/etc/rc.local里加两行:

# 晚上9点切断孩子设备上网
iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP &
sleep 1
iptables -I FORWARD -m time --timestart 21:00 --timestop 24:00 -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP

MAC地址换成孩子平板或手机的,保存后重启网络:/etc/init.d/network restart。不用装APP,也不用买新设备,老路由器自己就干了。

脚本不是玄学,就是把手动点的操作变成一行行能保存、能复用的指令。从改一个rc.local开始,慢慢你就发现:原来家里的网络,真能听你的话。