在练习将本地虚拟机从静态 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 来更新您的软件