network[44649]:RTNETLINK answers: File exists
解决方法
最简单的排错方法尝试关闭NetworkManager
systemctl stop NetworkManager
原因
red hat7出现两种管理网络配置的服务:network和NetworkManager,其关系互斥,在引导时,/etc/init.d/network 会遍历所有ifcfg 文件,以及每个具ONBOOT=yes 的文件读取所有 ifcfg 文件,它将检查 NetworkManager 是否已经从该ifcfg 文件中启动 DEVICE。
如果 NetworkManager正在启动该设备或已启动该设备,则不再为该文件执行任何操作,并检查下一个 ONBOOT=yes 文件。
如果NetworkManager尚未启动该设备,则 initscripts 会继续其传统行为并调用 ifup(如果是该 ifcfg 文件)。其结果是,任何具有ONBOOT=yes 的 ifcfg 文件应该在系统启动时NetworkManager或 initscripts 启动。这样可确保NetworkManager 无法处理的某些传统网络类型(如 ISDN 或模拟的拨号模式ms)以及 NetworkManager尚不支持的新应用程序仍能由 initscripts 正确启动,即使 NetworkManager 无法处理它们。
注意
network脚本在运行时只读取ifcfg-开头的文件,仅排除这些扩展:.old 、.orig 、.rpmnew 、.rpmorig 和.rpmsave
可以在/etc/init.d/network脚本文件中看见
而在同级目录下的functions中有忽略文件后缀的介绍
官方文档写的没有.bak但是我centos7中有bak。。。。。。自行斟酌吧
NetworkManager
优点:
更轻松地进行网络配置: NetworkManager
确保网络连接正常工作。当发现系统中没有网络配置但存在网络设备时,NetworkManager 会创建临时连接以提供连接。
提供与用户的简单连接设置:NetworkManager 通过不同的工具(GUI、nmtui、nmcli - )提供管理
基础相关服务命令
-
开启、关闭、重启服务
systemctl start |stop|restart NetworkManager
-
查看服务状态、开启自启、开机关闭
systemctl status|enable|disable NetworkManager
-
重新载入所有连接配置集
nmcli connection reload
-
只重新载入一个更改的文件 ,ifcfg-ifname
nmcli con load /etc/sysconfig/network-scripts/ifcfg-ifname
-
使用 nmcli 等工具所做的更改不需要重新加载,但需要关闭关联的接口,然后再次启动
nmcli dev disconnect interface-name nmcli con up interface-name
nmcli 命令的基本格式如下:
nmcli [OPTIONS] OBJECT { COMMAND | help }
-
OPTIONS和OBJECT的选项可以使用–help查看
[root@localhost ~]# nmcli -t device #查看 terse 输出 ens33:ethernet:connected:ens33 lo:loopback:unmanaged: [root@localhost ~]# nmcli -f DEVICE,TYPE device #此选项指定输出中可以显示哪些字段。例如,NAME,UUID,TYPE,AUTOCONNECT,ACTIVE,DEVICE,STATE.您可以使用一个或多个字段。如果要使用更多,请不要在逗号后使用空格来分隔字段。 DEVICE TYPE ens33 ethernet lo loopback [root@localhost ~]# nmcli -p device #此选项可使 nmcli 生成人类可读的输出。例如,值是一致的,打印标头。 ============ 设备状态 ============ DEVICE TYPE STATE CONNECTION -------------------------------------------------- ens33 ethernet 已连接 ens33 lo loopback 未托管 -- [root@localhost ~]# nmcli general status #检查 NetworkManager 的整体状态 STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN 已连接 完全 已启用 已启用 已启用 已启用 [root@localhost ~]# nmcli -t -f STATE general #在 terse 模式中查看状态 connected [root@localhost ~]# nmcli general logging #查看 NetworkManager 日志状态 LEVEL DOMAINS INFO PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY [root@localhost ~]# nmcli connection show #查看所有连接 NAME UUID TYPE DEVICE ens33 3dcbd50e-c55e-4b2f-a001-db3c0950d93f ethernet ens33 [root@localhost ~]# nmcli connection show --active #仅查看当前活跃的连接 NAME UUID TYPE DEVICE ens33 3dcbd50e-c55e-4b2f-a001-db3c0950d93f ethernet ens33 [root@localhost ~]# nmcli device status #仅查看 NetworkManager 识别的设备及其状态 DEVICE TYPE STATE CONNECTION ens33 ethernet 已连接 ens33 lo loopback 未托管 -- [root@localhost ~]# nmcli con up ens33 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3) nmcli dev disconnect ens3 nmcli connection down 命令取消激活设备的连接,而不阻止设备进一步自动激活。nmcli device disconnect 命令断开连接设备并阻止设备自动激活进一步连接,而无需人工干预。
nmcli | 命令 缩写 |
---|---|
nmcli 常规状态 | nmcli g |
nmcli 常规日志记录 | nmcli g 日志 |
nmcli 连接显示 | nmcli con show |
nmcli connection show --active | nmcli con show -a |
nmcli 设备状态 | nmcli dev |