如何在Linux中发现IP地址冲突

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Linux中发现IP地址冲突相关的知识,希望对你有一定的参考价值。

下面我们来看一个实例:

一台linux主机 IP:192.168.0.25 MAC: 00:14:k2:5d:8e:b2

一台windows主机 IP:192.168.0.25 MAC: 00:25:e4:6a:4b:f4

两台主机的IP地址相同(IP:192.168.0.25),MAC地址不同

则windows主机会提示IP地址冲突,而linux主机无任何提示

那么如何知道自己的linux主机是否与网络中其它的windows主机IP地址冲突呢?

其实很简单,在linux主机端执行

#arping 192.168.0.25

Unicast reply from 192.168.0.25 [00:25:e4:6a:4b:f4] 1.390ms

如果没有任何信息,则表示网内我的IP是唯一的

如果有以上信息,则表示网内有一台MAC地址为00:25:e4:6a:4b:f4的主机IP地址与我相同,这时可以通过ifconfig命令验
证,你会发现:本机的MAC地址是00:14:k2:5d:8e:b2。我们可以用局域网扫描软件找到MAC地址为00:25:e4:6a:4b:f4的
主机,并将其隔离或更换IP地址。

原理:arping命令是以广播地址发送arp packets,以太网内所有的主机都会收到这个arp packets,但是本机收到之后不会Reply任何信息。当我们在linux主机端上执行下面的命令时:

  arping 192.168.0.25  会默认使用eth0,向局域网内所有的主机发送一个:

who has 192.168.0.25的arp request,tell 192.168.0.25 your mac address,

当这台windows主机端收到这个arp packets后,则会应答:

  "I am 192.168.0.25 , mac是00:25:e4:6a:4b:f4",这样我们会收到mac地址为00:25:e4:6a:4b:f4的windows主机的Reply信息。
参考技术A 如果有多个MAC地址声称拥有相同的IP地址,那么这里就存在冲突。
要在Ubuntu或者Debian上安装arp-scan则输入:
$ sudo apt-get install arp-scan

对于Fedora,CentOS或者RedHat:
$ sudo yum install arp-scan

要检测IP冲突,运行下面的命令:
$ sudo arp-scan –I eth0 -l

输出示例:
192.168.1.10 00:1b:a9:63:a2:4c BROTHER INDUSTRIES, LTD.
192.168.1.30 00:1e:8f:58:ec:49 CANON INC.
192.168.1.33 00:25:4b:1b:10:20 Apple, Inc
192.168.1.37 10:9a:dd:55:d7:95 Apple Inc
192.168.1.38 20:c9:d0:27:8d:56 (Unknown)
192.168.1.39 d4:85:64:4d:35:be Hewlett Packard
192.168.1.39 00:0b:46:e4:8e:6d Cisco (DUP: 2)
192.168.1.40 90:2b:34:18:59:c0 (Unknown)

在本例中,192.168.1.39这个IP冲突了,因为它出现了两次。

Linux下扫描服务器IP地址是否冲突(arp-scan)

部署服务突然发现,连接的服务器断开了,因为服务器用户名密码是一样的,所以重新连接后,发现文件变了,跟之前不一样。

猜想是不是ip地址冲突了,两次连接的服务器不同。

网上查找资料说可以用工具扫描。工具:arp-scan。

服务器:Centos 7.X

工具:arp-scan:1.9.2

服务器上直接 使用 yum安装 提示找不到资源。官网已经将源码放在git上。

所以安装环境需要以下几个:

git

gcc

libpcap

libpcap-devel

安装完成后,使用命令下载文件

git clone https://github.com/royhills/arp-scan.git

如果提示错误

 

 

 执行命令:yum update -y nss curl libcurl 。完成后再重新执行 上条  git命令

 进入arp-scan 目录  cd arp-scan

执行命令生成配置文件 :autoreconf --install

执行配置文件:./configure

make

make check

make install

完成后使用命令扫描网络IP:   arp-scan -I eth0 -l  (注意权限)    如果没有权限  使用 sudo  arp-scan -I eth0 -l  (第一个是 大写 i   第二个是 小写 L )

会把执行结果输出。如图中 框起来的部分,发现一个IP绑定在不同的MAC 服务器上。后边也会多出(DUP:2)。终于找到问题所在

 

 

 

以上,问题找到原因,下一步就是修改服务器IP地址。

 

 

内容参考: https://blog.csdn.net/zgljl2012/article/details/50953364

以上是关于如何在Linux中发现IP地址冲突的主要内容,如果未能解决你的问题,请参考以下文章

Linux下扫描服务器IP地址是否冲突(arp-scan)

IP地址冲突解决方案,局域网IP地址冲突如何解决?

linux,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)

什么是IP地址冲突?如何解决IP地址冲突?

Linux下检测IP地址冲突及解决方法

IP地址冲突排查