Linux开机不联网主因是ONBOOT=no或网络管理工具冲突;CentOS/RHEL系需改/etc/sysconfig/network-scripts/ifcfg-中ONBOOT=yes并设NM_CONTROLLED=no,Ubuntu/Debian系则需在/netplan/.yaml中加optional:false,且EC25等4G模块须确保quectel-CM自启并早于NetworkManager启动。
Linux开机不联网,八成是ONBOOT没设对,或者网络管理工具之间互相打架。改一个参数就能解决的问题,没必要绕路写脚本或装额外服务。
确认当前用的是哪种网络管理方式
不同发行版底层机制不同,硬套命令会失败。先看系统在用谁:
- CentOS/RHEL 7 或更老版本、Rocky/AlmaLinux 默认走
network-scripts,配置文件在/etc/sysconfig/network-scripts/ifcfg-* - Ubuntu 18.04+、Debian 11+(包括你提到的 Debian EC25 场景)默认用
netplan,配置在/etc/netplan/*.yaml - 如果
systemctl status NetworkManager显示 active,且你用过nmcli或图形界面连过网,那它很可能正在接管——此时改ifcfg-或netplan都可能被覆盖
最直接的判断方式:ls /etc/sysconfig/network-scripts/ifcfg-* 有输出 → 看 network-scripts;ls /etc/netplan/*.yaml 有输出 → 看 netplan;两者都有?优先停掉 NetworkManager 或明确禁用其对有线/4G 接口的控制(否则改了也白改)。
network-scripts 下改 ONBOOT=yes 是最常见解法
适用于 CentOS/RHEL 系列、部分定制 Debian(比如你提到的 EC25 + quectel-CM 场景,只要没启 NetworkManager)。
Docker Desktop(linux)
当前 Docker 最新稳定版本之一,主要针对稳定性和兼容性进行了修复优化,适合生产环境与日常开发使用。该版本继续强化 AI 开发支持、容器日志管理以及 Docker Engine 的安全能力,对 Windows/macOS/Linux 平台兼容性进行了进一步优化。
下载
- 进配置目录:
cd /etc/sysconfig/network-scripts/ - 找对应接口文件:
ls ifcfg-*,4G 模块常见名是ifcfg-usb0或ifcfg-qmi0,不是usbnet0(那是内核设备名,配置文件名通常不带net) - 编辑文件:
sudo vim ifcfg-usb0,确保含这两行:ONBOOT=yes NM_CONTROLLED=no
-
NM_CONTROLLED=no很关键:它告诉 NetworkManager “别碰这个接口”,避免冲突 - 改完保存,重启网络:
sudo systemctl restart network(不是network-manager)
netplan 配置里必须显式启用 optional: false
Ubuntu/Debian 新系统里,光写 dhcp4: true 不够,netplan 默认把没声明依赖关系的接口视为“可选”,开机跳过激活。
- 编辑配置:
sudo nano /etc/netplan/01-network-manager-all.yaml(文件名依实际而定) - 在对应网卡段加
optional: false,例如:network: ethernets: usb0: dhcp4: true optional: false version: 2 - 应用配置:
sudo netplan apply - 注意:EC25 这类 4G 模块若用
quectel-CM拨号,usb0只是底层承载,真正拨号靠quectel-CM服务,此时要确保quectel-CM本身已设为开机自启(systemctl enable quectel-CM),而不是只靠网卡配置
NetworkManager 环境下不能只改配置文件
如果你的系统跑着 NetworkManager(systemctl is-active NetworkManager 返回 active),那 ifcfg- 和 netplan 的改动大概率无效。
- 查已有连接:
nmcli connection show,找到对应有线或 4G 连接名(如Wired connection 1或quectel-qmi-0) - 设为自动连接:
nmcli connection modify "Wired connection 1" connection.autoconnect yes - 确保接口没被禁用:
nmcli device set usb0 managed yes - 重启生效:
sudo systemctl restart NetworkManager - EC25 场景额外注意:
quectel-CM启动后会创建wwan0或类似接口,NetworkManager 默认不认这个类型,需手动添加连接:nmcli connection add type gsm ifname wwan0 con-name "EC25",再填 APN、用户名密码等
最易被忽略的一点:4G 模块的初始化顺序。quectel-CM 必须在 NetworkManager 启动前就跑起来,否则后者根本看不到设备。所以即便所有配置都对,也要检查 systemctl list-dependencies --reverse quectel-CM.service,确保它被正确挂到 multi-user.target 前。

