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

路由器固件里怎么运行脚本命令?几个实用命令和操作场景

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

家里那台老路由器刷了OpenWrt,想让它每天凌晨自动重启、定时更新广告过滤列表,或者检测到网速变慢就自动换DNS——这些事,靠网页后台点几下根本搞不定,得靠固件里的脚本命令来跑。

先确认你的路由器支持脚本执行

不是所有路由器固件都开放命令行。常见的可刷固件中,OpenWrt、Padavan、DD-WRT 和 Merlin(华硕梅林)基本都带完整的 Linux 环境,能直接用 ssh 登录后敲命令。如果你用的是原厂固件(比如TP-Link、华为的默认系统),大概率不支持,强行折腾可能变砖,建议先查型号是否有人成功刷机。

常用登录和执行方式

以 OpenWrt 为例,打开终端(Windows 可用 PuTTY 或 Windows Terminal),输入:

ssh root@192.168.1.1

密码就是你设置的管理员密码(首次登录可能是 password 或空)。进去了就能像操作 Linux 一样敲命令。

几个真能用上的脚本命令示例

① 让路由器每天3:15自动重启

echo "15 3 * * * /sbin/reboot" | crontab -

这句是把定时任务写进 cron,保存后生效。重启 crond 服务可加一句:/etc/init.d/cron restart

② 检查 WAN 口是否掉线,掉线就拨号重连

if ! ping -c 1 114.114.114.114 &> /dev/null; then 
    ifup wan
fi

可以存成 /root/check_wan.sh,再用 chmod +x /root/check_wan.sh 加执行权限,然后放进 cron 每5分钟跑一次。

③ 更新 adguardhome 的过滤规则(假设已装好)

wget -O /opt/adguardhome/filters.txt https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/2_Base_filter/filter.txt &> /dev/null
/opt/adguardhome/adguardhome -s reload

注意路径要按你实际安装位置改,/opt 是 OpenWrt 常用扩展目录,如果没挂 U 盘或 SD 卡,/tmp 也能临时放脚本,但重启后会丢。

小心这些坑

/etc/storage/jffs 这类目录才持久化,/tmp/etc 下非配置文件重启就没了;
• 脚本里别用绝对路径依赖的命令(比如 python3),OpenWrt 默认没装,要用 opkg install python3 先装;
• 修改系统级配置前,先备份:cp /etc/config/network /etc/config/network.bak
• 别在脚本里写死密码或密钥,尤其用 curl 或 wget 调 API 时,优先走 token 或环境变量。

有次我帮邻居调一台 Padavan 路由器,他嫌广告太多,我就写了段脚本每小时拉一次去广告域名列表,自动更新 dnsmasq 的 conf 文件,再 killall -HUP dnsmasq 重载——不用重启,广告真的少了一大半。脚本不复杂,关键是知道在哪跑、怎么让它活下来。

路由器不是只能当“傻瓜转发器”,固件里的命令行,就是把它变成家庭网络小管家的钥匙。