通过 SSH 重新启动本地虚拟机的网络服务

通过 SSH 重新启动本地虚拟机的网络服务

在练习将本地虚拟机从静态 IP 切换到 DHCP(反之亦然)的过程中system-config-network,我决定不喜欢通过 virt-manager 访问虚拟机的控制台,而是决定只通过 SSH 进入它(诚然,出于懒惰)不想在 GUI 中来回点击)。

我可以通过 SSH 进行连接,并使用 system-config-network 来更新设置,但是当我尝试运行时,service network restart它会永远挂起:

[root@host1 ~]# service network restart
Shutting down interface eth0:

在等待它吐出某种错误的同时,我通过 virt-manager 访问虚拟机的控制台,可以看到命令成功运行,新的 IP 信息已更新,从这个角度来看一切似乎都很好;然而,据我所知,我的 SSH 连接应该在网络重新启动后继续存在,按照这个问题:SSH 连接如何在网络重启后继续存在?

我的问题是:如果这不是本地虚拟机并且我试图管理实际的远程主机,那么处理此类网络重新启动的最佳方法是什么?我“远程”管理虚拟机网络的方法是否被误导了?

VM使用KVM设置并运行Centos 6.3;内核2.6.32-279.el6.x86_64;桥接网络。物理主机使用Centos 6.4;内核2.6.32-358.18.1.el6.x86_64

更新:在检查物理主机上的 /var/log/messages 时,我发现了以下条目:
not giving name host1 to the DHCP lease of 192.168.122.221 because the name exists in /etc/hosts with address 192.168.122.220

我的 derp 时刻:让我意识到 SSH 无法恢复,因为我正在使用 SSH,ssh user@IPADDRESS因为我还没有设置主机名解析。 IP 地址正在更改,因此无法找到。当我尝试在不更改 IP 的情况下重新启动网络时,它恢复得很好。

答案1

它确实重新启动了网络,并因此断开了您的连接(假设 IP 发生了变化)。您应该能够重新ssh连接,但这是一种本质上危险的网络重新启动方式(假设 IP 信息已更改),您可能应该重新执行此操作virt-manager

通常在数据中心部署中,我们使用双网卡,一个网络用于管理,另一个网络用于正常使用。 NIC 卡位于隔离的网段上,整个 9 码。

如果必须,您也可以在screen会话中执行上述操作,这将在连接断开的情况下隔离网络重新启动。之后您可以ssh返回并从上次中断的地方继续。

脚步

$ screen
(scren shell starts)

$ service network restart
(SSH session disconnects, but the network restart continues in the screen session)

(Wait a few seconds)

(SSH back into the host once the restart finishes)

$ screen -r
(Reconnect to screen and check for errors)

参考

答案2

当您尝试运行服务网络重新启动时,尝试检查 /var/log/messages 有哪些日志

我使用 ssh 在 CentOS 6.4 上管理 8 台机器 KVM,它对我来说工作得很好。

如果它有错误并且已经发布了补丁,您可以尝试通过运行 yum update 来更新您的软件

相关内容