Если вы man ping свою версию, вы увидите, что одним из параметров является параметр hop (ping [hop ...] destination), это позволяет вам пропинговать ваше назначение через hop и полезно, если у вас есть несколько шлюзов и хочу явно указать маршрут пинга.
Таким образом, ping ping localhost будет пинговать localhost при использовании ping качестве hop . Но реальный вопрос заключается в том, почему ping ping работает и не возвращает unknown host ошибку хоста ? Следует отметить, что выполнение команды ping ping в Windows и некоторых вариантах BSD возвращает unknown host ошибку хоста , но не по причинам, о которых можно подумать.
Если я выполняю ping ping в моей системе, я получаю 127.0.53.53 , и после некоторого осмотра я нашел соответствующий ответ, который помогает объяснить этот результат; в двух словах, это связано с используемым вами DNS-сервером и структурой коллизий именования ICANN, которая возвращает адрес 127.0.53.53 для некоторых общих TLD (очевидно, ping - один). Некоторые ОС и версии утилиты ping могут добавлять TLD (или ваш локальный домен) к месту назначения для вас, поэтому, если вы выполнили ping ping , она может фактически выполнить ping ping.com или ping ping.localdomain и вернуть ожидаемые результаты. (против предоставления 127.0.53.53).
Это должно помочь объяснить, почему вы видите потерю пакетов при выполнении команды ping ping localhost ; вы перенаправляете свои эхо-запросы через локальный localhost на эхо-запрос вашего localhost , который, если ваша система не настроена для этого (запросы на маршрутизацию маршрутизации), завершится ошибкой и вернет потерю пакетов, которую вы видите.
Надеюсь, что это может помочь.