问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

小米4A路由器刷OpenWrt教程

创作时间:
作者:
@小白创作中心

小米4A路由器刷OpenWrt教程

引用
1
来源
1.
https://www.80211be.com/openwrt/xiaomi-4a.html

本文将详细介绍如何将小米4A千兆无线路由器从官方固件刷入OpenWrt固件,并配置为外部网关。文章内容详尽,适合有一定技术基础的用户参考。

官方固件的优缺点

小米路由器的官方固件(MiWiFi固件)就是基于Openwrt魔改的,但是屏蔽了很多功能。这里列举一下官方固件的优缺点。

优点

  • 有官方支持(其实没有,基本上几个版本后就会停更)
  • 比较稳定
  • 配置简单,基本上是开箱即用的
  • 自带排障功能(虽然没什么用就是了)

缺点

没有Shell,功能高度限制,很多参数无法修改。

Openwrt

对路由器这种嵌入式设备进行刷机操作有较大的风险,可能会造成无法开机(变砖)、无线或(和)有线性能下降、设备过热导致烧毁、原机增值功能(例如保修)丢失等问题。建议有嵌入式、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。

如果需要刷入 Padavan 或其他固件还需要下载一份 breed ,可以从 Boot and Recovery Environment for Embedded Devices 中下载,选择对应的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.cncn.ntp.org.cntime1.aliyun.comtime1.cloud.tencent.compool.ntp.orgtime.apple.comtime.cloudflare.com

IPv6 相关设置

路径:

网络

接口

LAN

DHCP服务器

IPv6设置

项 推荐值
RA服务 服务器模式
DHCPv6 服务 已禁用
NDP代理 已禁用

路径:

网络

接口

LAN

DHCP服务器

IPv6 RA 设置

项 推荐值
默认路由器 在可用的前缀上 或自动
启用 SLAAC ✅

路径:

网络

接口

全局网络选项

项 推荐值
IPv6 ULA 前缀 (留空)

自定义 DNS

路径:

网络

接口

WAN

高级设置

项 推荐值
自动获取 DNS 服务器 ⬜
使用自定义的 DNS 服务器 自由添加所需要的DNS服务器IP

如果还启用了 IPv6 :

路径:

网络

接口

WAN6

高级设置

项 推荐值
自动获取 DNS 服务器 ⬜
使用自定义的 DNS 服务器 自由添加所需要的DNS服务器IPv6地址

自动重启接口以获得新的地址

ifdown wan6&&ifup wan6

ifdown

停用接口

ifup

启用接口
执行该命令后接口会自动向上级获取新的 Prefix 或(和)IP地址,也可以加入 crontab 中确保业务不中断。

HTTPS

一部分教程在这里采用的是 Openwrt 的自签证书,由于信任该自签证书可能并不安全,因此这里不使用自签证书。

  1. 到Software中卸载所有

px5g

相关的包;
4. 用ssh连接到OpenWRT,删除

/etc/uhttpd.crt

/etc/uhttpd.key

两个文件,然后将自签证书或下载的证书放入

/etc

目录;
6. (可选)修改配置文件

/etc/config/uhttpd

,找到

option redirect_https

项,后面的的值为

1

时会自动从http跳转至https,

0

则反之;
8. 重启uhttpd即可:

/etc/init.d/uhttpd restart

禁用DNS重绑定

警告:禁用DNS重绑定可能会造成安全问题,如果没有特殊需求不建议关闭。

路径:

网络

DHCP/DNS

项 推荐值
重绑定保护 ⬜

也可以在开启的情况下将需要禁用重绑定保护的域名写在

域名白名单

中。

其他

iperf3

  1. 安装
opkg update&&opkg install iperf3
  1. 运行为服务模式
iperf3 -s
  1. 默认测试(每次持续1秒钟,连续测试60秒),其中

-c

参数指定服务器,

-p

参数指定服务器端口。

iperf3 -c mainserver.lxnchan-intranet -p 5835
  1. 执行“每次持续10秒,连续测试30秒”,其中

-i

参数指定每次持续时间,

-t

参数指定测试总持续时间。

iperf3 -c mainserver.lxnchan-intranet -i 10 -t 30

网页终端 ttyd

  • 安装软件包
opkg install ttyd luci-app-ttyd luci-i18n-ttyd-zh-cn
  • 强制刷新Web后台页面,即可在顶栏或侧栏看见“服务”→“终端”,点进去即可使用。
  • 若Openwrt后台使用了https则也需要在“配置”中启用“SSL”并配置“SSL证书”和“SSL密钥”,使用和uhttpd一样的即可;

SSL ca

可留空不填。

将日志发送到服务器

如有需要可以搭建日志服务器,不需要可以跳过这步。

打开

系统

系统

日志

,按照提示填写

外部系统日志服务器地址

外部系统日志服务器端口

外部系统日志服务器协议

即可。

注意:

外部系统日志服务器地址

要填写日志服务器的IP地址,最好不要填写域名,否则可能会连接失败;

外部系统日志服务器端口

默认是

514

,依据实际情况调整或保持默认;

外部系统日志服务器协议

推荐使用

UDP

检查是否设置成功的方法可以查看日志服务器上是否新增了日志,或者查看 OpenWrt 日志,若有下列输出则连接成功:

daemon.info logread[22393]: Logread connected to xx.x.xxx.xxx:514

外网访问提示 RFC1918

修改配置文件

/etc/config/uhttpd

,找到如下行将

0

修改为

1

option rfc1918_filter '0'

然后重启uhttpd即可。

改动记录

时间 改动
2022-06-15 23:12:00 添加“将日志发送到服务器”节。
2022-06-18 11:29:00 修改“IPv6相关设置”;添加“外网访问提示 RFC1918”节;添加“禁用DNS重绑定”节。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号