文章目录前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址5. 固定公网地址访问前言今天分享一下如何在小米路由器4A千兆版刷入OpenWRT软路由系统并通过内网穿透工具实现公网远程访问管理本地路由器。OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统可以让路由器变得更智能简单的说路由器刷了OpenWrt就相当于一个Linux系统带无线带多网卡的电脑。举个栗子有usb功能的路由器刷后可以实现多端文件共享 挂站远程监控甚至智能家居 无线可桥接可以无线连接一般的chinanet热点并拨号组建局域网无线网络传输数据等。1. 安装Python和需要的库首先打开 www.python.org 下载一个 Python3 的安装包并安装。安装完成后执行以下命令升级pip与安装需要的库python -m pip install --upgrade pip pip install pycryptodome pip install requests2. 使用 OpenWRTInvasion 破解路由器打开 OpenWRTInvasion 的 releases 页面下载一个可用的版本我这里选择的是支持Windows的版本的是0.0.7。下载后得到的压缩包名为OpenWRTInvasion-0.0.7将改文件解压缩到一个无中文的路径即可。小米路由器联网登录路由器在地址栏中找到参数stok并复制等号后的字符保持网页不要关闭。在解压OpenWRTInvasion的目录打开cmd本教程中使用的是Windows PowerShell输入python remote_command_execution_vulnerability.py指令运行破解脚本根据提示输入路由器IP192.168.31.1粘贴之前复制的stok等号后的字符开始破解破解成功后会有提示可以复制提示的指令连接Telent或者SSH用户名、密码都是root3. 备份当前分区并刷入新的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进行操作了。