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アドレスなので、明示的にping
IPv4を使用します。
使用sysctl
している製品はIPv4 pingにのみ影響するため、応答を受け取りますが、::1
応答を受け取ることはできません127.0.0.1
。
確認によって取得されるアドレスは、localhost
DNS リゾルバがどのように設定されたかによって異なります。localhost
に設定されている可能性がありますが、/etc/hosts
理論的には実際のネームサーバーからインポートできます。
ip6tables
IPv6 pingを削除する方法については、IPv6と似ていないようですので、確認してみることをお勧めします。sysctl
または、ネットワークで IPv6 を使用していない場合は、IPv6 を完全に無効にします。 (もちろん、これは非常に未来志向のアイデアではありませんが、現在使用していない場合は実行可能です。)