Linux下检测IP地址冲突及解决方法
问题说明:
在公司办公网内的一台物理机A上安装了linux系统(ip:192.168.9.120),在上面部署了jenkins,redmine,svn程序。由于是在办公网内,这台机器和同事电脑都是在同一网段的。
突然某天问题出来了:有部分同事远程ssh登陆不上这台linux系统的机器,jenkins/redmine/svn也登陆不上,其他部分同事可以正常使用。
后来发现,是因为这台linux机器的ip被人占用了,ip地址冲突引起的!!
下面介绍下检查ip地址是否冲突的方法:
---------------------------------------------------
第一种方法(arping):
只需要在另一台同网段的linux机器B上(比如:129.168.9.200)上执行下面的命令(不能在本机arping检验自己的ip):
只需要在另一台同网段的linux机器B上(比如:129.168.9.200)上执行下面的命令(不能在本机arping检验自己的ip):
[root@dev ~]# arping 192.168.9.120
ARPING 192.168.1.120 from 192.168.9.200 eth0
Unicast reply from 192.168.9.120 [40:F4:EC:76:79:C2] 3.084ms
Unicast reply from 192.168.9.120 [50:7B:9D:25:29:59] 0.817ms
Unicast reply from 192.168.9.120 [50:7B:9D:25:29:59] 0.810ms
........
如果只检查出一个MAC地址,则表示网内A机器的的IP:192.168.9.120是唯一的
如果有以上信息即查出两个MAC地址,则表示网内有一台MAC地址为40:F4:EC:76:79:C2的主机IP地址与A机器相同。
这时可以通过ifconfig命令验证A机器,如下发现:A机器的MAC地址是50:7B:9D:25:29:59 。
我们可以用局域网扫描软件找到MAC地址为40:F4:EC:76:79:C2的主机,并将其隔离或更换IP地址。
[root@redmine ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 50:7B:9D:25:29:59
inet addr:192.168.9.120 Bcast:192.168.9.255 Mask:255.255.255.0
inet6 addr: fe80::527b:9dff:fe25:2959/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:573710854 errors:0 dropped:0 overruns:0 frame:0
TX packets:849943293 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:58543890628 (54.5 GiB) TX bytes:1248037935176 (1.1 TiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:17370722 errors:0 dropped:0 overruns:0 frame:0
TX packets:17370722 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:65642509325 (61.1 GiB) TX bytes:65642509325 (61.1 GiB)
---------------------------------------------------------
检验原理:
arping命令是以广播地址发送arp packets,以太网内所有的主机都会收到这个arp packets,但是本机收到之后不会Reply任何信息。
当我们在linux主机端上执行下面的命令时:
arping 192.168.9.120
会默认使用eth0,向局域网内所有的主机发送一个:
who has 192.168.9.120的arp request,tell 192.168.9.120 your mac address,
当这台windows主机端收到这个arp packets后,则会应答:
"I am 192.168.9.120 , mac是00:25:e4:6a:4b:f4",这样我们会收到mac地址为00:25:e4:6a:4b:f4的windows主机的Reply信息。
---------------------------------------------------------
---------------------------------------------------------
第二种方法(arp-scan)
arp-scan这个工具会在本地网络发送ARP(Address Resolution Protocol)(地址解析协议)包来收集地址。如果有多个MAC地址声称拥有相同的IP地址,那么这里就存在冲突。
首先安装arp-scan则输入:
[root@dev ~]# yum install -y arp-scan
------------------------------------
如果报错说没有这个软件包,则需要提前安装epel软件仓库
centos5 64位:
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
centos6 64位:
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
centos6 64位:
yum install -y http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
------------------------------------
要检测IP冲突,运行下面的命令:
[root@dev ~]# arp-scan -l
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.9.2 with 256 hosts (http://www.nta-monitor.com/tools-resources/security-tools/arp-scan/)
192.168.9.1 00:25:b3:f9:16:3e Hewlett Packard
192.168.9.2 30:8d:99:ab:42:40 Hewlett Packard
192.168.9.4 24:26:42:a6:81:f9 SHARP Corporation.
192.168.9.7 f4:ce:46:3e:15:d6 Hewlett Packard
192.168.9.8 08:2e:5f:bd:0f:43 Hewlett Packard
192.168.9.9 00:21:5a:84:9d:0c Hewlett Packard
................
................
192.168.9.119 68:f7:28:d5:d4:26 LCFC(HeFei) Electronics Technology co., ltd
192.168.9.120 50:7b:9d:25:29:59 LCFC(HeFei) Electronics Technology co., ltd
192.168.9.120 40:F4:EC:76:79:C2 VMware, Inc. (DUP: 2)
192.168.9.121 00:23:24:9b:09:89 G-PRO COMPUTER
192.168.9.122 b8:88:e3:35:8e:74 COMPAL INFORMATION (KUNSHAN) CO., LTD.
...............
...............
110 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.2: 256 hosts scanned in 2.257 seconds (113.42 hosts/sec). 110 responded
由上面信息可知:192.168.9.120这个IP冲突了,因为它出现了两次,并且可知这个ip被vmware虚拟机占用了。
需要找到使用这个ip的机器,将其ip更换即可!
1)“arp-scan -l” 命令表示查看与本机在同一局域网内的所有机器的ip使用情况
2)“arp-scan –I eth0 -l” 命令表示查看与本机在同一局域网内的所有主机的eth0网卡的ip使用情况
--------------------------------------------------------
windows本机使用“arp -a”命令查看是否有ip冲突:

如果查出有两个ip一样,就说明ip冲突了。
Linux下检测IP地址冲突及解决方法的更多相关文章
- 【IP】Linux中检测IP地址冲突
在Windows系统中,如果本地网络IP地址出现冲突,会出现图标提示. 在Linux系统中,并没有提供相关的功能,如果本地网络采用静态IP地址配置,出现比较奇怪的网络连接问题,如ssh连接复位,可以考 ...
- CentOS/Linux下设置IP地址
CentOS/Linux下设置IP地址 1:临时修改:1.1:修改IP地址# ifconfig eth0 192.168.100.100 1.2:修改网关地址# route add default g ...
- 获取Linux下的IP地址 java代码
/** * 获取Linux下的IP地址 * * @return IP地址 * @throws SocketException */ public static String getLinuxLocal ...
- linux下修改IP地址的方法
linux下修改IP地址的方法 1.网卡的命名规则 在centos7中,en表示着:ethernet以太网,即现在所用的局域网,enX(X常见有以下3种类型) 2.IP地址的临时修改(重启后失效) 查 ...
- windows下获取IP地址的两种方法
windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...
- Linux下配置ip地址四种方法
linux系统安装完,以后通过命令模式配置网卡IP.配置文件通常是/etc/sysconfig/network-scripts/ifcfg-interface-nameifconfig后显示的内容,l ...
- linux下设置ip地址 gw网关,dns的方法
本文介绍下,在linux中设置IP地址.网关.dns的方法,有需要的朋友作个参考吧. 设置linux网络的方法有两种:第一种:使用命令修改(直接即时生效) 复制代码代码示例: ip and net ...
- 检测IP地址冲突的shell脚本-check_server_ip_conflict.sh
check_server_ip_conflict.sh 使用arping获取对应IP地址的MAC地址,如果和预料的不一致则报警: #!/bin/bash epg_addr_01="00:50 ...
- linux下配置ip地址四种方法(图文方法)
主要是用第四种方法 (1)Ifconfig命令 第一种使用ifconfig命令配置网卡的ip地址.此命令通常用来零时的测试用,计算机启动后 ip地址的配置将自动失效.具体用法如下.Ipconfig ...
随机推荐
- 穷举法破解 zebrone1.1
系统 : Windows xp 程序 : zebrone1.1 程序下载地址 :http://pan.baidu.com/s/1boqVcU7 要求 : 编写注册机 使用工具 :OD 可在看雪论坛中查 ...
- Linux0.11内核剖析--初始化程序(init)
1.概述 在内核源代码的 init/目录中只有一个 main.c 文件. 系统在执行完 boot/目录中的 head.s 程序后就会将执行权交给 main.c.该程序虽然不长,但却包括了内核初始化的所 ...
- Tomcat服务器性能优化
在这篇文章里分以下的七个步骤,按照这些步骤走,Tomcat服务器的性能就能改善哦. 增加JVM堆(heap) 解决内存泄漏问题 线程池(thread pool)的设置 压缩 调节数据库性能 Tomca ...
- canvas & animation
1.using canvas using canvas to set difference property. it will showing like an animation. The true ...
- 最新Burpsuite Pro v1.7.03 介绍和破解版下载
0x00 介绍 Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTTP 消息, ...
- 拿什么守护你的Node.JS进程: Node出错崩溃了怎么办? foreverjs, 文摘随笔
守护进程 方案一 npm install forever https://github.com/foreverjs/forever 方案二 npm install -g supervisor http ...
- select_tag 选择后自动提交,并且保持选择的项
使用select来选择,,,选择就响应真是花了好大的功夫....你妹...在controller设置变量来储存选择后的值...js中如果select选择为空那么传入的值是””而不是null selec ...
- linux 同步IO: sync msync、fsync、fdatasync与 fflush
最近阅读leveldb源码,作为一个保证可靠性的kv数据库其数据与磁盘的交互可谓是极其关键,其中涉及到了不少内存和磁盘同步的操作和策略.为了加深理解,从网上整理了linux池畔同步IO相关的函数,这里 ...
- HTTPS连接的前几毫秒发生了什么——Amazon HTTPS案例分析
转自: http://blog.jobbole.com/48369/ 提示:英文原文写于2009年,当时的Firefox和最新版的Firefox,界面也有很大改动.以下是正文. 花了数小时阅读了如潮的 ...
- C/S架构程序多种类服务器之间实现单点登录(转)
(一) 在项目开发的过程中,经常会出现这样的情况:我们的产品包括很多,以QQ举例,如登陆.好友下载.群下载.网络硬盘.QQ游戏.QQ音乐等,总不能要求用户每次输入用户名.密码吧,为解决这个问题,高手提 ...