在本地网络上 ping 计算机:目标主机不可达

在本地网络上 ping 计算机:目标主机不可达

我在本地网络上有两台 ubuntu 计算机,两台计算机都无法 ping 通对方。每次我尝试时都会收到“目标主机无法访问”错误消息。两台计算机都可以毫无问题地访问互联网。

我有一台 Telus 的 ActionTech v1000h 路由器。我联系了他们的一位客户代表,他们说网络上的两个设备无法互相 ping 通应该没有任何原因。

我完全不知所措,你们有什么想法吗?

计算机 1:

配置文件

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:65536  Metric:1
          RX packets:10084 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10084 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:797420 (797.4 KB)  TX bytes:797420 (797.4 KB)

wlan0     Link encap:Ethernet  HWaddr c4:85:08:77:d3:f5  
          inet addr:192.168.1.77  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::c685:8ff:fe77:d3f5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:373068 errors:0 dropped:0 overruns:0 frame:0
          TX packets:380158 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:103445020 (103.4 MB)  TX bytes:112630337 (112.6 MB)

路线-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

计算机2:

配置文件

etho0     Link encap:Ethernet HWaddr 00:24:8c:ae:f6:91
          UP BROADCAST MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:2
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

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:65536  Metric:1
          RX packets:110 errors:0 dropped:0 overruns:0 frame:0
          TX packets:110 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:8414 (8.4 KB)  TX bytes:8414 (8.4 KB)

wlan0     Link encap:Ethernet  HWaddr 00:22:43:9b:7b:64  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::222:43ff:fe9b:7b64/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:252 errors:0 dropped:0 overruns:0 frame:0
          TX packets:435 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:123143 (123.1 KB)  TX bytes:65828 (65.8 KB)

路线-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

编辑:计算机 1 尝试 ping 计算机 2 时出现的错误示例:

ping 192.168.1.2

PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
From 192.168.1.77 icmp_seq=1 Destination Host Unreachable
From 192.168.1.77 icmp_seq=2 Destination Host Unreachable
From 192.168.1.77 icmp_seq=3 Destination Host Unreachable
From 192.168.1.77 icmp_seq=4 Destination Host Unreachable
From 192.168.1.77 icmp_seq=5 Destination Host Unreachable
From 192.168.1.77 icmp_seq=6 Destination Host Unreachable
^C
--- 192.168.1.2 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6031ms
pipe 3

编辑2: arp -a两台计算机

计算机 1:

? (192.168.1.254) at 20:76:00:f5:3b:70 [ether] on wlan0

计算机2:

? (192.168.1.254) at 20:76:00:f5:3b:70 [ether] on wlan0
? (192.168.1.77) at <incomplete> on wlan0

