![簡單的網路問題](https://rvso.com/image/1284804/%E7%B0%A1%E5%96%AE%E7%9A%84%E7%B6%B2%E8%B7%AF%E5%95%8F%E9%A1%8C.png)
在網路中我的IP是192.168.1.101。我正在嘗試建立另一台IP為192.168.1.102的家用電腦(使用路由器連線)。現在,當我在 192.168.1.102 關閉時 ping 時,我得到Sent = 4, Received = 4, Lost = 0 (0% loss)
。但是,那台電腦已關閉,
- 為什麼我會得到
0% loss
.0% loss
當 192.168.1.102 打開時我也會收到此訊息。 - 是否
Destination host unreachable.
可以安全地假設在 ping 任何 IP 後,如果我得到此信息,則該 IP 已與網路斷開連接? - 一個IP在一個網路中只能有兩種狀態嗎?可到達(開啟並且可以 ping 通)和不可到達(關閉所以無法 ping 通)
- ping 可以被防火牆封鎖嗎?如果是,如何檢查該IP是否在我的網路中?
什麼時候192.168.1.102已關閉
C:\Users>ping 192.168.1.102
Pinging 192.168.1.102 with 32 bytes of data:
Reply from 192.168.1.101: Destination host unreachable.
Reply from 192.168.1.101: Destination host unreachable.
Reply from 192.168.1.101: Destination host unreachable.
Reply from 192.168.1.101: Destination host unreachable.
Ping statistics for 192.168.1.102:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
什麼時候192.168.1.102已開啟
C:\Users>ping 192.168.1.102
Pinging 192.168.1.102 with 32 bytes of data:
Reply from 192.168.1.102: bytes=32 time=172ms TTL=128
Reply from 192.168.1.102: bytes=32 time=1ms TTL=128
Reply from 192.168.1.102: bytes=32 time=1ms TTL=128
Reply from 192.168.1.102: bytes=32 time=29ms TTL=128
Ping statistics for 192.168.1.102:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 172ms, Average = 50ms
答案1
Windows ping 會報告0% loss
這種情況,但 Linux 的 ping 會報告100% loss
。這確實是一個語義問題,因為在「目標主機無法存取」的情況下,實際的 ping 封包不會發送(這是 ARP 查找失敗)。
回答你的第二個問題:即使機器處於開啟狀態,ping也可能會失敗,因為防火牆可以阻止ICMP ping封包。
如果您需要有關問題的替代解決方案的建議,請詳細說明您嘗試執行的「身份驗證」類型。
如果您只想知道某個位址是否位於同一本機網路(「子網路」)上,您可能會對該route print
指令感興趣。查看網路目標和網路遮罩列以確定目前子網路的位址範圍。
答案2
您的路由器報告其接收情況為 100%,而不是主機。該主機顯然是“目標主機無法存取”,因為電腦關閉時無法存取該主機。
這是正常行為,而且正是當我 ping 一個我知道未使用且之前未使用過的 IP 位址時所得到的結果。在這種情況下,路由器不知道主機是否可達。
ping 還可以返回一個回复,那就是“請求超時”,這與“目標主機無法訪問”之間的區別在於,在某個時刻,相關 IP 已進入路由器的 ARP(地址解析協議)表之前打開時。它知道它是可以訪問的,但現在報告說它無法訪問。
當然,Ping 可以被軟體防火牆阻止。最簡單的檢查方法是暫時關閉防火牆。