(问题小记)Error, some other host already uses address

问题现象:centos系统重启网卡后ip没了,检测网卡配置文件没写错也是对的,重启网卡也没报任何错误

journalctl -r查问题,存在Error, some other host already uses address的报错

百度解决:1、修改配置文件vi /etc/sysconfig/network-scripts/ifup-eth 2、 /arping快速定位,把红框5行前面加#注释

注释保存后重启网卡,问题解决~
补充:centos7重启网卡命令:1、/etc/init.d/network restart2、systemctl restart network3、service network restart

4、systemctl restart NetworkManager
ARPING=$(/sbin/arping -c 2 -w ${ARPING_WAIT:-3} -D -I ${REALDEVICE} ${ipaddr[$idx]})

这里通过 arping 命令进行 IP 地址冲突检测:

/sbin/arping:是一个用来发送 ARP 请求的命令,通常用于检查指定 IP 地址是否已被占用。

-c 2:表示发送 2 次 ARP 请求。

-w ${ARPING_WAIT:-3}:设置超时时间为 ARPING_WAIT 变量的值,如果该变量没有定义,则默认为 3 秒。

-D:启用 ARP 请求,检测目标 IP 是否已经被其他设备占用。

-I ${REALDEVICE}:指定网卡接口,如 eth0 或其他。

${ipaddr[$idx]}:这是脚本中需要检查的 IP 地址。

这条命令会向指定的 IP 地址发送 2 次 ARP 请求,检查网络上是否已经有设备响应该地址。

if [ $? = 1 ]; then

$?:表示上一个命令的返回值。

arping 的返回值是 1 表示网络中存在响应 ARP 请求的设备,即 IP 地址冲突。

总结:如果 arping 返回 1(表示该 IP 地址已被其他设备占用),则执行后续操作。

提取 ARP 响应的 MAC 地址:

ARPINGMAC=$(echo $ARPING |  sed -ne ‘s/.*\[\(.*\)\].*/\1/p’)

echo $ARPING:打印 arping 命令的输出。

sed -ne ‘s/.*\[\(.*\)\].*/\1/p’:使用 sed 命令从 arping 的输出中提取出响应的 MAC 地址。

扫码访问小程序中的本文

微信小程序二维码

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部