root@prateek-desktop:~# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.146 icmp_seq=1 Destination Host Unreachable
From 192.168.0.146 icmp_seq=2 Destination Host Unreachable
From 192.168.0.146 icmp_seq=3 Destination Host Unreachable
root@prateek-desktop:~# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
pingができないのはなぜですか?
ファイアウォールが無効になっています...
192.168.0.1 は DHCP 対応無線ルーターの IP アドレスです。ルーターのイーサネットポートには、DHCPによって割り当てられたIPアドレスがあります。マイコンピュータのIPアドレスは192.168.0.146です。ルータとPCは同じネットワークを持っています。マイコンピュータには、ネットワーク設定で192.168.0.146として指定されたデフォルトゲートウェイがあります。私の他のデバイスはマイコンピュータにpingを実行できますが、マイコンピュータは自分のコンピュータが直接接続されているルータを含む他のデバイスにpingを実行できません。
答え1
[編集]私の他のデバイスはマイコンピュータをpingできますが、マイコンピュータは自分のコンピュータが直接接続されているルータを含む他のデバイスにpingすることはできません。
他のデバイスに競合するIPアドレスがあることを確認します。
(あなたの結果がこれと一致しているかどうかはわかりませんが、ping
ARPの私の直感とうまく合わず、残念ながらGoogleの検索結果で同様の組み合わせを見つけることができませんでした。見つけるのに役立ちます。
PCでMACアドレス(「ハードウェアアドレス」)を見つけます。実行中の場合、ip link show dev eth1
MACアドレスは後で表示される値ですlink/ether
。
他のデバイスの1つで、IP用にキャッシュされたMACアドレス(192.168.0.146)をもう一度確認してください。他のデバイスでLinuxを実行している場合は、ARPキャッシュを確認できますip -4 neigh
。他のデバイスでWindowsを実行している場合は、次のものを使用できますarp -a
(Windowsのコマンドライン)。 IP 192.168.0.146に別のMACアドレスが表示されている場合は、実際にはPC以外のデバイスにpingを送信します。
以前のバージョン:
pingができないのはなぜですか?
AfroJoe:理由はたくさんあります
技術的に言うと、ping
「ターゲットホストに接続できません」と言うのは非常に具体的なエラーメッセージです!あなたの出力は、ほぼ確実にARPチェックが失敗したことを意味します。存在する192.168.0.146
。このコンピュータはあなたが実行しているのと同じコンピュータであるように見え、ping
その後編集でこれを確認しました。この場合、ARPの問題を確認する方法は次のとおりです。
$ ping 172.16.8.2
PING 172.16.8.2 (172.16.8.2) 56(84) bytes of data.
From 172.16.8.205 icmp_seq=1 Destination Host Unreachable
From 172.16.8.205 icmp_seq=2 Destination Host Unreachable
From 172.16.8.205 icmp_seq=3 Destination Host Unreachable
^C
--- 172.16.8.2 ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3050ms
pipe 4
$ ip -4 neigh
172.16.8.1 dev wlp2s0 lladdr 74:44:01:86:42:d6 REACHABLE
172.16.8.2 dev wlp2s0 INCOMPLETE
成功したARP解決には、次の交換が含まれます。
$ sudo tcpdump -n -i wlp2s0 arp or icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlp2s0, link-type EN10MB (Ethernet), capture size 262144 bytes
...
13:43:49.469349 ARP, Request who-has 172.16.8.1 tell 172.16.8.205, length 28
13:43:49.470046 ARP, Reply 172.16.8.1 is-at 74:44:01:86:42:d6, length 28
13:43:49.852608 IP 172.16.8.205 > 172.16.8.1: ICMP echo request, id 5246, seq 21, length 64
13:43:49.854600 IP 172.16.8.1 > 172.16.8.205: ICMP echo reply, id 5246, seq 21, length 64
13:43:50.853879 IP 172.16.8.205 > 172.16.8.1: ICMP echo request, id 5246, seq 22, length 64
13:43:50.855867 IP 172.16.8.1 > 172.16.8.205: ICMP echo reply, id 5246, seq 22, length 64
^C
18 packets captured
18 packets received by filter
0 packets dropped by kernel
(pingを実行し、強制ARPフラッシュを使用すると観察されますip neigh flush dev wlp2s0
)。
注:この説明は、デフォルトping
で「通常の」TCP / IPアプリケーションでssh
「ホストに接続できません」というメッセージを受信し、完全なICMP応答をデコードします。したがって、このエラーは、明示的に「管理的に禁止」されたエラーであることを示しています。curl
ping
ping
ただ「ホストに接続できません。」
また、今回のQ&AはIPv4に関するものです。 IPv6にどのように適応するかを確認していません。
ARP検証が失敗するのはなぜですか?
AfroJoe:理由はたくさんあります
私にはもう一つの秘密の知識があります。 Ubuntu クライアントシステムが誰かが意図的に設定しない限り、アドレスは192.168.0.146
DHCP パケット交換によって割り当てられます。通常、この交換にはルーターが含まれますが、他の場合はWindows Serverまたは他の種類のサーバーのみを含めることができます。 この場合、ルーターはDHCPサーバーまたはリレーであり、システムはすでに切り替えることができます。一部ルーター付きパケット。
接続を切断してリセットすることで、DHCP交換再トリガをテストできます。 [*]もちろん、問題が「ランダムに」繰り返され続ける場合、これは根本的な問題を解決せず、接続がまだ切断されているかどうかを調べることができます。
([*] Apple は DHCP 交換を行う最適化を作成しました。後ろに特定のARPパケット交換。おそらくこれには新しい欠点があるかもしれませんが、Linuxで使用されているものを見たことがありません。 )
このエラーは、特定のポイントで無線信号が切断されたときにDHCPとWiFi接続を使用すると頻繁に表示されます。 (そして、無線層が完全に放棄する前にこれをキャプチャすることができます...なぜこれが頻繁に起こるのかわかりません。おそらくバグがあるか、間違って書かれたシステムを見ているかもしれません。)しかし、eth1はWiFi接続ではありません。 。
私はIPv4用DHCPがARPなしで動作すると思います。少なくとも初期のDHCP交換ではそうです。
残りの可能性
あなたの質問の元のバージョンの事実に基づいて、特に一般的な個々のケースを考えることは困難です。 (私の暗黙の仮定も含まれています。助けがなければ誰もこの質問をしません。努力するコンピュータを動作しているルータに接続します。
- 接続されているネットワークにアドレスを持つデバイスがありません
192.168.0.1
。これがDHCPアドレスを提供した場合は、ネットワークから削除されました。プラグを抜くか、ただ死ぬ。 - eth1を手動で設定し、次のいずれかを設定しました。
- UbuntuデスクトップでNetworkManagerを使用していない
- 実際にイーサネットリンクを検出できませんでした(確認
ethtool
)。 - または、イーサネットリンクを検出しましたが、スイッチにパスワードを提供するか、別の認証を使用する必要があります。802.1X。
- または、イーサネットリンクが検出されましたが、ネットワーク管理者にコンピュータのMACアドレスを登録する必要があります。
- 実際にイーサネットリンクを検出できませんでした(確認
- ケーブルの性能はリンクを検出するのに十分ですが、パケットを確実に送信するのに十分ではありません。
- UbuntuデスクトップでNetworkManagerを使用していない
答え2
150億の理由の1つがあるかもしれません。そのうちのいくつかは次のとおりです。
- デスクトップのネットワーク構成の問題。 (正しいゲートウェイを設定しましたか?)
- ターゲットシステムファイアウォールがpingに応答しないように設定されています。
- ネットワークに接続するケーブルが破損しています
- システムには、他のホストのICMP応答をブロックするファイアウォールルールがあります。
- ネットワーク全体のファイアウォール構成はICMPをフィルタリングします(スイッチ構成を含む)。
問題はただ提供された情報には追加診断を行う方法がまったくないので、この質問は「広すぎる」と言われています。