openwrt路由器进入安全模式
openwrt路由器型号:WNDR3800
一.实验背景
在pc机上通过xshell软件登录openwrt路由器,pc机通过网线与openwrt路由器的LAN接口相连。openwrt路由器自带两块无线网卡,且能通过自带的网卡发出wifi,pc机也可以通过连接此wifi登录到openwrt路由器,我将openwrt路由器发出的wifi全部关掉了。我通过有线连接的方式登录openwrt路由器。实验设备连接图如下

在上图中,pc机(cilent端)和路由器(server端)都连接第三方的wifi热点,处于一个局域网中,两者能进行http通信,但是pc机不能通过这种连接方式利用ssh协议登录到路由器。所以我采用有线连接的方式,利用ssh协议登录到路由器。
在实验中,有一个功能是要将网卡从monitor模式切换为managed模式,然后在managed模式下,系统作为client端向server端发起http请求。
网卡在切换模式的过程中,路由表会发生变化。导致以前通过无线wifi方式进行http通信的过程失败。我原先是想通过修改路由表指定到server端的特定路由,在没能实现此功能 的情况下,我想到开机启动时删除有线路由,这样系统中就只有一条无线路由了,即使执行了网卡的模式切换,由于路由表中只有一条无线路由,所以http通信可以成功。我在系统中加了一个定时任务,路由器(作为client端)每隔一分钟向pc机(作为server端)发起一次http请求。在系统重启后,我在server端观察到每一分钟收到了来自client的一个http请求。但是我发现不能通过有线连接的方式登录到路由器中了,因为有线路由在开机时被我写的脚本删掉了。
至此,我把路由器自身发出wifi的功能关了,也不能通过有线连接的方式登录路由器了。通过第三方机器发出wifi相连的方式只能实现http通信,不能通过ssh的方式登录路由器。是的,我现在登录不了路由器了。实验背景描述完毕。
二.实验过程
现在有两种方式可以让我重新登录到路由器。第一种:进入路由器的安全模式。第二中:刷机。
我采用的是第一种。路由器的背面有一个很隐蔽的开关,在下图中我用红方框圈的部分。

我查到的手册写到:“OpenWrt 的安全模式能帮你解决任何问题是因为 OpenWrt 使用 JFFS2 分区存储用户数据 (如果你用的是 SquashFS 固件)! 在你忘记密码, 或把你自己墙了, 或你弄坏了一个启动脚本的情况下, 你可以用安全模式恢复”。
第一次在没有查资料的情况下,我尝试恢复出厂设置失败了。我想当然的以为只用按住reset按钮就可以恢复出厂设置。我的做法是:系统开机之后,用细针(只要是能伸进红框中小孔的工具)按住reset按键10秒放开。但是我预先写在系统中的定时脚本还在向server端发起http请求。而且我仍然不能通过有线连接的方式登录到路由器中。系统没有进入安全模式。
第二次我查找资料后发现进入openwrt的安全模式,步骤如下:
1.关闭路由器电源,再打开路由器电源,路由器灯全会由全亮变为全暗,等待SYS灯再次亮起,用细针(只要是能伸进红框中小孔的工具)按住reset按键,直到SYS灯出现快速闪烁,松开reset按键,成功进入安全模式。
2.配置本地机器ip为192.168.1.2 子网255.255.255.0 路由:192.168.1.1。使用telnet直接登录路由器:telnet 192.168.1.1。
进入安全模式后,xshell界面如下:

