CentOS7/8重启网卡的命令是什么?修改后如何生效?

现代主流方式:CentOS 7/8/Stream 及更新版本

自CentOS 7起,系统全面采用systemd作为初始化和服务管理器,网络服务也由功能强大的NetworkManager统一接管,重启网卡最推荐的方式是通过systemctl命令管理NetworkManager服务。

CentOS7/8重启网卡的命令是什么?修改后如何生效?

使用 systemctl 重启 NetworkManager

这是最常用且最规范的方法,它并非直接操作网卡设备,而是重启负责管理所有网络连接的后台服务。NetworkManager会优雅地关闭现有连接,读取最新的配置文件,然后重新建立连接。

sudo systemctl restart NetworkManager

优点:

  • 统一管理:与现代系统架构完全契合,是官方推荐的方法。
  • 智能可靠NetworkManager能够智能处理各种网络场景,包括有线、无线、VPN等,重启过程稳定。
  • 影响面可控:它只会重启由NetworkManager管理的网络接口,对于其他非标准配置的接口影响较小。

执行后,如何确认状态?
可以使用以下命令查看服务状态,确保其已成功重启并处于活跃(running)状态:

sudo systemctl status NetworkManager

使用 nmcli 工具操作指定接口

如果仅需要对某一个特定的网卡进行重启操作,而不影响其他网络接口,nmcli(NetworkManager Command-Line Interface)是最佳选择,它提供了更精细的控制粒度。

使用以下命令查看当前系统中有哪些网络连接:

nmcli connection show

输出结果会列出所有连接的名称(NAME)和UUID,连接名称与网卡设备名类似,例如ens33eth0

使用downup命令来“关闭”再“启用”指定的连接,从而达到重启的效果:

# 将连接名为 ens33 的网卡先禁用
sudo nmcli connection down ens33
# 再重新启用它
sudo nmcli connection up ens33

这种方法尤其适用于生产环境,当您需要在不中断服务器其他网络接口(如多网卡服务器中的管理口)的情况下,重启业务网卡时,此方法显得尤为安全和精准。


传统经典方式:CentOS 6 及更早版本

systemd普及之前,CentOS 6及更早版本使用传统的SysV init脚本来管理系统服务,网络服务的脚本是/etc/init.d/network

CentOS7/8重启网卡的命令是什么?修改后如何生效?

使用 service 命令重启网络服务

这是CentOS 6时代的标准操作,该命令会执行网络初始化脚本,重新加载所有位于/etc/sysconfig/network-scripts/目录下的网卡配置文件,并重启所有已配置的网络接口。

sudo service network restart

或者使用其等效的完整路径:

sudo /etc/init.d/network restart

注意:

  • 全局影响:此命令会重启所有被系统脚本管理的网络接口,如果服务器有多个网卡,这可能会导致所有网络连接瞬间中断,需谨慎操作。
  • 兼容性:在CentOS 7/8等新版本中,虽然为了向后兼容可能仍然保留了service network restart这个命令,但其内部实现可能已被重定向到systemctl,且强烈不推荐在新系统中使用。

底层直接操作:ifdown / ifup 命令

这是一种更为“底层”和直接的方法,它绕过了服务管理器,直接对指定的网络接口进行禁用和启用操作,这个命令在几乎所有Linux发行版中都可用。

# 禁用名为 eth0 的网卡
sudo ifdown eth0
# 启用名为 eth0 的网卡
sudo ifup eth0

适用场景与注意事项:

  • 快速修复:当某个网卡状态异常,需要快速“拔插”一下时,此方法非常迅速。
  • 依赖脚本ifup命令会执行/etc/sysconfig/network-scripts/ifup-eth等脚本,并读取/etc/sysconfig/network-scripts/ifcfg-<interface_name>配置文件来获取IP地址等信息,它同样依赖于配置文件的正确性。
  • 非持久化:它只影响当前运行状态,不会修改任何服务配置。
  • 风险:直接操作底层设备,如果操作不当(例如在远程连接时禁用了自己正在使用的网卡),可能会导致立即失联。

方法对比与选择

为了更直观地理解上述方法的差异,下表对它们进行了小编总结:

方法 适用版本 作用范围 推荐指数 备注
systemctl restart NetworkManager CentOS 7/8/Stream 及更新 重启NetworkManager服务,影响其管理的所有连接 现代、安全、首选,官方推荐
nmcli con down/up <name> CentOS 7/8/Stream 及更新 仅操作指定的网络连接 精准控制,适合多网卡环境和生产环境
service network restart CentOS 6 及更早版本 重启所有系统脚本管理的网络接口 旧版标准,新版不推荐,全局影响
ifdown/ifup <interface> 所有Linux发行版 仅操作指定的网络接口 快速直接,但需谨慎,依赖正确的配置文件

如何验证网卡重启是否成功?

