记录一下从官方固件开始,到刷入 Openwrt 能够充当外部网关的全过程。
小米路由器的官方固件(MiWiFi固件)就是基于Openwrt魔改的,但是屏蔽了很多功能。这里列举一下官方固件的优缺点。
没有Shell,功能高度限制,很多参数无法修改。
对路由器这种嵌入式设备进行刷机操作有较大的风险,可能会造成无法开机(变砖)、无线或(和)有线性能下降、设备过热导致烧毁、原机增值功能(例如保修)缺失等问题。建议有嵌入式、Linux、防火墙、网络维护等基础概念的同学操作。
刷写 Openwrt 的操作建议全程在 Linux 或 macOS 下操作,Windows系统可能会出现各种情况不明的错误。
首先需要下载的是 Openwrt 固件,这里选择官方编译的版本。在恩山等无线论坛也有第三方编译的固件,会加入更多功能或优化,这个自己选择适合自己的就好。官方固件下载地址:openwrt.org ,南京大学镜像源 ,清华大学镜像源 。然后在列表中寻找对应型号即可,我们本次使用的设备是小米路由器4A千兆版,对应的文件名就应该为openwrt-21.02.3-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin
,注意需要下载sysupgrade
包而非initramfs
包。
接下来需要下载 OpenwrtInvasion 脚本,该脚本用于通过漏洞对官方固件开启 ssh 。Github地址:acecilia/OpenWRTInvasion ,可以采用git clone
的方式也可以直接下载ZIP。
可能还需要一个额外的网络环境保证下载其他必要的文件。
将网线连接至电脑,在浏览器内打开小米路由器的后台管理地址,默认是http://192.168.31.1
,登录后将地址栏的整段文字复制出来备用,整段地址应该是形似http://192.168.31.1/cgi-bin/luci/;stok=xxx/web/home
的,此时不要关闭已登录后台的浏览器。
然后打开Terminal,输入如下指令安装依赖:
pip3 install -r requirements.txt
依赖安装完成后执行脚本解锁官方SSH:
python3 remote_command_execution_vulnerability.py
中间需要输入上面保存的地址中的stok参数,直接整段复制粘贴进去即可。
开启完成后通过ssh进入路由器后台,默认密码是root
:
ssh root@192.168.31.1
将上面下载的固件文件用WinSCP传入/tmp/
目录,并重命名为a.bin
(重命名为啥都行,不改也行,方便输入就行),然后输入如下命令刷入 OpenWRT :
cd /tmp mtd -e OS1 -r write firmware.bin OS1
开始刷写后会先擦除对应分区然后写入固件文件,此时无论如何不要动路由器、网线和电源,等待电脑正常获取到IP且路由器主LED灯变为蓝色时即可进入后台。
这里仅列举容易遗忘或者需要查找外部数据的项,其他例如修改root密码这种基础操作在此略过。
这里列出的设置项的示例值仅为推荐选项,实际网络环境非常复杂请根据自己的网络环境变通设置。
这里没有提到的设置项则一般为默认值不必更改。
shell 执行如下命令自动替换:
sed -i 's_downloads.openwrt.org_mirror.nju.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
shell 执行如下命令自动替换:
sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
到System
→Software
安装luci-i18n-base-zh-cn
软件包并Ctrl+F5强制刷新后生效。
旧版本可能需要到System
→System
→language
更换为简体中文
。
路径:系统
→系统
→时间同步
,候选服务器更改为如下全部或任意几个即可
路径:网络
→接口
→LAN
→DHCP服务器
→IPv6设置
。
路径:网络
→接口
→LAN
→DHCP服务器
→IPv6 RA 设置
。
路径:网络
→接口
→全局网络选项
。
路径:网络
→接口
→WAN
→高级设置
。
如果还启用了 IPv6 :
路径:网络
→接口
→WAN6
→高级设置
。
ifdown wan6&&ifup wan6
-
ifdown
停用接口 -
ifup
启用接口
执行该命令后接口会自动向上级获取新的 Prefix 或(和)IP地址,也可以加入 crontab 中确保业务不中断。
opkg update&&opkg install iperf3
iperf3 -s
iperf3 -c mainserver.lxnchan-intranet -p 5835
iperf3 -c mainserver.lxnchan-intranet -i 10 -t 30
原文链接:https://blog.csdn.net/lingxuanning/article/details/124864828?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171828104516800225555535%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171828104516800225555535&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-13-124864828-null-null.nonecase&utm_term=%E8%B7%AF%E7%94%B1%E5%99%A8%E3%80%81%E5%8D%83%E5%85%86