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路由器进入安全模式的更多相关文章

  1. 教程一 openwrt路由器入门 远程命令行+文件系统

    如图,拿到一个openwrt路由器我们第一步要远程控制. 这里在买了两块wifi-robots  wifi视频模块. 0首先说下这个WIIF的信息 淘宝购买链接 https://item.taobao ...

  2. OpenWRT路由器使用ipv6拨号上网教程

    文章来源于群友,如有侵权,请联系我(aha971030@gmail.com)删除 原理介绍分析: 湖北E信地区可以使用ipv6拨号,好处是网络是上下对等不限速网络,也就是说,你的端口上限是多少,网上就 ...

  3. OpenWrt路由器通过LuCI界面实现Guest SSID功能

    转自: http://blog.ltns.info/linux/guest_ssid_over_openwrt_router/ 之前尝试过 Tomato路由器设置VLAN实现Guest SSID功能, ...

  4. OpenWrt 路由器过滤广告的N种方法

    路由器已经成为每个家庭不可缺少的角色,手机.电脑.电视,凡是需要互联网的设备都要用到它.那么路由器除了给我们的网络设备分发网络外,还有其他用途吗? 现在很多人家里都用着智能路由器,智能路由器究竟怎么智 ...

  5. OpenWrt路由器通过iPhone有线共享网络上网

    2018年4月更新: 我自己的手机在openwrt上网速很慢,在电脑上又很快.应该不是被限速了,但是没找到原因. 三大运营商在学校争客户,手机卡开出了校内无限流量的条件.很开心,之前准备到东北大学的时 ...

  6. OpenWrt 路由器如何让 lan 口主机获得 ipv6 网络访问 -- 知乎

    本文转自知乎: OpenWrt 路由器如何让 lan 口主机获得 ipv6 网络访问? - mistforest的回答 - 知乎https://www.zhihu.com/question/29667 ...

  7. 设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务

    设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-11-02. 参考文章: IPv6"内网"设备 ...

  8. Openwrt路由器上安装python

    在路由器安装python之前,还是经过了一番折腾的.淘宝上买了个已经刷好系统的小米迷你路由器,但里面安装的不是预期的Pandorbox,而是LEDE. 这个固件已经带了大量自带的软件,128的内存实在 ...

  9. 开发OpenWrt路由器上LuCI的模块

    [题外话] 学校里最近改造了校园网,要求必须用iNode验证,万幸的是路由器能刷OpenWrt,并且OpenWrt上有好多iNode认证的开源项目,比如njit8021xclient(以下简称njit ...

随机推荐

  1. java 解析富文本处理 img 标签

    很多项目都需要到富文本来添加内容,就好比新闻啊,旅游景点之类的,都需要使用富文本去添加数据,然而怎么我这边就发现了两个问题 1)怎样将富文本的图片的 src 获取出来? 2)后台上传的时候用的是相对路 ...

  2. d4-01

    一.字典 1.1 var dict = {"name":"zhangsan"}  定义字典 1.2 dict.name     取得name的值 1.3 del ...

  3. [LeetCode] Most Profit Assigning Work 安排最大利润的工作

    We have jobs: difficulty[i] is the difficulty of the ith job, and profit[i] is the profit of the ith ...

  4. MySQL 详细学习笔记 转

    Windows服务 -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值 ...

  5. XP下ubuntu双系统安装方法

    利用u盘将iso刻录 从u盘启动 连续按alt+f2 进入ubuntu试用 打开终端 输入 sudo umount -l /cdrom sudo umount -l /isodevice 然后安装un ...

  6. [dev] 刷HHKP的一般流程及常见错误(多图慎点)

    ( 为什么打了个dev的tag?development不用键盘,难道用鼠标??) 嗯呐,我有个HHKP,你看: 好不好看? 脏不脏? 接下来讲一下,我是怎么刷它,要看完哝,不然拆坏了不要怪我. 本来我 ...

  7. c++11 强类型枚举 enum class

    在标准C++中,枚举类型不是类型安全的.枚举类型被视为整数,这使得两种不同的枚举类型之间可以进行比较.C++03 唯一提供的安全机制是一个整数或一个枚举型值不能隐式转换到另一个枚举别型. 此外,枚举所 ...

  8. flask微服务框架的初步接触

    测试2个关联的系统接口时,经常会遇到被测试系统或被测app的处理内部处理流程会依赖另一个系统的接口返回结果,这时,常用的做法就是写一个模拟测试桩,用作返回请求时的结果.java可以用servicele ...

  9. Elasticsearch学习笔记(十)批量查询mget、批量增删改bulk

    一.批量查询  mget             GET /_mget {   "docs":[       {         "_index":" ...

  10. 如何查看端口recv和send

    1.进入到pod的宿主机   一般来说 ssh  slaveX 2.查看进程号   top可以看到 3.执行命令    nsenter --target 10594 --net netstat -an