42

Я пытаюсь пропинговать мой веб-сайт http://www.example.com/ и он переходит на неизвестный IP-адрес и время ожидания истекает.

PING http://www.example.com/ (198.105.254.228): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2

но когда я пинг example.com это работает

Что мне здесь не хватает?

4 ответа4

106

Я пытаюсь пропинговать мой веб-сайт http://www.example.com/, и он переходит на неизвестный IP-адрес и время ожидания истекает.

PING http://www.example.com/ (198.105.254.228): 56 data bytes
Request timeout for icmp_seq 0

Аргументом ping является имя хоста (или IP-адрес).

Таким образом, будет работать следующее:

ping example.com
ping www.example.com
ping 127.0.0.1

С другой стороны,

ping http://www.example.com/

не будет работать, так как http://www.example.com/ является унифицированным локатором ресурсов HTTP (URL) и не является допустимым именем хоста (хотя часть его является именем хоста).

URL-адрес HTTP состоит из 4 частей:

  • Схема - всегда присутствует
  • Имя хоста - всегда присутствует
  • Путь или Стебель - всегда присутствует, но иногда ноль
  • Параметры - необязательно

Ping обычно не распознает URL-адреса в качестве допустимого имени хоста назначения.

Примечания:

  • Не все URL имеют формат, упомянутый выше.

  • Полный URL состоит из спецификатора схемы именования, за которым следует строка, формат которой является функцией схемы именования.

  • Формат URL-адреса определен в спецификации IETF « Унифицированные указатели ресурсов (URL)».


DNS угон

Исключение из вышеприведенного может произойти, если DNS-сервер (который разрешает имена хостов в IP-адреса) настроен на возвращение действительного IP-адреса, даже если указано неверное имя хоста.

Это может произойти, если интернет-провайдер захватывает ваши DNS-запросы.

Из ответа Почему ping разрешает IP 198.105.254.228 для любого случайного имени хоста, которое я печатаю? Майкл Хэмптон:

Они пытаются быть "полезными", перенаправляя запросы на несуществующие домены в службу "белого ярлыка", которая предоставляет результаты поиска и рекламу, от которой каждый, кроме вас, получает доход.

К счастью, у них есть страница настроек, где вы можете ее отключить.

32

Когда вы запускаете команду ping со строкой, которая не является IP-адресом, сначала необходимо разрешить IP-адрес хоста, на который вы пытаетесь пропинговать.

Когда вы бежите:

$ ping example.com

DNS-сервер возвращает IP-адрес сервера, на котором размещен веб-сайт.

Однако при добавлении префикса к протоколу и пути создается стандартный http-URL, который отправляется на DNS-сервер для разрешения.

Поэтому вместо того, чтобы DNS-сервер находил запись для example.com он ищет запись http://example.com/ которая не является допустимым именем хоста.

Многие DNS-серверы вернутся ни с чем. В этом случае команда ping просто выдаст ошибку DNS-разрешения.

Однако ваш DNS-сервер возвращает IP-адрес 123.456.789.000 . Похоже, что адрес Time Warner Cable предназначен для пользователей, которые неправильно набрали URL в своем браузере.

Но команда ping воспринимает это буквально и считает, что имя хоста http://example.com/ (которое не является допустимым именем хоста) разрешается по адресу 123.456.789.000 .

Причина истечения времени ожидания команды ping заключается в том, что 123.456.789.000 не отвечает на запросы ICMP.

20

Http:// обозначает протокол передачи гипертекста, протокол, используемый для доступа к веб-страницам. Проверка связи с сервером не использует HTTP, но вместо этого состоит из сообщения ICMP (протокол управляющих сообщений Интернета), поэтому http:// не имеет смысла в этом контексте.

0

Почему бы вам использовать «пинг» в любом случае. Это не сработает, если в способе блокирования трафика ping есть брандмауэр.

По моему мнению, если вы собираетесь тестировать веб-сервер, то лучше использовать «telnet», тогда вы можете проверить хост и порт, который он должен прослушивать.

Например: чтобы проверить свой веб-сервер telnet www.mywebserver.com 80 на пустом экране, введите «get», затем «enter», и вы получите ответ http от веб-сервера. (например: HTTP/1.1 400 Bad Request ...)

Это говорит мне о том, что сервер не только работает, но и прослушивает порт 80 и отвечает на него. (Я также ожидал бы, что любые брандмауэры пропустят порт 80 на мой веб-сервер)

Точно так же 'telnet' также работает для тестирования почтовых серверов, FTP и всего остального.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .