CentOS7如何用systemctl命令重启指定网卡?

在 CentOS 服务器的日常运维与管理中,重启网络接口是一项基础且至关重要的操作,无论是为了应用新的网络配置、解决临时的连接故障,还是进行网络服务的调试,系统管理员都需要掌握在不同环境下重启网口的正确方法,本文将详细介绍在 CentOS 的不同版本中重启网口的几种常用方式,并对它们的特点和使用场景进行分析,旨在为用户提供一份清晰、全面的操作指南。

CentOS7如何用systemctl命令重启指定网卡?

针对 CentOS 7 及更早版本(使用 network-scripts

在 CentOS 7 及其之前的版本中,网络服务主要由传统的 network-scripts 脚本进行管理,重启网口的方法也与这些服务脚本紧密相关。

重启所有网络接口

如果需要一次性重启服务器上所有的网络接口,可以使用 servicesystemctl 命令来控制 network 服务,此操作会重新加载 /etc/sysconfig/network-scripts/ 目录下的所有配置文件,并使所有接口生效。

# 使用 service 命令(兼容旧版)
sudo service network restart
# 使用 systemctl 命令(CentOS 7 推荐)
sudo systemctl restart network

注意:执行此命令会导致所有网络连接短暂中断,包括正在使用的 SSH 连接,在远程操作时,请确保有其他访问途径(如物理控制台)或已配置好能在重启后自动恢复连接的规则。

重启单个网络接口

如果只想重启某一个特定的网络接口(eth0),使用 ifdownifup 命令是更精确且影响更小的选择。ifdown 用于禁用接口,ifup 用于启用它。

# 先禁用接口 eth0
sudo ifdown eth0
# 再启用接口 eth0
sudo ifup eth0

这两个命令会分别读取并应用指定接口的配置文件(如 ifcfg-eth0),从而实现单个接口的重启,而不会影响服务器上的其他网络连接。

针对 CentOS 8/9/Stream(使用 NetworkManager

从 CentOS 8 开始,NetworkManager 成为默认的网络管理工具,取代了传统的 network-scripts,推荐使用 NetworkManager 提供的命令行工具 nmcli 或文本用户界面 nmtui 来管理网络。

使用 nmcli 命令

nmcli(NetworkManager Command-Line Interface)是一个功能强大且灵活的工具,可以完成几乎所有的网络管理任务。

CentOS7如何用systemctl命令重启指定网卡?

重启所有网络接口:
可以通过关闭再开启整个网络管理功能来重启所有接口。

# 关闭网络
sudo nmcli networking off
# 开启网络
sudo nmcli networking on

重启单个网络接口:
nmcli 的概念是“连接”(Connection)和“设备”(Device),一个设备(如 ens33)可以由一个或多个连接配置来激活,通常我们重启的是连接。

# 查看所有连接名称
nmcli connection show
# 先关闭指定连接("Wired connection 1")
sudo nmcli connection down "Wired connection 1"
# 再开启指定连接
sudo nmcli connection up "Wired connection 1"

这里的 "Wired connection 1" 是连接的名称,不一定是设备名 ens33,使用 nmcli connection show 可以准确查看。

使用 nmtui 工具

对于偏好图形化界面的用户,nmtui(NetworkManager Text User Interface)提供了一个基于文本的交互式界面,操作非常直观。

# 在终端中启动 nmtui
sudo nmtui

启动后,可以通过键盘方向键选择“Activate a connection”,然后找到需要重启的连接,先按 Enter 键将其“Deactivate”,再重新选择并“Activate”即可。

使用 ip 命令(通用底层方法)

ip 命令是 iproute2 软件包的一部分,用于显示和操作路由、网络设备、策略路由和隧道,它也可以用来快速禁用和启用网络接口。

# 禁用接口 eth0
sudo ip link set eth0 down
# 启用接口 eth0
sudo ip link set eth0 up

重要提示:使用 ip 命令只是改变了接口的链路层状态(up/down),它不会重新加载或应用任何存储在配置文件中的 IP 地址、子网掩码、路由等信息,它更像一个“硬开关”,仅用于快速切换接口状态,如果配置文件已更改,使用此方法后配置不会生效。

CentOS7如何用systemctl命令重启指定网卡?

方法对比

为了更清晰地选择合适的方法,下表对上述几种方式进行了小编总结:

方法 适用版本 作用范围 特点与备注
systemctl restart network CentOS 7 及更早 所有接口 影响范围大,会重新加载所有配置,不适用于 CentOS 8+。
ifdown/ifup CentOS 7 及更早 单个接口 精确控制,只影响指定接口,是旧版本的最佳实践。
nmcli networking off/on CentOS 8/9/Stream 所有接口 现代标准方法,通过 NetworkManager 管理所有连接。
nmcli con down/up CentOS 8/9/Stream 单个连接 现代标准方法,精确控制单个连接,推荐使用。
nmtui CentOS 8/9/Stream 交互式操作 用户友好的文本界面,适合不熟悉命令行的用户。
ip link set down/up 所有版本 单个设备 底层操作,仅切换接口状态,不重新应用网络配置。

相关问答 FAQs

我重启网口后,为什么服务器网络不通了?

解答:这是一个常见问题,通常由以下几个原因导致:

  1. 配置文件错误:在重启前修改了网络配置文件(如 ifcfg-*),但存在语法错误(如拼写、格式不正确),可以使用 nmcli connection show <连接名>systemctl status network 检查配置是否有问题。
  2. IP 地址冲突:新设置的静态 IP 地址与网络中另一台设备冲突,导致网络异常。
  3. 防火墙规则:重启网络服务可能导致 firewalldiptables 的规则被重置或应用不当,阻止了必要的流量,检查防火墙状态和规则 (sudo firewall-cmd --list-all)。
  4. 路由丢失:配置文件中缺少默认网关(GATEWAY)或DNS(DNS1)设置,导致无法访问外部网络。

在 CentOS 7 系统上,我可以使用 nmcli 命令吗?

解答:可以,CentOS 7 默认同时安装了 network 服务和 NetworkManager,在默认配置下,NetworkManager 可能被配置为不管理由 network-scripts 控制的接口,虽然 nmcli 命令可用,但它可能无法看到或控制所有接口,在 CentOS 7 中,最佳实践是坚持使用 ifdown/ifupsystemctl restart network 来保持管理方式的一致性,避免因两种管理工具并存而引发冲突,若要在 CentOS 7 中完全使用 NetworkManager,需要对其进行额外配置并禁用 network 服务。

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

(0)
热舞的头像热舞
上一篇 2025-10-14 12:47
下一篇 2024-09-06 16:26

相关推荐

发表回复

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

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

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

关注微信