解决Linux下网络重启报错

CentOS7新增网卡配置
在虚拟机的CentOS7中添加了第二块网卡后,遇到了配置问题。通过手动创建配置文件并调整网络服务设置,成功解决了NetworkManager与network服务冲突导致的网络启动失败。

虚拟机里的 CentOS 7 ,出于使用需求,需要再加一块网卡。

关闭虚拟机,添加硬件,重启。

进入系统后默认就是启动状态,但是看了下系统文件发现并没有该网卡的配置文件,于是手动写了一个。

完成之后使用 systemctl restart network 结果报错:

Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.

按照提示使用 journalctl -xel 查看相关信息:

 6月 25 14:33:50 centos-7.shared network[13248]: 无法载入文件 '/etc/sysconfig/network-scripts/ifcfg-eth1'
6月 25 14:33:50 centos-7.shared network[13248]: 错误   : [/etc/sysconfig/network-scripts/ifup-eth] 设备  似乎不存在, 延迟初始化操作。
6月 25 14:33:50 centos-7.shared /etc/sysconfig/network-scripts/ifup-eth[13433]: 设备  似乎不存在, 延迟初始化操作。
6月 25 14:33:50 centos-7.shared network[13248]: [失败]
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared network[13248]: RTNETLINK answers: File exists
6月 25 14:33:50 centos-7.shared systemd[1]: network.service: control process exited, code=exited status=1
6月 25 14:33:50 centos-7.shared systemd[1]: Failed to start LSB: Bring up/down networking.

在默认终端里查看上方内容时会有部分文字显示为方块,本来以为是字符集的问题,后来发现不是。

这个问题我决定回头再看看,因为使用终端工具时可以正常显示

 

导致该错误的原因是此时网络由 NetworkManager 管理,而我使用的是 network 服务来接管网络。

处理方法自然也有了:

systemctl stop NetworkManager

systemctl disable NetworkManager

systemctl start network

 

Linux系统中,当尝试重启网络服务时遇到错误提示 `the device is removed`,通常表示系统无法找到预期的网络设备,这可能是由于多种原因造成的。 ### 可能的原因 1. **网络设备未正确识别** 系统可能未能正确识别或加载网络接口的驱动程序。可以通过检查系统日志(如 `/var/log/messages` 或 `dmesg` 输出)来确认是否存在与网络设备相关的错误或警告信息。 2. **网络接口配置文件缺失或错误** 网络接口的配置文件通常位于 `/etc/sysconfig/network-scripts/` 目录下,文件名如 `ifcfg-eno16777736`。如果该文件缺失、配置错误或设备名称不匹配,可能会导致系统无法找到对应的网络设备[^3]。 3. **设备名称变更** 在某些情况下,系统重启网络设备的名称可能会发生变化(例如从 `eth0` 变为 `enp0s3`),这通常是由 `udev` 规则引起的。可以通过 `ip link` 命令查看当前系统中可用的网络接口名称。 4. **硬件问题** 如果网络设备本身存在问题(如网卡故障或虚拟机中的网络适配器未正确配置),也可能导致设备无法被识别。 5. **NetworkManager 与传统网络服务冲突** 如果系统同时运行了 `NetworkManager` 和传统的 `network` 服务,可能会导致网络配置冲突。可以尝试停止 `NetworkManager` 服务并禁用其开机启动: ```bash systemctl stop NetworkManager systemctl disable NetworkManager ``` ### 解决方法 1. **检查网络接口状态** 使用 `ip link` 或 `nmcli device` 命令查看当前系统中可用的网络接口: ```bash ip link ``` 如果接口未列出,可能需要检查硬件或驱动程序。 2. **重新生成网络配置文件** 如果发现网络接口名称变更,可以手动创建新的配置文件。例如,如果新的接口名称为 `enp0s3`,可以创建 `/etc/sysconfig/network-scripts/ifcfg-enp0s3` 文件,并确保其中包含正确的配置参数: ```bash DEVICE=enp0s3 BOOTPROTO=dhcp ONBOOT=yes TYPE=Ethernet ``` 3. **重启网络服务** 在修改配置文件后,尝试重启网络服务: ```bash systemctl restart network ``` 4. **检查日志信息** 使用 `journalctl` 或查看 `/var/log/messages` 文件,获取更多关于网络服务启动失败的详细信息: ```bash journalctl -u network.service ``` 5. **更新 `udev` 规则** 如果设备名称频繁变化,可以创建固定的 `udev` 规则来绑定 MAC 地址与接口名称。编辑 `/etc/udev/rules.d/70-persistent-net.rules` 文件,添加如下内容: ```bash SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:11:22:33:44:55", NAME="eth0" ``` 6. **检查虚拟机网络配置** 如果是在虚拟机中遇到此问题,确保虚拟机管理程序(如 VMware 或 VirtualBox)中的网络适配器已正确配置,并且处于“桥接模式”或“NAT 模式”。 ### 验证网络连接 在完成上述操作后,使用 `ping` 命令测试网络连接: ```bash ping -c 4 google.com ``` 如果能够成功 ping 通外部主机,则表示网络服务已恢复正常。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值