无论采用哪种方法,验证操作结果都是至关重要的一步。

  1. 查看接口状态与IP地址
    使用ip命令查看指定网卡的详细信息,确认UP状态和IP地址是否已按预期配置。

    ip addr show ens33

    在输出中,应看到<BROADCAST,MULTICAST,UP,LOWER_UP>等状态标识,以及正确的inet(IPv4)或inet6(IPv6)地址。

    CentOS7/8重启网卡的命令是什么?修改后如何生效?

  2. 测试网络连通性
    使用ping命令测试与网关或公共DNS服务器的连通性。

    # 测试与网关的连通性(替换为你的网关IP)
    ping -c 4 192.168.1.1
    # 测试与外网的连通性
    ping -c 4 8.8.8.8

    如果能够收到正常的回复(64 bytes from...),则表明网络已恢复正常。

  3. 检查服务日志(可选)
    如果怀疑重启过程中出现问题,可以查看NetworkManager的日志或系统日志。

    # 查看NetworkManager服务的最新日志
    journalctl -u NetworkManager -f

相关问答 (FAQs)

问题1:我重启了网卡,但是它的IP地址没有变,为什么?

解答: 这种情况通常由以下两个原因导致:

  • 静态IP配置:您的网卡配置文件(位于/etc/sysconfig/network-scripts/ifcfg-<interface_name>)中设置了BOOTPROTO=static,并手动指定了IPADDR,在这种情况下,无论网卡如何重启,系统都会始终为其分配这个固定的IP地址,如果需要更改IP,必须修改此配置文件后再重启。
  • DHCP租约未到期:如果您使用的是动态IP(BOOTPROTO=dhcp),网卡重启时会尝试向DHCP服务器请求续租之前的IP地址,如果租约尚未到期,服务器通常会批准续租,因此IP地址保持不变,这是DHCP协议的正常行为,旨在提供网络稳定性。

问题2:在CentOS 7中执行service network restart失败,提示Job for network.service failed,该怎么办?

解答: 这个错误提示意味着网络服务启动失败,最常见的原因是网络配置文件中存在语法错误或逻辑冲突,请按以下步骤排查:

  1. 检查配置文件:仔细检查/etc/sysconfig/network-scripts/目录下对应网卡的配置文件(如ifcfg-ens33),常见的错误包括:拼写错误(如BOOTPROTO写成了BOOTPROTO)、多余的空格、引号不匹配,或者ONBOOT设置为no导致开机不自动启用,确保所有参数值都是正确的。
  2. 查看详细错误日志:使用journalctl -xe命令可以查看到系统日志中最近的错误详情,通常会明确指出哪一步操作失败或哪个配置项有问题,这是定位问题的最有效工具。
  3. 检查设备名称:确认您配置的设备名称(如DEVICE=ens33)与系统中实际存在的网卡名称(通过ip addrnmcli d查看)完全一致,设备名称不匹配是常见的低级错误,修正配置文件后,再次尝试重启网卡即可。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-10 21:28
下一篇 2025-10-10 21:31

相关推荐

  • CentOS隐藏终端后,如何恢复和查看隐藏的命令行界面?

    在CentOS系统中,隐藏终端是一个常见的操作,它可以帮助用户在安全性和美观性方面进行优化,以下是如何在CentOS中隐藏终端的详细步骤和相关信息,使用命令行隐藏终端1 检查终端类型需要确定你的终端类型,在命令行中输入以下命令:echo $TERM这将显示当前终端的类型,2 设置终端类型根据你的终端类型,你可以……

    2026-01-24
    007
  • centos 删除mongodb

    在CentOS系统中删除MongoDB需要谨慎操作,以确保彻底清理相关文件、配置和数据,同时避免影响系统其他组件,以下是详细的步骤和注意事项,帮助用户安全完成卸载过程,停止MongoDB服务在删除MongoDB之前,首先需要确保服务已完全停止,使用以下命令检查MongoDB的运行状态:sudo systemct……

    2026-01-02
    003
  • CentOS下gdb如何用set args命令传递程序运行参数?

    在CentOS系统中,GDB(GNU Debugger)是进行程序调试的强大工具,而set args命令则是调试过程中常用的功能之一,它允许用户在调试程序时设置命令行参数,本文将详细介绍如何在CentOS中使用GDB的set args命令,包括其基本用法、实际应用场景以及与其他调试命令的配合使用,GDB与set……

    2025-11-29
    006
  • 如何在CentOS服务器上高效管理多个Git用户权限?

    在 CentOS 服务器上为团队协作搭建 Git 服务时,用户管理是确保代码安全、规范工作流程的核心环节,一个配置良好的用户管理体系不仅能精确控制每个成员对代码仓库的访问权限,还能追踪操作记录,防止未经授权的修改,本文将详细介绍在 CentOS 环境下进行 Git 用户管理的两种主流方法:基于 SSH 的系统用……

    2025-10-09
    0011

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

广告合作

QQ:14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信