問題說明:
在公司辦公網內的一臺物理機A上安裝了linux系統(ip:192.168.9.120),在上面部署了jenkins,redmine,svn程序。因爲是在辦公網內,這臺機器和同事電腦都是在同一網段的。
忽然某天問題出來了:有部分同事遠程ssh登錄不上這臺linux系統的機器,jenkins/redmine/svn也登錄不上,其餘部分同事能夠正常使用。linux
後來發現,是由於這臺linux機器的ip被人佔用了,ip地址衝突引發的!!windows
下面介紹下檢查ip地址是否衝突的方法:
第一種方法(arping):centos
只須要在另外一臺同網段的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.810msssh
........svn
若是隻檢查出一個MAC地址,則表示網內A機器的的IP:192.168.9.120是惟一的工具
若是有以上信息即查出兩個MAC地址,則表示網內有一臺MAC地址爲40:F4:EC:76:79:C2的主機IP地址與A機器相同。oop
這時能夠經過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)spa
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)blog
================================================================
檢驗原理:
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衝突了。