IP地址消失

复制代码
[root@master ~]# sudo systemctl enable network
network.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig network on
[root@master ~]# sudo systemctl start network
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.
sudo systemctl status network
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since 五 2025-12-26 04:13:45 CST; 14s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 3069 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)

12月 26 04:13:45 master network[3069]: RTNETLINK answers: File exists
12月 26 04:13:45 master network[3069]: RTNETLINK answers: File exists
12月 26 04:13:45 master network[3069]: RTNETLINK answers: File exists
12月 26 04:13:45 master network[3069]: RTNETLINK answers: File exists
12月 26 04:13:45 master network[3069]: RTNETLINK answers: File exists
12月 26 04:13:45 master network[3069]: RTNETLINK answers: File exists
12月 26 04:13:45 master systemd[1]: network.service: control process exite...=1
12月 26 04:13:45 master systemd[1]: Failed to start LSB: Bring up/down net...g.
12月 26 04:13:45 master systemd[1]: Unit network.service entered failed state.
12月 26 04:13:45 master systemd[1]: network.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

✅ 核心故障定位

network.service启动失败 + RTNETLINK answers: File exists 是 CentOS 静态 IP 下的经典冲突问题,根源是:系统中已有其他进程(如 NetworkManager、dhclient)占用了网卡的 IP / 路由配置,network服务启动时无法重复绑定静态 IP,导致报错。哪怕你配置了ONBOOT=yes,只要有冲突,网卡就会卡在DOWN状态,IP 也无法加载。

🚀 一键修复(直接复制执行,1 分钟解决冲突)

步骤 1:先停止所有冲突服务(核心)

复制代码
# 1. 停止NetworkManager(最大冲突源,Hadoop集群必须关)
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

# 2. 杀死所有dhclient进程(DHCP客户端会抢占静态IP)
sudo pkill dhclient

# 3. 清除网卡现有IP/路由(解决File exists冲突)
sudo ip addr flush dev ens33

步骤 2:重新启动 network 服务(此时必成功)

复制代码
# 1. 重启network服务
sudo systemctl restart network

# 2. 强制启用ens33网卡
sudo ip link set ens33 up

# 3. 验证结果(必出静态IP)
ip a | grep ens33

✅ 执行后,network.service会正常启动,ens33状态变为UP,且显示你配置的静态 IP。

❓ 为什么会报「File exists」?

这个报错的本质是:Linux 系统中,一个网卡的 IP / 路由配置只能被一个服务管理------

你配置了BOOTPROTO=static,想让network服务管理 IP;

但NetworkManager或dhclient已经给 ens33 绑定了 IP / 路由;

network服务启动时,发现 IP / 路由已存在(File exists),无法重复绑定,直接启动失败。

🛠️ 兜底验证(确保永久解决)

步骤 1:检查 network 服务状态(确认启动成功)

复制代码
sudo systemctl status network

✅ 正常输出(关键看Active: active (running)):

步骤 2:确认静态 IP 永久生效

复制代码
# 1. 重启虚拟机(验证开机自启)
sudo reboot

# 2. 重启后检查IP
ip a | grep ens33

# 3. 检查network服务自启状态
sudo systemctl is-enabled network

✅ 输出enabled即为开机自启正常,IP 也会稳定显示。

📌 静态 IP 集群「永久避坑规则」

必关 NetworkManager:三台节点都执行以下命令,终身禁用:

复制代码
sudo systemctl disable --now NetworkManager

禁用 DHCP 客户端:防止抢占静态 IP,执行:

复制代码
sudo chkconfig dhclient off

配置文件加防护:在ifcfg-ens33末尾加一行,禁止 NetworkManager 管理:

复制代码
echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-ens33

避免重复配置:ifcfg-ens33中只保留必要参数,删除多余的UUID/DNS2等(减少冲突)。

步骤 2:阻止 dhclient 自动启动(关键)

编辑网卡配置文件,强制禁用 DHCP,确保静态 IP 独占:

复制代码
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

✅ 新增 / 确认以下参数(其他保留):

复制代码
# 强制禁用DHCP(哪怕有dhclient也不会生效)
BOOTPROTO=static
# 禁止NetworkManager触发dhclient
NM_CONTROLLED=no
# 禁用IPV6(减少冲突)
IPV6INIT=no
IPV6_AUTOCONF=no
相关推荐
报错小能手2 小时前
当键入网址后,到网页显示,其间发生了什么?
网络·计算机网络
G_H_S_3_2 小时前
【网络运维】Docker网络:基础与实战
linux·运维·网络·docker
Lisonseekpan2 小时前
RBAC 基于角色的访问控制模型详解与实践指南
java·服务器·网络·后端·spring·log4j
开发者导航2 小时前
【开发者导航】完全开源免费且可自托管的私有云盘
网络·开源
网安INF2 小时前
典型网络攻击分析:ARP欺骗与TCP劫持
网络·网络协议·tcp/ip·安全·网络安全
VekiSon2 小时前
Linux网络编程——网络数据封装与 HTTP 协议
网络·网络协议·http
2501_938810112 小时前
动态IP与短效IP的关系
服务器·网络协议·tcp/ip
东东的脑洞2 小时前
【面试突击】深入理解 TCP 三次握手与 HTTP 协议演进
tcp/ip·http·面试
ベadvance courageouslyミ3 小时前
网络编程(三)HTTP
网络·网络协议·http