如何在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,windows下检测指定的IP地址是否可用或者检测IP地址冲突的3种方式(批处理程序,python程序,linux shell 批量ping)