本文介绍了小米路由器4a千兆版刷openwrt固件跟路由器的一些设置问题,由于小米路由器官方miwifi固件阉割了非常多的功能,所以把路由器刷入openwrt固件能大大提高使用体验。
官方固件的优缺点
小米路由器的官方固件(miwifi固件)就是基于openwrt魔改的,但是屏蔽了很多功能。这里列举一下官方固件的优缺点。
优点
有官方支持(其实没有,基本上几个版本后就会停更);- 比较稳定;
- 配置简单,基本上是开箱即用的;
- 自带排障功能(虽然没什么用就是了)。
缺点
没有shell,功能高度限制,很多参数无法修改。
openwrt
对路由器这种嵌入式设备进行刷机操作有较大的风险,可能会造成无法开机(变砖)、无线或(和)有线性能下降、设备过热导致烧毁、原机增值功能(例如保修)缺失等问题。建议有嵌入式、linux、防火墙、网络维护等基础概念的同学操作。
刷写 openwrt 的操作建议全程在 linux 或 macos 下操作,windows系统可能会出现各种情况不明的错误。
准备
首先需要下载的是 openwrt 固件,这里选择官方编译的版本。在恩山等无线论坛也有第三方编译的固件,会加入更多功能或优化,这个自己选择适合自己的就好。官方固件下载地址: , , 。然后在列表中寻找对应型号即可,我们本次使用的设备是小米路由器4a千兆版,对应的文件名就应该为openwrt-21.02.3-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin
,注意需要下载sysupgrade
包而非initramfs
包。
接下来需要下载 openwrtinvasion 脚本,该脚本用于通过漏洞对官方固件开启 ssh 。github地址: ,可以采用git clone
的方式也可以直接下载zip。
如果需要刷入 padavan 或其他固件还需要下载一份 breed ,可以从 中下载,选择对应的cpu和型号即可。刷入官方编译的openwrt不需要从breed刷入,可能会造成bootloop。
可能还需要一个额外的网络环境保证下载其他必要的文件。
开启官方固件的ssh
将网线连接至电脑,在浏览器内打开小米路由器的后台管理地址,默认是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
刷入 openwrt 固件
将上面下载的固件文件用winscp传入/tmp/
目录,并重命名为a.bin
(重命名为啥都行,不改也行,方便输入就行),然后输入如下命令刷入 openwrt :
# 切到tmp目录 cd /tmp # 输入固件 mtd -e os1 -r write firmware.bin os1
开始刷写后会先擦除对应分区然后写入固件文件,此时无论如何不要动路由器、网线和电源,等待电脑正常获取到ip且路由器主led灯变为蓝色时即可进入后台。
设置
这里仅列举容易遗忘或者需要查找外部数据的项,其他例如修改root密码这种基础操作在此略过。
这里列出的设置项的示例值仅为推荐选项,实际网络环境非常复杂请根据自己的网络环境变通设置。
这里没有提到的设置项则一般为默认值不必更改。
更换 opkg 软件源(nju)
shell 执行如下命令自动替换:
sed -i 's_downloads.openwrt.org_mirror.nju.edu.cn/openwrt_' /etc/opkg/distfeeds.conf
更换 opkg 软件源(tsinghua)
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
更换为简体中文
。
更改ntp服务器
路径:系统
→系统
→时间同步
,候选服务器更改为如下全部或任意几个即可。
项 | 推荐值 |
---|---|
候选 ntp 服务器 | ntp.ntsc.ac.cn cn.ntp.org.cn time1.aliyun.com time1.cloud.tencent.com pool.ntp.org time.apple.com time.cloudflare.com |
pv6 相关设置
路径:网络
→接口
→lan
→dhcp服务器
→ipv6设置
。
项 | 推荐值 |
---|---|
ra服务 | 服务器模式 |
dhcpv6 服务 | 已禁用 |
ndp代理 | 已禁用 |
路径:网络
→接口
→lan
→dhcp服务器
→ipv6 ra 设置
。
项 | 推荐值 |
---|---|
默认路由器 | 在可用的前缀上 或 自动 |
启用 slaac | ✅ |
路径:网络
→接口
→全局网络选项
。
自定义 dns
路径:网络
→接口
→wan
→高级设置
。
项 | 推荐值 |
---|---|
自动获取 dns 服务器 | ⬜ |
使用自定义的 dns 服务器 | 自由添加所需要的dns服务器ip |
如果还启用了 ipv6 :
路径:网络
→接口
→wan6
→高级设置
。
项 | 推荐值 |
---|---|
自动获取 dns 服务器 | ⬜ |
使用自定义的 dns 服务器 | 自由添加所需要的dns服务器ipv6地址 |
自动重启接口以获得新的地址
ifdown wan6&&ifup wan6
ifdown
停用接口ifup
启用接口
执行该命令后接口会自动向上级获取新的 prefix 或(和)ip地址,也可以加入 crontab 中确保业务不中断。
https
一部分教程在这里采用的是 openwrt 的自签证书,由于信任该自签证书可能并不安全,因此这里不使用自签证书。
- 到software中卸载所有
px5g
相关的包; - 用ssh连接到openwrt,删除
/etc/uhttpd.crt
和/etc/uhttpd.key
两个文件,然后将自签证书或下载的证书放入/etc
目录; - (可选)修改配置文件
/etc/config/uhttpd
,找到option redirect_https
项,后面的的值为1
时会自动从http跳转至https,0
则反之; - 重启uhttpd即可:
/etc/init.d/uhttpd restart
。
其他
iperf3
1.安装
opkg update&&opkg install iperf3
2.运行为服务模式
iperf3 -s
3.默认测试(每次持续1秒钟,连续测试60秒),其中-c
参数指定服务器,-p
参数指定服务器端口。
iperf3 -c mainserver.lxnchan-intranet -p 5835
4.执行“每次持续10秒,连续测试30秒”,其中-i
参数指定每次持续时间,-t
参数指定测试总持续时间。
iperf3 -c mainserver.lxnchan-intranet -i 10 -t 30
将日志发送到服务器
打开系统
→系统
→日志
,按照提示填写外部系统日志服务器地址
、外部系统日志服务器端口
和外部系统日志服务器协议
即可。
注意:外部系统日志服务器地址
要填写日志服务器的ip地址,最好不要填写域名,否则可能会连接失败;外部系统日志服务器端口
默认是514
,依据实际情况调整或保持默认;外部系统日志服务器协议
推荐使用udp
。
检查是否设置成功的方法可以查看日志服务器上是否新增了日志,或者查看 openwrt 日志,若有下列输出则连接成功:
daemon.info logread[22393]: logread connected to xx.x.xxx.xxx:514
本文来自:泠泫凝的异次元空间 https://lxnchan.cn/mi-r4ag-openwrt.html