-1

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

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

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

4

2 回答 2

0

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

$ethtool eth0
    ...
    Link detected: yes
于 2013-10-25T22:21:16.340 回答
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 尚未启用,它应该是一个更简单的解决方案。

于 2013-10-25T21:15:44.583 回答