在本地网络上ping计算机:目标主机无法访问

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

我有来自Telus的ActionTech v1000h路由器。 我与他们的一位客户代表保持联系,他们说没有任何理由说明为什么两台设备无法在网络上相互ping通。

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

电脑1:

ifconfig -a

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:

ifconfig -a

 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  on wlan0 

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

 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:两台计算机的tcpdump日志,第一次ping 192.168.1.254,然后互相:

电脑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:为两台计算机etho0设置静态ips,并使用互联网电缆连接它们。 两台计算机绝对可以通过以太网线相互ping通! ifconfig -a eth0结果:

电脑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) 

从两台计算机ping网关ping 192.168.1.254然后尝试ping comp1到compt2和comp2到comp1然后从BOTH框发布arp -a结果

编辑

有趣的是,有些东西阻塞了流量

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

EDIT2

到目前为止,这表明comp1正在做的是发送arp请求(要求comp2s以太网地址),但没有得到arp回复(听到任何回复)。 需要从PC2看到tcpdump才能看到完整的图片。 要么运行屏幕命令,要么在PC1上执行此操作sudo tcpdump -w pc1.pcap -ni wlan0 arp &和PC2上的sudo tcpdump -w pc2.pcap -ni wlan0 arp & &&应该把它扔到后台并给你提示回来用于ping。 ping操作失败后,将作业恢复到前台fg %1停止ctrl+c并使用sudo tcpdump -r pc1/2.pcap读取写入的文件

Edit3个人正在做他们想要做的事情,把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两者个人电脑应该看到它,我们可以看到PC1看到了它并用它的IP回复但是不能告诉PC2是否因为你停止它而在22:45:09.796214短暂停止。 假设你的时钟与NTP同步。

Edit4

看到它仍未解决。 没看到两台PC上都有eth适配器。 你可以硬连接到eth而不是wlan上的路由器,看看你能不能ping通? 或者换另一台路由器? 或者在手机上建立热点连接两台PC并尝试ping? 另外,惊讶地发现您可以将两台PC连接在一起并相互ping通,是否使用了交叉电缆?

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

然后,如果问题来自您的路由器或您的计算机,您将很快知道。

当我看到像这样奇怪的东西时,我的拳头响应是安装wireshark。

然后创建它,以便您有权将其用作非root用户:

 sudo dpkg-reconfigure wireshark-common 

选择“是”选项。

 usermod -a -G wireshark your-user-name 

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

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

如果你在一台机器上运行wireshark,然后尝试从另一台机器上ping,那么你应该在运行wireshark的机器上看到一些东西,上面写着“谁有<你正在尝试ping>”。 如果你得到了,那么试图ping的计算机正在接受wireshark计算机收到的请求。 希望您还应该在wireshark中看到“<您尝试ping的IP地址>在”的行。 如果你这样做,那么wireshark计算机正在响应。 如果是这种情况,那么尝试在计算机上运行wireshark ping,看看你是否可以在ping计算机上看到“<你正在尝试ping的IP地址>在”的响应。

如果这个级别太低并且超过你的头脑,我道歉。 这种方法确实深入细节。 但是能够看到网络上实际发生的事情往往会使问题变得更加明显。

我的局域网(仅限ubuntu机器)出现了相同的症状。 它发生在我们有一个新的路由器。 它是那些双频带之一。 无法弄清楚问题,直到我认为可能是一个“乐队”与另一个完全脱节。 应该很容易测试,我将一台机器从wifi断开并重新连接(到相同的SSID),你知道什么,我很幸运(它有50%的机会?)它出现在另一台的局域网上机器,我现在可以ping并登录它! 上面的“nmap”给了我线索。 谢谢你的想法。

完成路由器的配置,查看本地网络防火墙是否未启动。 默认情况下,某些路由器将连接的设备彼此隔离。

你也可以使用nmap

 $ nmap -sn 192.168.1.0/24 

看看是否有任何想法。

有些东西搞砸了你的路由表,但我看不出它有什么问题。 “主机无法访问”意味着内核无法决定使用哪个适配器来发送数据包,因此它会放弃并丢弃数据包。

本地网络的度量标准是9.应该是0或1.但是传言Linux内核忽略了该度量标准。

我会尝试添加到特定主机的路由。 在计算机1上试试这个:

route add -host 192.168.1.2 metric 0 dev wlan0

也尝试删除到169.254.0.0的路由,看看是否有帮助。 这不太可能,但你永远不会知道。

编辑

你没有运行VPN,对吗? 众所周知,Cisco VPN会干扰本地网络连接。

来自计算机1计算机2的所有数据包都会路由到每个本地主机上的wlan0 ,但这两个无线接口都与无线网络无关。

您是否手动分配了IP地址? 它们应该由路由器通过DHCP提供,作为关联/认证设置的一部分。

在每台计算机上执行sudo iwlist wlan0 scan ,以查看每台计算机可用的无线网络。 其中一个应该是你的路由器。 路由器是否配置了与默认值不同的ESSID(无线网络名称)?

路由器配置/能够进行哪种加密? 选择是无(非常非常糟糕),WEP(非常糟糕),WPA(坏)和WPA2(现在最好)。 所有3个系统必须就通用加密达成一致。

一旦理顺, 计算机1应该能够无线连接到路由器,从中获取IP地址(以及其他网络信息,如默认网关,MTU)。 能够ping路由器。

重复计算机2

然后,只有这样,如果路由器允许本地地址路由,你真的可以ping

问题似乎出现在您的网络中。 不是在linux机器本身。 我会说这是你的无线路由器/接入点与你玩弄技巧。

  • 由于您可以从两台主机访问Internet,因此可以通过ARP请求获取默认网关MAC。
  • 他们不会得到彼此的ARP请求或回复。
  • 他们(在计算机1上certificate)获得路由器ARP请求。

这表明您的路由器/ AP吞下ARP请求,并且没有ARPfunction,他们不知道另一个的MAC,因此他们不能互相通信以太网。

尝试让路由器DHCP分配地址,而不是自己静态分配地址

或者将它们静态添加到您的ARP缓存中 ,看看是否有帮助。

在Computer1上:

 arp -s 192.168.1.2 00:22:43:9b:7b:64 

在Computer2上:

 arp -a 192.168.1.77 c4:85:08:77:d3:f5