缘起
大概2015年,跟风上了斐讯的车,屯了不少的K1/K2路由器。后来斐讯什么情况大家都知道,比较幸运的是最后2个斐讯的产品由京东自营兜底了,所以我不但没有赔钱,还小赚了一点以及斐讯的路由器设备。
由于斐讯路由器市场保有量大,从而有很多第三方的固件可供安装。就我而言,安装过潘多拉、华硕老毛子、华硕荒野无灯、华硕Hiboy、高恪。现在在持续更新的还有Hiboy、高恪的固件。高恪我不喜欢用,性能不够好。Hiboy只在telegram发布了,而其他的作者已经不再更新甚至下架了,原因我问过H大,他表示因为固件里带了一些“科学上网”,所以在2019年只要包含了“科学上网”的固件全部下架,这些都是题外话,不过多叙述。
在体验众多固件中,最稳定的就是潘多拉,但是界面和设置繁琐以及没有相应的插件,我不喜欢用它,但是够稳定,该有的功能都能正常使用,比如我最喜欢的Crontab定时功能,我常用来给路由器进行重启。
但是我装上华硕的固件后,用了几年,从来就没有Crontab定时成功过,由于近期迫切需要该功能,我只能重头到位尝试。
开始解决
测试思路
- 重新安装其他的固件,好在硬盘里有几年前的华硕固件
- 恢复出厂设置,测试Crontab命令
- 联系Hiboy作者
测试结果
- 第一种思路,无效。原因是重新安装其他的固件,不会重置用户的数据,这也是后来才知道为什么无效的
- 第二种思路。刚恢复后定时命令可以成功,但是当我导入用户配置文件后,立即失效
- Hiboy作者同样不知道原因
进一步思考
- 既然恢复出厂设置后成功,那么我是不是可以手动设置路由器,而不是直接导入以前的路由器配置文件?
- 既然要手动设置路由器,那么我应该每次修改设置后,通过Crontab定时命令输出一些内容,比如打印日志,来证明我修改设置后还是可以定时执行的
操作方法
我准备了一个定时命令,以修改WiFi为例子:
1
* * * * */bin/echo -路由器定时测试:修改2.4g WiFi名和密码`date` >> /home/root/time.txt &
这个shell命令需要写在:自定义设置 - 脚本 - 自定义 Crontab 定时任务配置 内
它的作用是每间隔1分钟,用echo命令向:/home/root/time.txt 文件写入一段字符串,同事路由器配置页面也会显示log记录
当我配置WiFi以后,我在:自定义设置 - 脚本 - 自定义 Crontab 定时任务配置,填入上面的内容,最后保存配置
等待log输出内容,华硕固件的log查看方法是在右上角,有一个Log按钮
每配置一个内容后,就对shell命令内的测试内容进行修改,直到我设置路由器用户名后,定时命令不再生效
此时我的路由器用户名里有一些符号“.”,一个英文的点,这是不支持特殊符号,还是不允许修改默认的用户名?
为此,我将用户名内的符号删除,仅适用:数字+字母 的组合
测试结果表明,华硕固件的用户名不支持用户名带有特殊符号,为此困扰我5年的问题终于得到解决
总结
- 如果某个功能之前正常,在做了某些操作后失效,就需要恢复曾做过的操作
- 如果操作的内容太多,建议恢复出厂设置,一步步来操作
- 用户名不应该使用特殊符号,建议:字母+数字 的组合
- 路由器的固件通常是一个裁剪过的Linux系统,有不完善的地方很正常。请仔细Google搜索,有可能别人遇到和你一样的问题,耐心一点测试,毕竟能靠得住的人还是你自己