资讯动态

Ubuntu移动网卡上网配置全指南:QMI与PPP模式实战

发布时间:2026/10/13 18:29:26 来源:尧图企业网站定制
1. 为什么Ubuntu下移动网卡“插上就用”反而最不靠谱“移动网卡在Ubuntu下面上网设置”——这个标题看似简单实则藏着一个被无数新手反复踩中的认知陷阱把USB移动网卡当成U盘或即插即用的蓝牙设备来对待。我见过太多人尤其是从Windows转过来的用户习惯性地把4G/5G USB网卡比如华为E3372、中兴MF831、移远EC20这类常见型号往Ubuntu主机一插盯着右上角网络图标等它自动弹出连接提示结果等了三分钟图标纹丝不动连“移动宽带”四个字都没冒出来。更有人直接打开浏览器试访问发现打不开任何网页第一反应是“Ubuntu不支持”继而怀疑系统坏了、驱动没装、甚至重装系统。这其实完全不是Ubuntu的问题而是对Linux网络栈底层逻辑的误判。Windows之所以能“插上就用”是因为它内置了完整的、厂商预签名的NDIS驱动封装层还有一套叫“Connection Manager”的图形化拨号服务它会主动扫描USB设备描述符识别出这是个CDC ACM类的调制解调器然后自动加载驱动、创建/dev/ttyUSB0节点、启动PPP守护进程、填好APN参数、拨号上线——整套流程对用户完全透明。Ubuntu没有这套“保姆级”封装。它只提供标准的Linux内核模块如cdc_ether、option、qmi_wwan和基础网络工具链modemmanager、NetworkManager、ppp但谁来触发拨号APN参数写在哪认证方式选PAP还是CHAPIP地址怎么获取DNS怎么配置这些决策权交给了用户或上层服务。换句话说Ubuntu给你的是扳手、螺丝刀和电路图而不是已经组装好的遥控器。这就引出了第一个关键分水岭你的移动网卡到底是走PPP拨号模式还是走QMI/RMNET直连模式这决定了你后续所有操作的路径。前者依赖传统的pppd和wvdial后者则需要ModemManagerqmiclinmcli这一套现代工具链。而绝大多数新出厂的4G/5G网卡默认固件都已强制切换到QMI模式因为它的吞吐效率更高、延迟更低、支持LTE-A载波聚合。但问题在于很多用户根本不知道自己的网卡已经被“静默升级”了还在网上搜“wvdial配置教程”结果死活连不上——因为wvdial压根不认QMI接口。提示别急着查驱动。先确认你的网卡物理形态。如果它插上后系统日志里出现usb 1-1: Product: HUAWEI_MOBILE或类似字样并且lsusb输出里Vendor ID是12d1华为、19d2中兴、2c7c移远那基本可以确定是标准的4G/5G USB网卡。但仅凭这个还无法判断它当前工作在什么协议模式。我建议你立刻打开终端执行以下三步诊断命令这是所有后续操作的起点# 第一步看USB设备是否被识别 lsusb | grep -i huawei\|zte\|quectel\|simcom # 第二步看内核是否加载了对应驱动重点看ttyUSB*或cdc-wdm dmesg | tail -20 | grep -i usb\|cdc\|qmi\|option # 第三步看ModemManager是否检测到了调制解调器 mmcli -L如果mmcli -L返回空或者报错No modems found那说明你的网卡要么没被正确识别为调制解调器要么驱动加载失败要么ModemManager服务根本没运行。这时候再往下折腾nmcli connection add就是无用功。反之如果它返回类似/org/freedesktop/ModemManager1/Modem/0的路径恭喜你已经站在了QMI模式的大门内接下来要做的是给这扇门配一把正确的钥匙——APN、PIN码、拨号指令。这个诊断过程我称之为“Linux网络设备的三问法”它在不在它认不认识它知不知道自己是谁跳过这三步直接抄网上的配置文件90%的概率会失败。因为网上的教程往往默认你用的是某款特定型号、某个固件版本、某个Ubuntu发行版而现实中的组合几乎是无限的。我的经验是永远先让系统“说话”再让教程“指挥”。你看到的每一行dmesg输出、每一个mmcli返回值都是设备在向你传递它的真实状态比任何二手教程都可靠。2. 驱动与固件内核模块的加载逻辑与手动干预时机当你的移动网卡插入Ubuntu主机内核并不会“凭空”知道该加载哪个驱动。它依靠一套精密的匹配机制USB设备在插入时会向主机报告自己的Vendor ID厂商ID和Product ID产品ID这两个十六进制数字就像设备的身份证号。内核里预置了成百上千个这样的ID对每个都关联着一个驱动模块。比如华为E3372的典型ID是12d1:1506内核看到这个组合就会尝试加载option模块而中兴MF831的ID可能是19d2:1405同样匹配option。但事情没那么简单。2.1 为什么lsusb能看到设备dmesg却没反应这是新手遇到的第一个“幽灵问题”。你执行lsusb清清楚楚看到Bus 001 Device 005: ID 12d1:1506 Huawei Technologies Co., Ltd. Modem/Networkcard但紧接着dmesg | tail却一片空白没有任何关于usb、cdc、option的关键词。这意味着内核压根没把它当做一个可驱动的设备来处理。原因通常只有一个设备当前处于“存储模式”Storage Mode而非“调制解调器模式”Modem Mode。很多USB网卡出厂时固件会伪装成一个U盘里面放着Windows驱动安装程序。这样做的好处是Windows用户双击就能装驱动不用管什么驱动签名。但对Linux来说这就是个麻烦——它只看到一个Mass Storage设备于是加载usb-storage驱动创建/dev/sdb而不会去碰option或qmi_wwan。解决方法是向设备发送一条特殊的USB控制指令让它“切换模式”。这个过程叫USB_ModeSwitch。Ubuntu的usb-modeswitch包就是干这个的。它内部维护了一个庞大的数据库/usr/share/usb-modeswitch/记录了成千上万个设备ID对应的切换指令。当你安装usb-modeswitch后它会通过udev规则在设备插入时自动触发切换。但自动切换并非万能。有时设备的固件太老或者切换指令不匹配自动切换就会失败。这时你就得手动干预。以华为E3372为例手动切换的命令是# 先卸载可能存在的存储驱动避免冲突 sudo modprobe -r usb_storage # 发送切换指令向设备001:005发送特定的控制传输 sudo usb_modeswitch -v 12d1 -p 1506 -M 55534243123456780000000000000011062000000100000000000000000000这条命令里的-M参数后面那一长串十六进制就是切换指令的“密码”。它告诉设备“别当U盘了快切回Modem模式” 执行后再看dmesg你应该能看到类似这样的输出usb 1-1: new high-speed USB device number 6 using xhci_hcd usb 1-1: New USB device found, idVendor12d1, idProduct14db usb 1-1: Product: HUAWEI_MOBILE option 1-1:1.0: GSM modem (1-port) converter detected usb-serial 1-1:1.0: device disconnected option 1-1:1.2: GSM modem (1-port) converter detected usbserial 1-1:1.2: device disconnected cdc_ether 1-1:1.0 usb0: register cdc_ether at usb-0000:00:14.0-1, CDC Ethernet Device, 00:1e:10:1f:00:00注意看idProduct从1506变成了14db这正是切换成功的标志同时option模块被加载cdc_ether也出现了意味着网卡现在被识别为一个以太网设备可以直接分配IP了。注意usb_modeswitch命令里的-v和-p必须严格对应你设备当前的Vendor ID和Product ID这个ID在切换前后会变。所以务必在执行前用lsusb确认当前ID。如果ID不对指令发出去设备只会沉默。2.2option、qmi_wwan、cdc_ether三个模块的分工与冲突一旦设备成功切换内核会根据其USB描述符决定加载哪个模块。这里有个关键点同一个物理设备可能被多个模块“争抢”。比如一个支持QMI协议的网卡它的USB描述符里可能同时声明了CDC ACM串口和QMI无线管理两个接口。此时option模块会抢着加载/dev/ttyUSB0而qmi_wwan模块则想接管/dev/cdc-wdm0。如果option先加载qmi_wwan就会失败反之亦然。如何查看当前哪个模块在“掌权”用这条命令ls -l /sys/bus/usb/drivers/*/1-*它会列出所有USB驱动option、qmi_wwan、cdc_ether等对设备1-*的绑定情况。如果看到option - 1-1:1.0而你想用QMI那就得先解绑optionecho 1-1:1.0 | sudo tee /sys/bus/usb/drivers/option/unbind然后再手动绑定qmi_wwanecho 1-1:1.0 | sudo tee /sys/bus/usb/drivers/qmi_wwan/bind这个过程听起来很“黑客”但它是Linux世界里最正统的设备管理方式。Windows里你点几下鼠标就能搞定的事在Linux里你需要理解背后的驱动模型。这不是繁琐而是透明。它让你清楚地知道每一步操作都在改变系统的哪一部分状态。2.3 固件Firmware缺失那个看不见的“驱动补丁”有时候即使lsusb和dmesg都一切正常mmcli -L依然找不到调制解调器。这时问题可能出在固件上。固件Firmware是烧录在网卡芯片内部的一小段程序它负责硬件最底层的初始化和通信协议解析。某些较新的4G/5G网卡尤其是高通MDM9x07系列其固件并不包含在Linux内核源码树中需要单独安装。Ubuntu的linux-firmware包就是专门干这个的。它包含了数千个设备所需的固件二进制文件存放在/lib/firmware/目录下。如果你的网卡型号比较新而你的Ubuntu版本又比较旧比如18.04那么linux-firmware包里很可能没有它的固件。结果就是内核虽然能识别设备但无法完成初始化qmi_wwan模块加载后/dev/cdc-wdm0节点根本不会出现。检查方法很简单# 查看内核日志里是否有firmware相关的错误 dmesg | grep -i firmware # 检查/lib/firmware/下有没有对应网卡的固件文件 ls /lib/firmware | grep -i qca\|mdm\|qc8k如果dmesg里有firmware: failed to load ...的报错且/lib/firmware/下确实没有相关文件那你就需要手动更新固件。最稳妥的方式是升级整个linux-firmware包sudo apt update sudo apt install --reinstall linux-firmware对于极少数特别新的网卡官方包可能还没收录这时你可以去Linux固件的上游仓库https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/下载最新版解压后复制到/lib/firmware/再重启。记住固件不是驱动它不涉及内核编译只是往一个固定目录里放文件。所以这个操作风险极低但效果立竿见影。3. QMI模式实战用mmcli和nmcli完成从零到上网的全流程当mmcli -L终于返回了你的调制解调器路径比如/org/freedesktop/ModemManager1/Modem/0你就正式进入了QMI模式的主战场。QMIQualcomm MSM Interface是高通系芯片的标准通信协议它比古老的PPP拨号更高效、更稳定支持丰富的网络管理功能比如信号强度查询、SIM卡状态读取、数据用量统计等。而ModemManager简称MM就是Linux世界里专为QMI设备打造的“管家”。3.1mmcli调制解调器的“B超机”先看清再动手mmcli是ModemManager的命令行客户端它的核心价值不是帮你联网而是帮你诊断。它像一台B超机能穿透外壳看到网卡内部的实时状态。在你执行任何连接操作前必须用它做一次全面体检。第一步获取调制解调器的详细信息mmcli -m 0这条命令会输出一个长长的JSON结构其中最关键的几个字段是status.state: 当前状态。connected表示已连上registered表示已注册到基站但未激活数据业务failed表示失败。status.signal-quality: 信号质量格式为[rssi, ber]rssi值越接近0越好比如[-75, 0]比[-105, 0]强得多。sim: SIM卡对象的路径比如/org/freedesktop/ModemManager1/SIM/0。bearers: 当前激活的数据承载Bearer列表空表示没连。第二步检查SIM卡状态mmcli -i 0这会告诉你SIM卡是否被识别、是否需要PIN码、是否被锁、运营商名称operator-name是什么。如果pin-status显示locked那你必须先解锁mmcli -i 0 --pin1234这里的1234是你SIM卡的PIN码。如果输错三次SIM卡会被永久锁定需要PUK码所以务必谨慎。第三步查询可用的APN列表如果网卡支持mmcli -m 0 --3gpp-get-operator-name mmcli -m 0 --3gpp-get-apn-list有些智能网卡如华为B525会内置常用运营商的APN--3gpp-get-apn-list能直接拉出来。但大多数廉价USB网卡不支持返回空。这时你就得自己准备APN了。提示国内三大运营商的通用APN如下请以你实际办理的套餐为准中国移动cmnet或cmiot中国联通3gnet或uninet中国电信ctnet或ctlte如果不确定可以先用cmnet或3gnet试试。APN错了mmcli会明确报错Failed to connect: Connection failed.3.2 创建并激活BearerQMI连接的“临门一脚”在QMI世界里“连接上网”这个动作被拆解为两个独立步骤创建Bearer承载和激活Bearer。Bearer可以理解为一条虚拟的、通往互联网的专用隧道。创建它相当于向网卡申请一个“上网资格证”激活它则是拿着这张证去基站“打卡上班”。创建Bearer的命令是mmcli -m 0 --bearer-createapncmnet,ip-typeipv4执行后mmcli会返回一个新Bearer的路径比如/org/freedesktop/ModemManager1/Bearer/1。记下这个数字1它就是你的Bearer ID。然后用这个ID去激活它mmcli -b 1 --connect如果一切顺利你会看到state: connected并且ip-config字段里会显示出分配到的IPv4地址、子网掩码、网关和DNS服务器。至此你的网卡已经成功接入互联网但此时这个连接还只是“裸连”——它没有被系统网络栈接管你无法用ping或浏览器访问。3.3 让NetworkManager接管从“裸连”到“系统级上网”ModemManager只负责和硬件打交道真正的网络路由、DNS解析、DHCP租约管理是由NetworkManagerNM来完成的。所以最后一步是把mmcli创建的这个Bearer桥接到NM的网络连接里。这一步nmcli登场。首先创建一个新的移动宽带连接配置nmcli connection add type gsm con-name My4G ifname * apn cmnet user none password none pin 1234解释一下参数con-name My4G给这个连接起个名字方便后续管理。ifname *表示不限定网卡接口名NM会自动匹配。apn cmnet填入你的APN。user none和password none4G/5G上网通常不需要用户名密码填none即可。pin 1234如果你的SIM卡设置了PIN这里必须填。创建完成后NM会自动生成一个UUID并把它加入连接列表。你可以用nmcli connection show查看。最后启用这个连接nmcli connection up My4G如果成功你会看到Connection successfully activated并且nmcli device status里gsm设备的状态会变成connected。此时打开浏览器访问任意网站应该都能正常打开了。经验之谈我曾经在一个项目里反复nmcli connection up失败nmcli device status一直显示unavailable。排查了两个小时最后发现是ModemManager服务被我之前调试时systemctl stop ModemManager停掉了忘了重启。nmcli的移动宽带类型严重依赖ModemManager提供的D-Bus接口。所以每次调试前务必确认systemctl is-active ModemManager systemctl is-active NetworkManager两者都必须是active (running)。4. PPP拨号模式当QMI失效时的“复古”救生艇尽管QMI是主流但仍有相当一部分老旧的3G USB网卡如华为E173、中兴MF190或者某些特殊定制固件的网卡只支持传统的PPPPoint-to-Point Protocol拨号。它们没有QMI接口只能通过/dev/ttyUSB0这样的串口发送AT指令来拨号。这种模式虽然古老但在QMI失效时是一条非常可靠的“复古”救生艇。4.1 确认设备进入PPP模式wvdialconf的魔法PPP模式的核心是让网卡暴露一个串口设备通常是/dev/ttyUSB0、/dev/ttyUSB1等然后用pppdPPP守护进程通过这个串口与网卡进行AT指令交互。第一步就是确认这个串口是否存在。最简单的方法是使用wvdialconf工具。它是一个“PPP设备探测器”能自动扫描所有/dev/ttyUSB*设备并尝试发送AT指令来确认哪个是真正的调制解调器。sudo apt install wvdial sudo wvdialconf执行后wvdialconf会输出类似这样的内容Scanning your serial ports for a modem. ... Found a modem on /dev/ttyUSB0. Modem configuration written to /etc/wvdial.conf. ...它不仅找到了设备还会自动生成一个基础的/etc/wvdial.conf配置文件。打开这个文件你会看到它已经填好了/dev/ttyUSB0和波特率Baud 460800。但APN、用户名、密码这些关键信息它无法猜出需要你手动补充。4.2 手工编写wvdial.conf一份不能出错的“拨号说明书”/etc/wvdial.conf是一个INI风格的配置文件结构清晰。一个典型的、适用于中国移动的配置如下[Dialer Defaults] Init1 ATZ Init2 ATQ0 V1 E1 S00 C1 D2 FCLASS0 Init3 ATCGDCONT1,IP,cmnet Modem Type Analog Modem Baud 460800 New PPPD yes Modem /dev/ttyUSB0 ISDN 0 Phone *99# Password Username Stupid Mode 1逐行解释[Dialer Defaults]这是默认拨号器的节名所有拨号都会继承这里的设置。Init1,Init2,Init3这是三条初始化AT指令。ATZ是复位命令ATQ0 V1 E1...是一系列标准设置Init3最关键它设置了PDP上下文cmnet就是APN。Phone *99#这是拨号号码。所有4G/3G网卡都用这个通用号码它告诉基站“我要建立一个数据连接”。Password和Username留空因为4G/3G上网不需要。Stupid Mode 1这是wvdial的一个重要开关。开启后它会忽略网卡返回的任何“非标准”响应只认CONNECT。很多网卡固件返回的响应格式不规范不开这个wvdial会认为拨号失败。注意Modem /dev/ttyUSB0这一行必须和wvdialconf探测到的设备名完全一致。如果wvdialconf说它在/dev/ttyUSB1那你这里就必须改过去。否则wvdial会对着一个不存在的设备狂按“拨号键”自然连不上。4.3 启动wvdial一次性的拨号与后台守护配置好/etc/wvdial.conf后就可以拨号了。最简单的命令是sudo wvdial它会读取默认的[Dialer Defaults]节依次发送Init指令然后拨*99#等待网卡返回CONNECT最后启动pppd建立PPP连接。如果成功你会看到屏幕上滚动着Connected.、Using interface ppp0、local IP address 10.100.10.10等信息。但wvdial默认是前台运行的一旦你CtrlC退出连接就断了。要让它在后台持续运行加一个-C参数sudo wvdial -C /etc/wvdial.conf或者更推荐的方式是用systemd把它做成一个服务实现开机自启。创建一个服务文件/etc/systemd/system/wvdial.service[Unit] DescriptionWVDial PPP Dialer Aftermulti-user.target [Service] Typesimple ExecStart/usr/bin/wvdial Restarton-failure RestartSec10 [Install] WantedBymulti-user.target然后启用它sudo systemctl daemon-reload sudo systemctl enable wvdial.service sudo systemctl start wvdial.service这样wvdial就会作为一个守护进程在后台默默为你维持着网络连接。踩坑心得我在某次现场部署中发现wvdial拨号后ifconfig里确实出现了ppp0但ping外网不通。抓包发现ppp0的MTU最大传输单元被设成了1500而4G网络的实际MTU通常是1492。ppp0的包太大被运营商的网关直接丢弃了。解决方案是在/etc/wvdial.conf的[Dialer Defaults]节里加上一行MTU 1492这个细节90%的教程都不会提但它却是决定连接是否“真通”的关键一环。5. 故障排查全景图从“连不上”到“连上了但上不了网”的完整链路在Ubuntu下配置移动网卡最大的挑战从来不是“怎么配”而是“为什么配不好”。网络问题的根源往往藏在层层叠叠的抽象之下物理层、驱动层、协议层、服务层、应用层。一个ping不通可能的原因有几十种。下面我将基于十年一线排障经验为你梳理出一条从现象到根因的完整排查链路覆盖最常见的95%故障场景。5.1 现象lsusb看不到设备 → 物理层与供电问题这是最底层的失败。如果lsusb命令的输出里压根没有你的网卡那问题一定出在物理连接上。USB端口供电不足这是USB 3G/4G网卡的头号杀手。尤其是那些带LED灯、带散热片的“高性能”网卡功耗可能高达2W。而很多笔记本的USB 2.0口供电上限只有0.5A2.5W看似够用但实际在信号搜索、数据上传时瞬时功耗会飙升。表现就是插上后LED灯闪烁几下就灭了lsusb无反应。解决方案换到台式机的主板后置USB口供电最稳或使用带外接电源的USB集线器。USB线缆质量问题很多网卡附赠的USB线为了成本屏蔽做得极差。在Ubuntu下这种线会导致USB枚举失败。换一根短一点、粗一点、带磁环的优质USB线问题常迎刃而解。USB控制器兼容性极少数情况下某些老旧的Intel USB 3.0控制器如XHCI 1.0与新网卡的固件存在握手协议不兼容。此时dmesg里会出现xhci_hcd 0000:00:14.0: Timeout while waiting for setup packet之类的错误。终极方案在BIOS里将USB控制器模式从XHCI切换为EHCIOHCI即降级为USB 2.0模式。5.2 现象lsusb能看到dmesg无反应 → 模式切换与驱动冲突如前所述这几乎100%是“存储模式”未切换。但还有一个容易被忽略的点USB设备的“多配置”Multiple Configurations。有些网卡的固件提供了多个USB配置比如配置0是存储模式配置1是调制解调器模式。usb_modeswitch默认只切换到配置1但如果网卡的固件把调制解调器模式放在了配置2那它就失败了。此时你需要手动指定配置sudo usb_modeswitch -v 12d1 -p 1506 -c 2-c 2参数就是强制切换到配置2。这个配置号需要你去查网卡的官方文档或者用lsusb -v命令自己去数。5.3 现象mmcli -L找不到调制解调器 → ModemManager服务与权限如果dmesg里能看到qmi_wwan或option加载成功/dev/cdc-wdm0或/dev/ttyUSB0也存在但mmcli -L就是空那问题大概率出在ModemManager服务本身。服务未运行sudo systemctl status ModemManager看状态是不是active (running)。如果不是sudo systemctl start ModemManager。D-Bus权限问题ModemManager通过D-Bus与mmcli通信。如果D-Bus总线异常mmcli就无法连接。重启D-Bussudo systemctl restart dbus。用户组权限ModemManager默认只允许dialout组的用户访问。确保你的用户在该组里sudo usermod -a -G dialout $USER然后重新登录组权限变更需要重启会话。5.4 现象mmcli -b 1 --connect失败报错Failed to connect→ APN与网络侧问题这是最让人抓狂的阶段。mmcli明明识别了设备也创建了Bearer但一激活就失败。APN拼写错误这是最高频的原因。cmnet写成cmnet.com3gnet写成3g-net都会失败。务必一字不差。SIM卡欠费或停机mmcli -i 0里operator-name为空或者registration-state是idle那基本可以确定是SIM卡问题。换一张卡测试。基站信号极弱mmcli -m 0里的signal-quality如果显示[-110, 99]说明信号已经接近极限。换个位置或者换个时间避开网络高峰再试。运营商限制某些物联网卡、企业专网卡会绑定IMEI或IMSI只允许在特定设备或特定APN下使用。普通消费者卡一般没这限制。5.5 现象nmcli connection up成功但ping不通外网 → 网络栈与路由问题这是“假连”状态。系统认为连上了但数据包根本发不出去。默认路由冲突如果你的电脑同时连着Wi-Fi和有线网系统可能把默认路由0.0.0.0/0指向了其他接口而不是你的4G网卡。用ip route show default查看。如果目标不是ppp0或wwan0那就得手动删掉旧的默认路由添加新的sudo ip route replace default via gateway_ip dev ppp0。DNS解析失败ping 8.8.8.8能通但ping google.com不通那就是DNS问题。检查/etc/resolv.conf确保里面有nameserver 8.8.8.8或运营商的DNS。nmcli通常会自动配置但如果它没配你可以手动加sudo nmcli connection modify My4G ipv4.dns 8.8.8.8,114.114.114.114。防火墙拦截ufwUncomplicated Firewall如果开启了可能会阻止ppp0或wwan0接口的流量。临时关闭测试sudo ufw disable。这张全景图不是为了让你背下来而是为了给你一个系统性的思考框架。下次再遇到“连不上”不要一头扎进某个教程里改配置而是先问自己lsusb看到了吗dmesg有驱动加载吗mmcli能找到设备吗mmcli能创建Bearer吗nmcli能激活连接吗pingIP通吗ping域名通吗沿着这条链路一级一级往下查95%的问题都能在10分钟内定位到根因。我在某高校的物联网实验室里曾指导一群学生调试一批华为B525网关。他们花了两天时间反复重装系统、更换驱动就是连不上。最后我只用了三分钟执行了mmcli -m 0发现operator-name是空的再执行mmcli -i 0发现pin-status是locked。原来这批网关的SIM卡出厂时默认启用了PIN锁而学生没人知道这个事。一个mmcli -i 0 --pin1234问题瞬间解决。技术的精妙之处往往不在复杂的配置而在对系统状态的精准洞察。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