我已经设置了一个CentOS 6.4服务器(最小安装),它通过以太网电缆连接到网络。问题是,当网络链路断开时,状态更改不会自动检测到,但如果我键入" ifconfig"接口仍然保留其IP地址(由DHCP服务器分配)。一段时间后链接断开,接口丢失了地址,但是当链接再次出现时,网络连接不会像在桌面计算机中那样自动恢复。甚至命令" dhclient eth0"并不总是能够恢复的东西,我必须用" /ect/init.d/network restart"重新启动整个网络服务。
有没有办法自动检测网络状态变化,就像桌面安装中发生的那样?我正在考虑一个cron脚本,每5分钟就会ping一次我网络外的服务器,如果它没有得到任何响应,它会重新启动网络服务,但这听起来不是很有效...还有另外一种方法吗? ?
编辑:我意识到我没有正确解释这种情况。我的网络拓扑是:server - >开关 - >路由器 - >外部网络(路由器是另一个带DHCPD的centos服务器)。 由于某些原因(我没有得到),当路由器发生故障并重新启动时,另一台服务器无法访问,我必须手动重启网络服务。因此链路没有有效地关闭(交换机保持连接),但状态更改是IP级别。答案 0 :(得分:0)
您可以检查是否启用了NetworkManager,我通常不在服务器中使用它,但在这种情况下它可以帮助您,因为它会自动监视连接(这在桌面安装中很常见)。
要查找指示NIC问题的消息,只需使用dmesg命令检查内核环缓冲区。
例如,当电缆与给定接口断开连接时,这就是我得到的:
igb: eth1 NIC Link is Down
第一个字取决于网络驱动程序的名称。
您还可以配置系统将这些消息也记录到/ var / log / messages(默认情况下我不确定它们是否出现在那里)。然后,只需监视日志,查找类似的消息并重新启动网络服务。
在任何情况下,如果NetworkManager尚未启用,它应该是一个更简单的解决方案。
答案 1 :(得分:0)
有一个名为miimon的模块用于监控网络接口的状态。 ethtool
会为您提供链接状态。
$ethtool eth0
...
Link detected: yes