编辑3: nmap -sn 192.168.1.0/24在计算机 2 上

Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 21:14 PDT
Nmap scan report for 192.168.1.2
Host is up (0.00024s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 3.30 seconds

编辑4:两台计算机在第一次 ping 192.168.1.254 并互相 ping 时,其 tcpdump 日志如下:

计算机 1:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
22:45:01.661300 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:02.659393 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:03.659394 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:04.676872 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:05.675391 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:06.675396 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:07.692825 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28
22:45:48.379108 ARP, Reply 192.168.1.77 is-at c4:85:08:77:d3:f5, length 28
22:45:54.419388 ARP, Request who-has 192.168.1.254 tell 192.168.1.77, length 28
22:45:54.420875 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70, length 28

计算机2:

reading from file pc2.pcap, link-type EN10MB (Ethernet)
22:44:43.538367 ARP, Request who-has 192.168.1.254 tell 192.168.1.2, length 28
22:44:43.676705 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70 (oui Unknown), length 28
22:45:02.107935 ARP, Request who-has 192.168.1.254 tell 192.168.1.2, length 28
22:45:02.107951 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70 (oui Unknown), length 28
22:45:06.780619 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:07.778419 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:08.778419 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:09.796214 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28

编辑5:为两台计算机设置静态 IP,etho0,并用网线连接。两台计算机都可以通过以太网线互相 ping 通!ifconfig -aeth0 结果:

计算机 1:

eth0      Link encap:Ethernet  HWaddr 68:68:68:00:62:a4  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6a68:68ff:fe00:62a4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4060 (4.0 KB)  TX bytes:7629 (7.6 KB)

计算机2:

eth0      Link encap:Ethernet  HWaddr 00:24:8c:ae:f6:91  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::224:8cff:feae:f691/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:250 errors:0 dropped:0 overruns:0 frame:0
          TX packets:130 errors:0 dropped:0 overruns:0 carrier:3
          collisions:0 txqueuelen:1000 
          RX bytes:26501 (26.5 KB)  TX bytes:20897 (20.8 KB)

答案1

从两台计算机 ping 网关ping 192.168.1.254 ,然后尝试 ping comp1 到 compt2 以及 comp2 到 comp1,然后发布arp -a两个盒子的结果

编辑

有趣的是,有东西阻塞了交通

在两台计算机上的一个窗口中运行sudo tcpdump -ni wlan0 arp,然后再次尝试从另一窗口互相 ping 对方和网关并发布结果

編輯2

到目前为止,这表明 comp1 正在执行其应有的操作,即发送 arp 请求(询问 comp2 的以太网地址),但没有收到 arp 回复(听不到任何回复)。需要查看 PC2 的 tcpdump 才能看到完整的画面。运行 screen 命令或在 PC1sudo tcpdump -w pc1.pcap -ni wlan0 arp &和 PC2 上执行此操作sudo tcpdump -w pc2.pcap -ni wlan0 arp & &应该将其置于后台并为您提供 ping 提示。ping 失败后,使用fg %1stop 将其恢复到前台ctrl+c,并使用 read 读取写入的文件sudo tcpdump -r pc1/2.pcap

编辑3 PC 正在做它们应该做的事情,发送 ARP,但它们没有通过,这指向路由器。也许是禁用防火墙设置,怀疑它是否支持 VLAN?有点希望你让它运行更长时间22:45:48.379058你的路由器在寻找 PC1 时发送了自己的 ARP 请求,22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28两台 PC 都应该看到了,我们可以看到 PC1 看到了,并用它的 IP 回复了,但无法判断 PC2 是否收到了,因为你停止了它,它很快就停在了22:45:09.796214。假设您的时钟与 NTP 同步。

编辑4

发现问题仍未解决。没看到两台电脑上都有 eth 适配器。你能将路由器的 eth 而不是 wlan 硬连线进去,看看能不能 ping 通吗?还是换一个路由器?或者在手机上设置一个热点,连接两台电脑,然后尝试 ping 通?另外,很惊讶地发现你能够将两台电脑连接在一起,互相 ping 通,你用的是交叉线吗?

答案2

尝试使用以太网电缆直接连接两台计算机,并将其设置为固定 IP 地址(例如 A:192.168.1.10,B:192.168.1.20),然后再次尝试 ping 通。

然后您就会很快知道问题是出在您的路由器还是您的计算机上。

答案3

当我看到这种奇怪的事情时,我的第一个反应是安装 wireshark。

然后确保您有以非 root 身份使用它的权限:

sudo dpkg-reconfigure wireshark-common

选择“是”选项。

usermod -a -G wireshark your-user-name

注销并重新登录以获取新的组成员身份,现在您可以以非 root 用户身份运行捕获数据包。

然后在机器上运行 wireshark,选择连接到网络的接口。尽量减少除测试之外的流量,以便更容易解释结果。

如果你在一台机器上运行 wireshark,然后尝试从另一台机器 ping ,你应该在运行 wireshark 的机器上看到类似“谁拥有 <您尝试 ping 的 ip>”的内容。如果看到该内容,则尝试 ping 的计算机的请求已被 wireshark 计算机接收。希望您还能在 wireshark 中看到类似“<您尝试 ping 的 ip 地址> 位于 <mac 地址>”的内容。如果看到,则 wireshark 计算机正在响应。如果是这种情况,请尝试在正在 ping 的计算机上运行 wireshark,看看是否能在正在 ping 的计算机上看到“<您尝试 ping 的 ip 地址> 位于 <mac 地址>”响应。

如果这个方法太低级,您无法理解,我深表歉意。这种方法确实深入到了细节。但是,能够看到网络上实际发生的情况往往会让问题变得更加明显。

答案4

我的 LAN 也出现了同样的症状(仅限 ubuntu 机器)。自从我们换了一台新路由器后,这种情况就出现了。它是双频路由器之一。我一直搞不清楚问题所在,直到我意识到一个“频带”可能与另一个频带完全脱节。应该很容易测试,我断开了一台机器的 wifi 连接,然后重新连接(连接到同一个 SSID),你知道吗,我很幸运(概率是 50-50?),它出现在另一台机器的 LAN 上,我现在可以 ping 并登录它!上面的“nmap”给了我线索。谢谢你的想法。

相关内容