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. CSS文字溢出处理问题

    单行省略 div { white-space:nowrap; //断行处理:无断行 text-overflow:ellipsis; //文字溢出处理:省略号 overflow:hidden; //溢出 ...

  2. linux(debian) arm-linux-g++ v4.5.1交叉编译 embedded arm 版本的QtWebkit (browser) 使用qt 4.8.6 版本 以及x64上编译qt

    最近需要做一个项目 在arm 架构的linux下 没有桌面环境的情况下拉起 有界面的浏览器使用. 考虑用qt 的界面和 qtwebikt 的库去实现这一系列操作. 本文参考: Qt移植到ARM Lin ...

  3. day13_DOM

    一,document可以获得HTML页面全部内容, 1.①document.getElementById:获取全部id标签,②document.getElementById("i1" ...

  4. 对于服务器AdminServer, 与计算机Machine-0相关联的节点管理器无法访问

    控制台启动server时报"对于服务器server-1与计算机machin<!--StartFragment -->对于服务器AdminServer, 与计算机Machine-0 ...

  5. 小甲鱼Python第二十二讲课后习题

    笔记: 斐波那契数列的两种实现方式:   迭代的方式: 自己写的: def fab(n): n1 =1 n2 =1 n3 =1 if n < 1: return -1 if n ==1: ret ...

  6. ab 站点压力测试工具

    ab--压力测试工具 前端时间由于需要测试一个网站的高并发的情况,使用到了一个ab测试工具,下面是我自己的体验及参考网上别人的博客所写,希望对大家有所帮助. ab工具简介 ab 全称:apache b ...

  7. Web Driver 8中定位方法 ——基于python语言

    WebDriver提供了八种元素定位方法,在python 语言中,方法如下:  id定位:find_element_by_id("id值"):id属性是唯一的.  1 driver ...

  8. C# WinForm:无法访问已释放的对象

    C#在父窗口中调用子窗口的过程: 1. 创建子窗口对象 2. 显示子窗口对象   笔者的程序中,主窗体MainFrm通过菜单调用子窗口ChildFrm.在窗体中定义了子窗口对象,然后在菜单项点击事件中 ...

  9. IOS不支持iframe的解决办法

    最近做ios的兼容,因为入口不同,需要把公共页面抽取出来,然后根据不同的值,传递给后台不同的入口.刚开始用iframe页面嵌套(第一次尝试使用),但发现iOS系统对iframe嵌套页面的高度和定位控制 ...

  10. windows下创建.gitignore

    网上搜索 .gitignore 的创建,很多linux上的,而且还一样,... 尝试了几次,windows可以这样写 .svn/ .settings/ .buildpath .project