linux - CentOS服务器: how to detect network status changes

标签 linux networking centos

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

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

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

最佳答案

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

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

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

例如,当电缆从给定接口(interface)断开时,这就是我得到的结果:

igb: eth1 NIC Link is Down

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

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

无论如何,NetworkManager(如果尚未启用)应该是一个更简单的解决方案。

关于linux - CentOS服务器: how to detect network status changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19594541/

相关文章:

linux - 我们如何检查 Linux 中是否启用了 NAPI 功能?

windows - 在 Linux 中编译 Visual C++ 代码

java - 建立P2P连接,无需用户认证

apache-flex - 如何从错误的 HTTP 请求中获取响应?

node.js - 在 Node.js 和 CentOS 中使用 pdf2image

Python Audio Tools 安装问题

linux - 使用 udev 自动重命名和编号 nic

linux - 仅在命令请求时回答 "Yes"或 "No"

PHP 警告 : PHP Startup: Unable to load dynamic library 'intl' undefined symbol: __cxa_throw_bad_array_new_length

linux - 使用VBA将linux文本文件加载到excel中