Linux新增lo:0网卡重启后失效?教你一招永久生效配置方案

XMSDN
本文解决了Linux系统新增lo:0网卡重启后失效的常见问题,通过提供详细的永久生效配置方案,指导用户修改网络配置文件,确保虚拟接口在系统重启后自动加载,该方法操作简单,能有效避免临时配置丢失,保障网络服务的持续稳定运行。

本文目录导读:

  1. 为什么重启后配置会丢失?
  2. 解决方案:将配置写入文件
  3. “暴力”通用方案:使用 /etc/rc.local

在Linux运维工作中,我们经常需要配置虚拟IP(VIP),特别是在部署LVS(Linux Virtual Server)、Keepalived或Nginx高可用集群时,通常会在本地回环接口(lo)上绑定一个虚拟网卡,lo:0

很多新手朋友会遇到这样的问题:使用 ifconfig 命令成功添加了 lo:0 网卡,IP地址也能ping通,但只要服务器一重启,配置就丢失了,导致服务起不来,为什么 lo:0 重启未生效?又该如何彻底解决呢?

Linux新增lo:0网卡重启后失效?教你一招永久生效配置方案

为什么重启后配置会丢失?

通常我们添加 lo:0 使用的是临时命令,

ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up

或者

ip addr add 192.168.1.100/32 dev lo

这类命令的特点是“即时生效,重启失效”,它们只是修改了内核中当前运行的网络栈参数,并没有将配置写入到系统的网络配置文件中,当Linux系统重启时,系统会重新读取硬盘上的配置文件来初始化网络服务,而之前临时敲的命令并没有被记录,自然 lo:0 也就消失了。

解决方案:将配置写入文件

要实现重启后自动生效,我们需要根据不同的Linux发行版,将网卡配置永久写入到对应的配置文件中,以下是最常见的两种环境(CentOS/RHEL 和 Ubuntu/Debian)的配置方法。

CentOS/RHEL 系统(7及以下版本,或使用network-scripts的系统)

在CentOS 6/7或部分RHEL版本中,网络配置文件存放在 /etc/sysconfig/network-scripts/ 目录下。

  1. 创建配置文件 回环接口的子接口配置文件命名规则通常为 ifcfg-lo:0(如果是第二个虚拟IP则是 ifcfg-lo:1,以此类推)。

    使用编辑器(如vi)创建该文件:

    vi /etc/sysconfig/network-scripts/ifcfg-lo:0
  2. 写入配置内容 在文件中填入以下内容(注意:DEVICE名称必须与文件名中的冒号后部分一致):

    DEVICE=lo:0
    IPADDR=192.168.1.100      # 你的虚拟IP
    NETMASK=255.255.255.255   # 子网掩码,通常VIP设为32位
    NETWORK=127.0.0.0
    # 如果你不希望该IP对外响应ARP请求(LVS/DR模式必须),可以加上以下参数
    ONBOOT=yes
    NAME=loopback
  3. 重启网络服务 配置完成后,重启网络服务使配置生效:

    systemctl restart network
    # 或者
    service network restart
  4. 验证 输入 ifconfigip a,查看 lo:0 是否已存在,此时重启服务器,配置也会自动加载。

CentOS/RHEL 8 / Fedora / 新版系统(使用NetworkManager)

在较新的系统中,NetworkManager(NM)接管了网络,虽然上面的 ifcfg 文件方法通常依然兼容,但推荐使用 nmcli 命令行工具进行管理,更加规范。

  1. 添加连接

    nmcli con add type ethernet ifname lo con-name lo:0 ip4 192.168.1.100/32

    注意:虽然lo是回环接口,但nmcli通常将其类型识别为以太网或通用,这里重点是绑定IP。

  2. 设置开机自启

    nmcli con modify lo:0 connection.autoconnect yes
  3. 激活连接

    nmcli con up lo:0

Ubuntu/Debian 系统

Ubuntu/Debian系统的网络配置通常集中在 /etc/network/interfaces 文件中。

  1. 编辑配置文件

    vi /etc/network/interfaces
  2. 添加虚拟接口配置 在文件末尾添加以下内容:

    auto lo:0
    iface lo:0 inet static
        address 192.168.1.100
        netmask 255.255.255.255
  3. 重启网络服务

    systemctl restart networking

“暴力”通用方案:使用 /etc/rc.local

如果你搞不清楚系统版本,或者配置文件怎么写都不生效,还有一个“万能”的笨办法——利用开机自启脚本 rc.local

  1. 编辑rc.local文件

    vi /etc/rc.d/rc.local
    # 或者某些系统是 /etc/rc.local
  2. 添加命令exit 0 之前添加你的绑定命令:

    /sbin/ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up
    # 抑制ARP响应(可选,LVS常用)
    /sbin/arp -n | awk '/192.168.1.100/{print $1}' | xargs -I {} /sbin/arp -s {} 00:00:00:00:00:00
  3. 赋予执行权限(重要!) 在CentOS 7之后,rc.local 默认是没有执行权限的,必须手动赋予:

    chmod +x /etc/rc.d/rc.local

Linux新增 lo:0 网卡重启未生效,核心原因在于只修改了内存中的运行时配置,而没有修改磁盘中的持久化配置

  • 推荐做法:根据系统发行版,修改 /etc/sysconfig/network-scripts/ifcfg-lo:0 (CentOS) 或 /etc/network/interfaces (Ubuntu)。
  • 备选做法:使用 rc.local 进行开机脚本绑定。

配置完成后,记得进行一次重启测试,确保万无一失!

💡 温馨提示

📌 阅读须知 Rules & Notice

本站坚持免费分享,致力于为大家提供实用、优质的内容与资源。

🔗欢迎大家收藏与转发,转载请保留本站链接,请勿私自去除版权信息。

📚所有外部整理资源,仅作学习交流使用,请勿用于各类商业用途。

🤝网络相聚本是缘分,希望大家文明交流,理性浏览。

🛠️若发现内容有误或涉及侵权,我们将第一时间处理整改。

💖 感谢每一位朋友的陪伴与支持

✨ 用心分享,一路同行 ✨

取消
微信二维码
微信二维码
支付宝二维码