然后我做了以下操作:进入后mount可以看到root是不给写的,运行命令mount_root,先映射root盘。
至此我能够将我写的crontab定时任务(导致我不能通过有线连接的方式登录路由器)删除。所以就解决了我的问题。
之后我进行了下述操作:passwd修改密码,uci get network.lan.ipaddr复位路由器的ip。此时我看到我写的代码和安装的软件都还在,说明 在安全模式下做的以上操作没有让系统恢复出厂模式。 然后我进行了代码的备份。如果不做后续操作,我可以继续以前的工作。但是我运行了命令mtd -r erase rootfs_data。这个命令会清除整个jfss2区的数据,相当于恢复工厂设置。运行这个命令后我写的代码和安装的软件,我做的配置全部没了。
3.重启系统。
系统恢复出厂设置完成。之后就能通过有线的方式登录到路由器了。
三.实验结论
我分析了我的错误。我的错误在于恢复出厂设置之前没能了解恢复之前和恢复之后分别是什么现象。没有遵照客观事实,而人为的判断是否恢复了出厂设置。
我开始做实验时,对失败的定义是错误的。失败不是不符合我的期待,而是不符合恢复出厂设置的定义,我并不知道出厂 设置的定义是什么。
参考链接:
https://openwrt.org/zh-cn/doc/howto/generic.failsafe
https://www.router-reset.com/reset-manuals/Netgear/WNDR3800#factory-reset-instructions
openwrt路由器进入安全模式的更多相关文章
- 教程一 openwrt路由器入门 远程命令行+文件系统
如图,拿到一个openwrt路由器我们第一步要远程控制. 这里在买了两块wifi-robots wifi视频模块. 0首先说下这个WIIF的信息 淘宝购买链接 https://item.taobao ...
- OpenWRT路由器使用ipv6拨号上网教程
文章来源于群友,如有侵权,请联系我(aha971030@gmail.com)删除 原理介绍分析: 湖北E信地区可以使用ipv6拨号,好处是网络是上下对等不限速网络,也就是说,你的端口上限是多少,网上就 ...
- OpenWrt路由器通过LuCI界面实现Guest SSID功能
转自: http://blog.ltns.info/linux/guest_ssid_over_openwrt_router/ 之前尝试过 Tomato路由器设置VLAN实现Guest SSID功能, ...
- OpenWrt 路由器过滤广告的N种方法
路由器已经成为每个家庭不可缺少的角色,手机.电脑.电视,凡是需要互联网的设备都要用到它.那么路由器除了给我们的网络设备分发网络外,还有其他用途吗? 现在很多人家里都用着智能路由器,智能路由器究竟怎么智 ...
- OpenWrt路由器通过iPhone有线共享网络上网
2018年4月更新: 我自己的手机在openwrt上网速很慢,在电脑上又很快.应该不是被限速了,但是没找到原因. 三大运营商在学校争客户,手机卡开出了校内无限流量的条件.很开心,之前准备到东北大学的时 ...
- OpenWrt 路由器如何让 lan 口主机获得 ipv6 网络访问 -- 知乎
本文转自知乎: OpenWrt 路由器如何让 lan 口主机获得 ipv6 网络访问? - mistforest的回答 - 知乎https://www.zhihu.com/question/29667 ...
- 设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务
设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-02. 参考文章: IPv6"内网"设备 ...
- Openwrt路由器上安装python
在路由器安装python之前,还是经过了一番折腾的.淘宝上买了个已经刷好系统的小米迷你路由器,但里面安装的不是预期的Pandorbox,而是LEDE. 这个固件已经带了大量自带的软件,128的内存实在 ...
- 开发OpenWrt路由器上LuCI的模块
[题外话] 学校里最近改造了校园网,要求必须用iNode验证,万幸的是路由器能刷OpenWrt,并且OpenWrt上有好多iNode认证的开源项目,比如njit8021xclient(以下简称njit ...
随机推荐
- YII2 console中引用其他模块(子项目)的model时出现model找不到命名空间的问题解决
YII2 console中写定时任务, 想使用其他模块的model, 在 console的yii.php 入口文件中引入其他模块的配置文件, 否者会出现model等命名空间找不到的问题. 还有, 命名 ...
- LeetCode(21. 合并两个有序链表)
问题描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-& ...
- css 基本语法及页面引用:
css基本语法: css的定义方法是: 选择器{ 属性:值; 属性:值; 属性:值; } 选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性,每个属性有一个或多个值. 如: div{ w ...
- 写一个带文本菜单的程序,菜单项如下 (1) 取五个数的和 (2) 取五个数的平均值 (X) 退出。
问题: 写一个带文本菜单的程序,菜单项如下(1) 取五个数的和 (2) 取五个数的平均值(X) 退出. 由用户做一个选择, 然后执行相应的功能.当用户选择退出时程序结束. 实现: ...
- vue-cli模拟后台数据交互
作为一个前端入坑的妹子,在学习vue的道路上挣扎徘徊,由一开始的对vue一直蒙圈只知道双向数据绑定和一些'V-x'的指令,慢慢通过一个视频的学习渐渐入坑,对于我这个js基础不怎么好而且编程思维又不是很 ...
- angular.isString()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 版本管理_svn_检出_更新_提交_本机 MAC 地址_冲突
版本管理 git svn [subversion] 实现集中式的版本控制工具软件 来源于最初的工程图纸. 需求: 备份还原 协同修改 权限控制 弊端:集中式(管理方便,但是如果中心服务器瘫痪,整个开发 ...
- 02_ if_else if 练习
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 在U8菜单中增加自定义项
--.NET实现的脚本 If Exists (Select 1 From UFSystem..UA_Menu where cMenu_id = 'SAM06') delete from UFSyste ...
- 数位DP HDU - 2089 不要62
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...