前言
OpenWRT 是一个高度模块化、高度自动化的嵌入式 Linux 系统,可以让路由器变得更智能,简单的说,路由器刷了 OpenWrt 就相当于一个 Linux 系统带无线带多网卡的电脑。
举个栗子:有 usb 功能的路由器刷后可以实现多端文件共享 ,挂站,远程监控甚至智能家居 ;无线可桥接,可以无线连接一般的 chinanet 热点并拨号;组建局域网无线网络传输数据等。
今天就分享一下如何在小米路由器 4A 千兆版刷入 OpenWRT 并通过内网穿透工具实现公网远程访问。
1. 安装 Python 和需要的库
首先打开 www.python.org 下载一个 Python3 的安装包并安装。
安装完成后执行以下命令升级 pip 与安装需要的库:
python -m pip install --upgrade pip pip install pycryptodome pip install requests
2. 使用 OpenWRTInvasion 破解路由器
打开 OpenWRTInvasion 的 releases 页面,下载一个可用的版本,我这里选择的是支持 Windows 的版本的是 0.0.7。
下载后得到的压缩包名为:OpenWRTInvasion-0.0.7,将改文件解压缩到一个无中文的路径即可。
小米路由器联网,登录路由器,在地址栏中找到参数 stok 并复制等号后的字符,保持网页不要关闭。
在解压 OpenWRTInvasion 的目录打开 cmd(本教程中使用的是 Windows PowerShell)
输入python remote_command_execution_vulnerability.py
指令运行破解脚本
根据提示输入路由器 IP(192.168.31.1),粘贴之前复制的 stok 等号后的字符,开始破解
破解成功后会有提示,可以复制提示的指令连接 Telent 或者 SSH,用户名、密码都是 root
3. 备份当前分区并刷入新的 Breed
首先执行以下指令查看与备份分区
cat /proc/mtd #显示路由分区 dd if=/dev/mtd0 of=/tmp/all.bin #备份所有分区到/tmp/all.bin dd if=/dev/mtd1 of=/tmp/Bootloader.bin #备份引导分区到/tmp/Bootloader.bin
然后使用 WinSCP 或者其他 FTP 工具创建 FTP 连接,地址是路由器 IP,用户名 root,没有密码,连接后将刚才备份的两个文件all.bin
,Bootloader.bin
传输出来,并且将 breed-mt7621-pbr-m1.bin 上传到 tmp 目录下。
上传完成后执行mtd -r write /tmp/breed-mt7621-pbr-m1.bin Bootloader
刷入 Breed,刷入完成后重启路由器
使用浏览器打开 192.168.1.1 打开 Breed 控制台,刷入 openwrt-ramips-mt7621-xiaomi_r4a-squashfs-sysupgrade.bin。点击确定后,会进行更新读条。
等待读条结束后,浏览器输入 192.168.31.1 即可看到 OpenWrt 登录界面
默认账号为 root,密码是 coolxiaomi,登录后显示下方界面即刷入成功。
4. 安装 cpolar 内网穿透
此时已经可以成功登录 OpenWrt 并运行,不过只能在本地访问,如果打算在公网环境随时随时访问内网的 OpenWrt 进行文件传输等操作,我们需要安装 cpolar 内网穿透工具来实现。
4.1 注册账号
进入 cpolar 官网:https://www.cpolar.com/
点击右上角的免费注册
,使用邮箱免费注册一个 cpolar 账号并登录
4.2 下载 cpolar 客户端
登录成功后,点击下载 cpolar 到本地并安装(一路默认安装即可)本教程选择下载 Windows 版本。
4.3 登录 cpolar web ui 管理界面
在浏览器上访问 127.0.0.1:9200,使用所注册的 cpolar 邮箱账号登录 cpolar web ui 管理界面(默认为本地 9200 端口)
4.4 创建公网地址
登录成功进入主界面后,我们点击左侧仪表盘的隧道管理
——隧道列表
,再点击创建隧道
.
- 隧道名称:可自定义命名,不能与已有的隧道名重复,这里我填写了
website
- 协议:选择
http
- 本地地址:
192.168.31.1:80
- 域名类型:免费套餐选择
随机域名
- 地区:
China Top
点击创建
此时,点击左侧状态
中的在线隧道列表
,可以看到刚才创建的 wamp 隧道,生成了两个公网地址,有两种访问方式,分别是 http 和 https,随意复制一个地址,在公网电脑浏览器打开即可,如下图所示即代表成功实现公网访问本地内网路由器的 OpenWrt。
5. 固定公网地址访问
需要注意的是,本次教程中使用的是免费 cpolar 所生成的公网随机临时地址,该地址 24 小时内会发生变化,对于需要长期在外使用 OpenWrt 的用户来讲,配置一个固定地址就很有必要。
我一般会使用固定二级子域名,原因是这样一个固定、易记的公网地址(例如:open.cpolar.cn),这样远程路由器时更方便也更快捷。
登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留
,保留成功后复制保留的二级子域名名称。
以本次教程为例,地区选择China VIP
,二级域名填写open
,描述填写 1,点击保留
。
保留成功后复制保留的二级子域名地址,登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理
——隧道列表
,找到所要配置的隧道:website,点击右侧的编辑
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择
二级子域名
- Sub Domain:填写保留成功的二级子域名
open
- 地区:选择
China VIP
点击更新
更新完成后,打开在线隧道列表
,此时可以看到公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址进行连接访问,复制二级子域名:http://open.vip.cpolar.cn/到另一台公网电脑浏览器打开,无报错和连接异常,可以看到连接成功,这样一个固定不变的地址访问就设置好了,您可以随时随地使用该域名来公网访问内网路由器 OpenWrt 进行操作了。
来源: cpolar 极点云