一、前提条件与准备工作

适用型号

  • 小米网关 3(MGL03)
  • Aqara Hub M1S CN / EU
  • Aqara Hub E1(ZHWG16LM)
  • Mi Smart Hub 2 Pro(ZHWG16LM)
  • Aqara Hub G3 / 空调伴侣 P3 / USB 墙插网关

必要条件

  1. 网关 已连接米家(Mi Home)App;
  2. 获取设备:

    • IP 地址
    • Token(令牌)

获取方式(任选其一):

  • 使用提取工具:Miio Token Extractor
  • 或者使用 Home Assistant + XiaomiGateway3 插件(自动显示 token)

二、开启 Telnet 的三种方法

方法一(推荐)—— 通过 XiaomiGateway3 组件(Home Assistant)

  1. 在 Home Assistant 中安装 XiaomiGateway3 组件;
  2. 打开集成页面 → 找到对应网关;
  3. 点击 “Open Telnet Command”;
  4. 输入以下命令(保持原样):

【网关 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 工具

  1. 下载并安装 php-miio
  2. 在命令行中运行:

    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 工具

  1. 安装依赖:

    pip install python-miio
  2. 执行命令:

    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"}'

提示
如果遇到 SyntaxError 或 user ack timeout,检查命令引号(推荐整句外双引号、内部单引号)。

三、Telnet 登录操作

Telnet 启动后,通过命令行连接:

telnet 网关IP

设备型号用户名密码
小米网关3admin(空)
Aqara Hub / M1S / E1 / G3 / Hub 2 Proroot(空)

连接成功后,你将看到设备命令行提示符。

四、安装自定义固件(可选)

获取固件
参考官方固件仓库:

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

注意
不同型号设备 CPU 架构不同(如 mgl03 ≠ m1s),固件不通用;
若提示 unexpected "(" 代表文件格式或架构不兼容;
刷机前务必备份原系统。

五、安全建议

  1. 默认 Telnet 无密码,非常危险!
  2. 建议登录后立即设置密码:
    passwd
  3. 关闭远程访问端口
  4. 若不再使用 Telnet,可执行:
    killall telnetd
  5. 断电重启后确认服务状态
  6. 某些设备需重新发送命令以重新启用 telnet。

六、常见错误与解决方法

错误信息原因与解决办法
SyntaxError: invalid syntax命令格式错误;引号嵌套需正确。
user ack timeout设备未响应;确认 IP、Token、网络是否通畅。
/tmp/curl: unexpected "("执行了错误架构的二进制文件。
登录失败用户名或密码错误,或未成功启动 telnet。

七、总结与建议

用户类型推荐方法理由
Home Assistant方法一(XiaomiGateway3)简单直观、兼容好。
技术用户(Linux/PHP)方法二(php-miio)稳定性最佳、命令清晰。
Python 使用者方法三(python-miio)可扩展性强,适合自动化控制。