ping localhostとping 127.0.0.1の違いは何ですか?

ping localhostとping 127.0.0.1の違いは何ですか?

ping応答を無効にしたら、次のコマンドを実行します。

# sysctl net.ipv4.icmp_echo_ignore_all=1
# sysctl -p

localhostと127.0.0.1をpingすると、他の結果が表示されます。

# ping -c 3 localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.101 ms

--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2042ms
rtt min/avg/max/mdev = 0.047/0.072/0.101/0.022 ms

ping 127.0.0.1 失敗:

ping -c 3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

--- 127.0.0.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2032ms

なぜ結果が違うのですか?

ベストアンサー1

このpingコマンドは、名前が解決されるアドレスを表示します。この場合、IPv6 localhostアドレスで解決されます::1。一方、127.0.0.1はIPv4アドレスなので、明示的にpingIPv4を使用します。

使用sysctlしている製品はIPv4 pingにのみ影響するため、応答を受け取りますが、::1応答を受け取ることはできません127.0.0.1

確認によって取得されるアドレスは、localhostDNS リゾルバがどのように設定されたかによって異なります。localhostに設定されている可能性がありますが、/etc/hosts理論的には実際のネームサーバーからインポートできます。


ip6tablesIPv6 pingを削除する方法については、IPv6と似ていないようですので、確認してみることをお勧めします。sysctlまたは、ネットワークで IPv6 を使用していない場合は、IPv6 を完全に無効にします。 (もちろん、これは非常に未来志向のアイデアではありませんが、現在使用していない場合は実行可能です。)

おすすめ記事