
我在本地網路上有兩台 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 時出現的錯誤範例:
平 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:兩台電腦的 tcpdump 日誌,先 ping 192.168.1.254,然後互相ping:
電腦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 設定靜態 ip 並使用網路線連接它們。兩台電腦絕對可以透過乙太網路線互相 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)
答案1
從兩台電腦 ping 網關ping 192.168.1.254
,然後嘗試 ping comp1 到 compt2,以及 ping 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 %1
停止ctrl+c
並讀取寫入的文件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 而不是 wlan 硬連接到路由器,看看是否可以 ping 通嗎?或再買一個路由器?或在手機上設定熱點連接兩台電腦並嘗試 ping 通?另外,很驚訝地發現您能夠將兩台 PC 連接在一起並互相 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 電腦上看到「<ip 位址您嘗試 ping> 位於 <mac 位址>」回應。
如果這水平太低並且超出了您的理解範圍,我深表歉意。這種方法確實深入細節。但能夠看到網路上實際發生的情況往往會使問題變得更加明顯。
答案4
我的 LAN(僅限 ubuntu 機器)也有相同的症狀。自從我們有了新路由器以來就發生了這種情況。這是雙頻的之一。無法理解這個問題,直到我想到可能一個“樂隊”與另一個“樂隊”完全脫節。應該很容易測試,我斷開一台機器的WiFi 並重新連接它(到同一個SSID),你知道嗎,我很幸運(是50-50 的機會嗎?),它出現在另一台機器的LAN 上機器,我現在可以 ping 並登入它!上面的「nmap」給了我線索。謝謝你的主意。