CentOS服务器:如何检测网络状态变化

时间:2013-10-25 16:01:42

标签: linux networking centos

我已经设置了一个CentOS 6.4服务器(最小安装),它通过以太网电缆连接到网络。问题是,当网络链路断开时,状态更改不会自动检测到,但如果我键入" ifconfig"接口仍然保留其IP地址(由DHCP服务器分配)。一段时间后链接断开,接口丢失了地址,但是当链接再次出现时,网络连接不会像在桌面计算机中那样自动恢复。甚至命令" dhclient eth0"并不总是能够恢复的东西,我必须用" /ect/init.d/network restart"重新启动整个网络服务。

有没有办法自动检测网络状态变化,就像桌面安装中发生的那样?我正在考虑一个cron脚本,每5分钟就会ping一次我网络外的服务器,如果它没有得到任何响应,它会重新启动网络服务,但这听起来不是很有效...还有另外一种方法吗? ?

编辑:我意识到我没有正确解释这种情况。我的网络拓扑是:server - >开关 - >路由器 - >外部网络(路由器是另一个带DHCPD的centos服务器)。 由于某些原因(我没有得到),当路由器发生故障并重新启动时,另一台服务器无法访问,我必须手动重启网络服务。因此链路没有有效地关闭(交换机保持连接),但状态更改是IP级别。

2 个答案:

答案 0 :(得分:0)

您可以检查是否启用了NetworkManager,我通常不在服务器中使用它,但在这种情况下它可以帮助您,因为它会自动监视连接(这在桌面安装中很常见)。

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-NetworkManager.html

要查找指示NIC问题的消息,只需使用dmesg命令检查内核环缓冲区。

例如,当电缆与给定接口断开连接时,这就是我得到的:

igb: eth1 NIC Link is Down

第一个字取决于网络驱动程序的名称。

您还可以配置系统将这些消息也记录到/ var / log / messages(默认情况下我不确定它们是否出现在那里)。然后,只需监视日志,查找类似的消息并重新启动网络服务。

在任何情况下,如果NetworkManager尚未启用,它应该是一个更简单的解决方案。

答案 1 :(得分:0)

有一个名为miimon的模块用于监控网络接口的状态。 ethtool会为您提供链接状态。

$ethtool eth0
    ...
    Link detected: yes
相关问题