如何在 RHEL 上“重启”特定的网络接口?

夏期劇*_*期劇場 19 linux redhat service eth0 linux-networking

在 RHEL 中,我不使用service network restart命令,而是如何重新启动特定的网络接口,比如说“eth1”,只有一个命令。

“只有一个命令”,因为那也是我ssh正在处理的唯一界面。因此,如果我要使用:ifdown然后ifup,我将永远无法执行该ifup命令,因为我的命令ssh已在ifdown eth1命令后终止一次。

所以应该有一个命令,它允许我完全关闭然后打开为我当前ssh连接提供服务的接口。所以我不需要担心连接完全丢失到我的服务器。

请问有什么想法吗?

小智 28

您可以使用:

ifdown eth1 && ifup eth1
Run Code Online (Sandbox Code Playgroud)

作为单个命令。&& 只运行一个命令,如果第一个命令成功,则运行另一个。如果需要使用 sudo,请确保在每个命令之前使用它:

sudo ifdown eth1 && sudo ifup eth1
Run Code Online (Sandbox Code Playgroud)

只要您的接口配置为具有必要的 IP 和路由以匹配当前配置,您的 ssh 连接就不会断开。

如果您担心在没有其他访问方法的生产服务器上使用它,这是可以理解的。尽管该命令完全符合您的要求,但很容易出现仅在运行此命令后才注意到的配置错误。如果您没有其他访问方法(例如,带外控制台或在另一个接口上运行的 SSHD),最好不要这样做

我经常使用这种技术来执行界面的“重新启动”,但我通常有一个备份访问方法,以防万一我这样做。

  • 我可以建议`ifdown eth1 && ifup eth1`,这样除非ifdown 成功,否则ifup 不会运行,而使用`;` ifup 将运行,无论ifdown 如何返回。 (3认同)