小米 / Aqara 网关开启 Telnet + 自定义固件安装指南
一、前提条件与准备工作
适用型号
- 小米网关 3(MGL03)
- Aqara Hub M1S CN / EU
- Aqara Hub E1(ZHWG16LM)
- Mi Smart Hub 2 Pro(ZHWG16LM)
- Aqara Hub G3 / 空调伴侣 P3 / USB 墙插网关
必要条件
- 网关 已连接米家(Mi Home)App;
获取设备:
- IP 地址
- Token(令牌)
获取方式(任选其一):
- 使用提取工具:Miio Token Extractor
- 或者使用 Home Assistant + XiaomiGateway3 插件(自动显示 token)
二、开启 Telnet 的三种方法
方法一(推荐)—— 通过 XiaomiGateway3 组件(Home Assistant)
- 在 Home Assistant 中安装 XiaomiGateway3 组件;
- 打开集成页面 → 找到对应网关;
- 点击 “Open Telnet Command”;
- 输入以下命令(保持原样):
【网关 3(MGL03)】
{"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd"}}【Aqara Hub E1】
{"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; /bin/riu_w 101e 53 3012; telnetd"}}执行后,等待几秒即可开启 Telnet。
方法二(推荐给非 Home Assistant 用户)—— 使用 php-miio 工具
- 下载并安装 php-miio
在命令行中运行:
php miio-cli.php --ip 网关IP --token 网关Token --sendcmd '{"id":123,"method":"set_ip_info","params":{"ssid":"\"\"","pswd":"123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd"}}'对于不同型号的设备,请替换命令中的 pswd 内容,例如:
- Hub E1:/bin/riu_w 101e 53 3012
- Hub G3 或 M1S:passwd -d root; /bin/riu_w 101e 53 3012; telnetd
方法三 —— 使用 python-miio 工具
安装依赖:
pip install python-miio执行命令:
miiocli device --ip 网关IP --token 网关Token raw_command set_ip_info '{"ssid":"\"\"","pswd":"123123 ; passwd -d admin ; echo enable > /sys/class/tty/tty/enable; telnetd"}'
三、Telnet 登录操作
Telnet 启动后,通过命令行连接:
telnet 网关IP
| 设备型号 | 用户名 | 密码 |
|---|---|---|
| 小米网关3 | admin | (空) |
| Aqara Hub / M1S / E1 / G3 / Hub 2 Pro | root | (空) |
连接成功后,你将看到设备命令行提示符。
四、安装自定义固件(可选)
获取固件
参考官方固件仓库:
https://github.com/zvldz/mgl03_fw/tree/main/firmware#the-easy-way
安装命令(示例)
cd /tmp && wget -O /tmp/curl "http://master.dl.sourceforge.net/project/mgl03/bin/curl?viasf=1" && chmod a+x /tmp/curl
/tmp/curl -s -k -L -o /tmp/m1s_update.sh https://raw.githubusercontent.com/niceboygithub/AqaraM1SM2fw/main/modified/M1S/m1s_update.sh
chmod a+x /tmp/m1s_update.sh && /tmp/m1s_update.sh 五、安全建议
- 默认 Telnet 无密码,非常危险!
- 建议登录后立即设置密码:
passwd - 关闭远程访问端口
- 若不再使用 Telnet,可执行:
killall telnetd - 断电重启后确认服务状态
某些设备需重新发送命令以重新启用 telnet。
六、常见错误与解决方法
| 错误信息 | 原因与解决办法 | |
|---|---|---|
| SyntaxError: invalid syntax | 命令格式错误;引号嵌套需正确。 | |
| user ack timeout | 设备未响应;确认 IP、Token、网络是否通畅。 | |
| /tmp/curl: unexpected "(" | 执行了错误架构的二进制文件。 | |
| 登录失败 | 用户名或密码错误,或未成功启动 telnet。 |
七、总结与建议
| 用户类型 | 推荐方法 | 理由 |
|---|---|---|
| Home Assistant | 方法一(XiaomiGateway3) | 简单直观、兼容好。 |
| 技术用户(Linux/PHP) | 方法二(php-miio) | 稳定性最佳、命令清晰。 |
| Python 使用者 | 方法三(python-miio) | 可扩展性强,适合自动化控制。 |
评论区(暂无评论)