如何在Linux中设置自动联网 Linux系统开机自动联网的方法

2026-05-28电脑数码80579

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-scriptsls /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-usb0ifcfg-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 环境下不能只改配置文件

如果你的系统跑着 NetworkManagersystemctl is-active NetworkManager 返回 active),那 ifcfg-netplan 的改动大概率无效。

  • 查已有连接:nmcli connection show,找到对应有线或 4G 连接名(如 Wired connection 1quectel-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 前。

《如何在Linux中设置自动联网 Linux系统开机自动联网的方法.doc》

下载本文的Word格式文档,以方便收藏与打印。