它能做什么,怎么用
每个功能先用大白话讲清楚,再给命令。在 OpenWrt 上你本来就是 root,去掉 sudo 即可。
移动数据和 APN
插一张有流量套餐的 SIM 卡,Linux 会自己连上 5G(NSA)或 LTE,再把网络分享给热点和 USB 线上的所有设备。基带重启了,它也会自己重新连上。
sudo mobile-data status # 连上了吗?拿到了什么地址?
APN 是运营商数据网关的名字。大多数运营商什么都不用填:留空,设备就用 SIM 卡里写好的设置。
| 系统 | 在哪里设置 APN |
|---|---|
| Ubuntu | /etc/mu300/mobile-data.conf:MU300_APN 和 MU300_PDP_TYPE |
| OpenWrt | LuCI:网络 > 接口 > wan,或者用 uci(如下) |
uci set network.wan.apn='your.apn'; uci commit network; ifup wan
用了多少流量
设备按天、按账单周期统计移动数据,上下行都算,算法和运营商一致。你可以设定账单周期从哪天开始,以及带提醒的每月上限;到上限时关闭移动数据是可选的,下个周期开始时会自动恢复。统计在重启和切换系统后都不会丢,也不会重复计数。在带控制面板的 OpenWrt 上,这就是“蜂窝 > 流量统计”(Cellular > Data usage)页面,状态看板(Status dashboard)还会每秒显示当前的下载和上传速度。
mu300-traffic # 今天、本账单周期和上限
sudo mu300-traffic set reset-day 1 # 账单周期从每月哪一天开始
sudo mu300-traffic set cap 50G # 每月上限(默认用到 90 % 时提醒,可以改)
sudo mu300-traffic set cut on # 可选:到上限就关闭移动数据,下个周期自动恢复
mu300-traffic days # 最近有流量的那些天
固定 TTL
每个数据包都带着一个叫 TTL 的小计数器。有些运营商靠它分辨流量是来自热点上的设备还是设备本身。你可以把它设成固定值:
sudo mu300-ttl set 64 # 移动数据使用固定 TTL
sudo mu300-ttl off # 恢复默认
mu300-toolkit(网络 > TTL)和控制面板里也能设。在主线内核上,这条规则放在 tc 里,流量卸载保持开启;在 5.4 上它放在 nftables 里,设了 TTL 期间流量卸载会关闭。开启前请先确认运营商条款和当地法律。
Wi-Fi 热点
设备会发出自己的 Wi-Fi 网络,5 GHz(802.11ac)或 2.4 GHz,同一时间只能用一个。除非安装时另选,它的名称和密码与 Android 下一样,手机照旧能连。
| 系统 | 修改名称或密码 |
|---|---|
| Ubuntu | 编辑 /etc/mu300/hotspot.conf,然后重启服务(如下) |
| OpenWrt | LuCI:网络 > 无线(那个文件只在第一次启动时读取一次) |
sudo nano /etc/mu300/hotspot.conf # SSID=、PSK=、BAND=5 或 2.4、CHANNEL=auto、COUNTRY=
sudo systemctl restart mu300-hotspot
在 5 GHz 上,热点使用 36-48 或 149-165 信道,从不使用 DFS 信道(52-144):Wi-Fi 驱动无法检测雷达,所以在文件或 LuCI 中选择的 DFS 信道会被换成 36 信道(不允许 36-48 的国家用 149),日志里会写明原因(从 v2026.10.20 起;之前的版本在这种信道上热点根本起不来)。
如果 Wi-Fi 芯片的固件崩溃,驱动会重置芯片,Wi-Fi 自己就会恢复,无论是热点还是连接其他网络的客户端:测试中在 6.18 和 7.2 上 15 到 20 秒就回来了。如果 70 秒内芯片重置不成功,设备会干净地重启,而不是卡死。
Wi-Fi 客户端
Wi-Fi 也可以不当热点,而是连上别的网络,比如酒店或家里的 Wi-Fi。设备自己用这个网络上网,并分享给 USB 上的设备。两者只能选其一:Wi-Fi 芯片同一时间只能干一件事。
sudo wifi-client scan # 附近的网络
sudo wifi-client connect "NAME" # 会询问密码;输入时不显示
sudo wifi-client status
sudo wifi-client disconnect # 热点回来,重启后也保持
- 也可以用菜单:
sudo mu300-toolkit> Network > Wi-Fi > “Join a network”。 - 等它问的时候再输密码,不要写在命令行上:
sudo会把整条命令记进系统日志。 - Wi-Fi 当客户端还是当热点,是开机时决定的。它正在当热点时,
connect会先保存网络,再请你重启。 - WPA2 和 WPA2/WPA3 混合模式的网络能连;只有 WPA3 的网络不行(这个 Wi-Fi 驱动没有 SAE)。把路由器设成混合模式就能连上。
- USB 上的设备通过这个网络只能上互联网,碰不到那个网络里的其他设备和路由器;设备自己的服务(包括 SSH)也不对那个网络开放。请通过 USB 访问设备。
- Wi-Fi 和移动数据都连着时,走 Wi-Fi,SIM 卡闲着。
USB 网络和串口控制台
插到电脑上,设备会显示成一块网卡,电脑从它那里拿到地址。设备自己的地址在 F50 上是 192.168.77.1,在 U30 Air 上是 192.168.78.1,所以两种各一台可以插在同一台电脑上。两台同型号的需要用 /etc/mu300/lan.conf 区分。
USB 网络模式是 NCM(ECM 作为后备);控制面板可以把它切换成 RNDIS,下次开机生效。同一根线上还有一个串口控制台(ttyGS0),网络不通时也能登录:Mac 上用 screen /dev/cu.usbmodem* 115200。SSH 和 telnet 都开着。
短信和 USSD
读取、发送和删除 SIM 卡上的短信,发送 USSD 代码,比如查余额或者查本机号码的那种。
sudo sms list
sudo sms send NUMBER TEXT...
sudo sms delete INDEX # 只接受序号、read 或 all;其他内容在到达基带之前就会被拒绝
sudo mu300-ussd '*101#' # USSD 代码,比如查余额
装了网页面板扩展的 Ubuntu 上,Cockpit 里的 MU300 页面也能读、发、删短信。在带控制面板的 OpenWrt 上,短信在“蜂窝 > 短信”里。这个系统每 30 秒同步一次 SIM 卡,这会把 SIM 卡上的未读短信标成已读;面板自己记录未读状态。不要在那个系统上运行 sms delete read。短信只有在副本安全写到磁盘之后才会从 SIM 卡上删掉,所以断电也不会丢;长短信如果其余部分一直没到,一小时后会把收到的部分标为不完整显示出来。
短信转发
在带控制面板的 OpenWrt 上,“蜂窝 > 短信转发”(SMS forwarding)会把收到的短信转出去:转给 webhook(JSON 或表单)、Telegram 聊天,或者用短信转给另一部手机。默认关闭,打开后才生效。每个目标都有模板({sender}、{time}、{text}、{device}),并可以按发件人和关键词过滤。页面上有“发送测试”(Send test)按钮和投递日志;投递失败会以越来越长的间隔重试。令牌、密码和 webhook 地址保存在只有 root 能读的 /etc/mu300/sms-forward.conf 里,绝不会出现在日志中。邮件转发需要 msmtp,而镜像里没有它,所以这个目标保持关闭。
VPN
VPN 会把流量通过加密隧道送到你选的服务器。这里它覆盖设备自己的流量,以及 Wi-Fi 和 USB 上所有设备的流量,并带断网保护(kill switch):隧道断了,什么都出不去。
它是一个可选模块,mu300-linux-vpn,在设备上安装(或者在安装程序问到时选上),更新后也会保留。它能保存多种配置:
- WireGuard
.conf(需要主线内核)、OpenVPN.ovpn, - VLESS、VMess、Trojan 或 Shadowsocks 分享链接,
- Clash/mihomo YAML(需加装
vpn-mihomo),或者原始的 Xray、sing-box JSON, - 给 dae 用的 hysteria2 或 TUIC 链接、dae 配置(需加装
vpn-dae;要 v2026.10.20 或更新的 6.18/7.2 内核)。
sudo mu300-extra install vpn # 模块的最新版本,按其 SHA256SUMS 校验;核心和 Xray
sudo mu300-vpn engine install sing-box # 每个引擎都是一个扩展:xray、sing-box、mihomo、dae
sudo mu300-vpn profile import ~/office.conf Office # WireGuard .conf、.ovpn、YAML 或 JSON 文件
sudo mu300-vpn profile import 'vless://...' # 或者分享链接
sudo mu300-vpn on
mu300-vpn status
Tailscale 的流量也走隧道。如果 VPN 开着断网保护而模块不见了,设备会保持封闭:移动数据和 Wi-Fi 客户端一直断开,直到重新装上模块或关掉 VPN。配置、设置和安全模型见模块的 README(英文)。有些运营商会丢弃 UDP、封锁 OpenVPN。
模块 v2.0.0(随 v2026.10.20)把它拆成核心和引擎扩展(更新时作为一组一起带上),加入了订阅(服务商给的一个 URL,能生成配置,可按计划刷新)和 IPv6 防护:隧道不带 IPv6 时,IPv6 会在隧道旁边被挡住,而不是绕过断网保护泄漏出去。在带控制面板的 OpenWrt 上,这些都在面板的 VPN 菜单里:概览、配置、订阅、引擎、设置和日志。
工具箱菜单
mu300-toolkit 是一个类似树莓派 raspi-config 的菜单:温度、CPU 和内存占用、网速、性能模式、压力测试、Wi-Fi、VPN、服务和软件更新,不用记任何命令。
sudo mu300-toolkit # 菜单
mu300-toolkit top # 温度、CPU、内存、网速
sudo mu300-toolkit profile performance # 还有 eco、balanced
sudo mu300-toolkit stress all 10 # 满载稳定性测试
可选组件叫作扩展(extras):
mu300-extra list
sudo mu300-extra install lang # 更多网页界面语言(OpenWrt)
sudo mu300-extra remove vpn
电池、电源和指示灯
状态指示灯的含义和 ZTE 原厂固件下一样:
| 指示灯 | F50 / MU300 | U30 Air |
|---|---|---|
| 网络 | 蓝色:4G,白色:5G,红色:无服务 | 蓝色:4G,白色:5G,红色:无服务 |
| Wi-Fi | 热点开着时亮 | 白色:2.4 GHz,蓝色:5 GHz |
| 电池 | - | 白色:Linux 已启动 |
| 过热报警 | 网络灯轮流闪红、白、蓝:芯片到了 85 °C | 电池灯轮流闪红、白、蓝:芯片到了 85 °C 或电池到了 50 °C |
sudo mu300-led test # 看看哪个灯是哪个
在 U30 Air 上,mu300-power 帮你省电:电源模式(plugged、battery、saver 或 auto)、没人连接时让无线进入空闲,以及 0 到 100 % 的充电上限(从 v2026.10.20 起;之前只有 80 %):充到上限就停,低于上限 5 个点再继续,电池永远不会被压在 5 % 以下。主线内核上,充电电路现在还会读取 Type-C 口提供的电流,所以 1.5 A 或 3 A 的口能以最高 2 A 充电,而不是 500 mA。在带控制面板的 OpenWrt 上,这就是“系统 > 电源”(System > Power)页面。
mu300-power status
sudo mu300-power charge-limit 80 # 0-100;100 = 不限制
sudo mu300-power profile battery # plugged、battery、saver 或 auto
sudo mu300-power set battery.WIFI_IDLE 10
CPU 模式
三种模式决定处理器最快能跑多快:saving(省电,核心频率限制在最高的约 60 %:更凉、更省电)、balanced(均衡,默认,原厂行为)和 performance(性能,所有核心簇都跑在最高频率)。它们从不改电压,而且无论哪种模式,过热保护始终说了算。控制面板上是“系统 > CPU”。
mu300-cpu status
sudo mu300-cpu profile saving # 或 balanced(默认)、performance
如果是插上充电器才开的机,这次开机会一直处于充电状态(指示灯闪烁,热点和基带关闭),直到你按下 Wi-Fi 键。
U30 Air 的额外功能
| 作用 | |
|---|---|
| 电池 | 电量、电压、电流、温度和充电状态,在 mu300-toolkit、控制面板和 /sys/class/power_supply 里都能看到,三个内核都支持。充电:5.4 上由厂商充电驱动负责,6.18 和 7.2 上从 v2026.10.12 起由 bq256xx 驱动负责;从 v2026.10.20 起有 0-100 % 的充电上限和 Type-C 充电电流 |
| 按键 | 电源键:短按唤醒指示灯(60 秒后熄灭),长按 3 秒关机。Wi-Fi 键:在 2.4 和 5 GHz 之间切换热点,长按 3 秒开关热点 |
| NFC | 手机贴一下设备就能连上热点,和 ZTE 原厂固件一样 |
| USB 主机 | 主线内核上接 OTG 转接头:U 盘(FAT、exFAT)、键盘鼠标、USB 上网卡和以太网转接器 |
sudo mu300-nfc # 显示标签内容
sudo mu300-nfc wifi # 写入热点名称和密码
sudo mu300-usb host # U30 Air,主线内核:接 OTG 转接头,由电池供 5 V
sudo mu300-usb device # 切回连接电脑(每次开机的默认状态)
F50 的 USB 口就是它的电源,所以没有 USB 主机模式;长按电源键 3 秒关机。
网页面板、浏览器里的终端、adb
带控制面板的 OpenWrt(openwrt-luci)有 MU300 页面:状态看板(信号、频段、小区、温度、带速率的 Wi-Fi 客户端、电池)、网络锁定、短信和短信转发、流量统计、AT 终端、TTL 和 USB 模式;从 v2026.10.20 起还有 VPN 菜单(概览、配置、订阅、引擎、设置、日志)、系统 > 终端(浏览器里的 root shell,只在局域网上,只为你已登录的面板会话打开,闲置 15 分钟关闭)和系统 > 更新后的软件包(Packages after an update)。面板也不会再因为一条 AT 命令卡住而冻结;OpenWrt 上一条 AT 命令现在只要 0.13 秒,而不是一秒。见控制面板多了什么。
Ubuntu 从 v2026.10.20 起也可以有网页面板:Cockpit,Ubuntu 自己的网页控制台(终端、日志、服务、网络、存储、账户),里面加了一个 MU300 页面:移动网络、移动数据和流量、短信、VPN、电源和 CPU、热点和 Wi-Fi 客户端、更新。它是 panel 扩展,不在镜像里,只在局域网上,地址 https://192.168.77.1:9090(U30 Air:.78.1);用 ubuntu 登录。选 Ubuntu 时安装程序会问。
sudo mu300-extra install panel # Cockpit 来自 Ubuntu 的软件源(约 12 MB)
sudo mu300-extra install panel --from mu300-extra-panel-offline.tar.gz # 离线,用发布版里的文件
对 Linux 用 adb。从 v2026.10.20 起,Linux 也能像 Android 一样通过 USB 线提供 adb shell、push、pull 和 forward。它默认关闭,只有你授权过密钥的电脑才能进来;持有授权密钥的任何人都会得到 root shell,所以只授权你自己的电脑。安装程序会问要不要为它所在的电脑打开。
sudo mu300-usb adb key adbkey.pub # 电脑上的 ~/.android/adbkey.pub,复制到设备上
sudo mu300-usb adb on # 关闭:sudo mu300-usb adb off
蓝牙、GPU、KVM、语言
- 蓝牙:BlueZ;扫描可用。
- GPU:Mali-G57 支持 OpenCL 3.0,没有屏幕输出。
- KVM:三个内核都有
/dev/kvm,可以跑虚拟机。 - 内存:约 1.4 GB 可用,另外还有内存压缩交换(zram)。
- 网页界面语言(OpenWrt):自带英语、土耳其语和简体中文;装上
lang扩展,LuCI 再多 40 种,控制面板再多 29 种。在“系统 > 系统 > 语言和界面”里切换,控制面板上是“系统 > 语言”(Languages)。面板的其他译文是机器翻译,欢迎指正。
不能用的东西
- 屏幕输出USB-C 转 HDMI:USB-C 电源芯片从不应答。
- 声音主板上没有扬声器和麦克风;通过基带的通话音频仍在开发中,没有放进发布版本。
- 只有 WPA3 的 Wi-FiWi-Fi 驱动没有 SAE;WPA2/WPA3 混合模式可以。
- 热点和客户端同时开Wi-Fi 同一时间只能做一件事。
- 监听模式Wi-Fi 芯片只支持客户端和热点模式。
- GPS设备没有 GPS,所以网站只能靠 IP 地址猜你的位置。
完整的列表见 README 的“什么能用,什么不能用”(英文)。