Как сделать пинг без остановки в командной строке

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. Если вы активно используете интернет, а особливо если играете в онлайн-игры, то про такую вещью как пинг вы слышали несомненно.

С ним иногда возникают проблемы, когда он слишком высокий, и встает вопрос о том, как бы понизить ping. Иногда ради этого даже меняют интернет-провайдера, переустанавливают систему и производят другие непростые действия.

Однако, многие слышали это слово лишь изредка и не особо представляют что это такое. Поэтому я начну с начала, а именно с того, что такое пинг, почему он так важен и как вы можете его проверить. Ну, а в заключении упомяну про то, что может повлиять на его уменьшение. Надеюсь, будет интересно.

Что такое пинг?

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

Вы наверняка слышали про такую игру, как Контр Страйк — онлайн-стрелялку (шутер от первого лица), когда вы играете через сеть с группой таких же как вы игроков и каждый из вас через интернет управляет действиями своего персонажа. А при чем тут пинг, спросите вы? А вот при том.

Допустим, что вы засекли своего врага и нажали на кнопку выстрела. Что при этом происходит? Сигнал из игровой программы, установленной на вашем компе, идет через интернет на сервер (специальный компьютер, который может находиться где угодно в сети), где запущена игра. Но интернет — это не абстрактная вещь, а физические устройства, через которые пойдет посланный вами сигнал. И скорость прохождения сигнала по этому пути может быть совершенно разной.

Очень часто в обиходе именно скорость отклика и подразумевают, когда говорят о пинге. Т.е. насколько быстро сигнал с вашего компьютера пройдет через сеть до другого компьютера (или сервера), а потом вернется обратно к вам. Если ping будет очень большой (измеряется он обычно в миллисекундах), то ваша игра будет безбожно лагать, тормозить и тупить. А вы будете готовы расколоть мышь и клавиатуру об экран монитора.

А как иначе, если вы ничего не будете успевать сделать с такими чудовищными задержками в передачи ваших действий и получения ответа на них. Пока ваш сигнал о выстреле идет на сервер и возвращается обратно, вас могут уже подстрелить (и не один раз).

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

Как проверить ping?

Чуть выше я говорил, что у слова «пинг» есть два трактования. Одно из них (обиходное) я пояснил чуть выше. А вот второе основано на том, что существует такая программа ping (на всех операционных системах, которые умеют работать с интернетом), которая позволяет отправить тестовую посылку к любому узлу интернета имеющему IP адрес (компьютеру в сети, серверу, роутеру и т.п.) и измерить время, за которое она вернется обратно.

Именно это время и называется пингом (задержкой или лагом). Тестовая посылка имеет небольшой вес и отправляется по специальному служебному протоколу. В силу последнего обстоятельства, не во всех случаях высокий ping (большое время задержки между отправкой и получением) будет говорить о плохом интернет-канале, ибо проблемы с прохождением сигнала могут возникать только по этому служебному каналу, а по основному каналу все будет летать на ура.

Но в большинстве случаев можно поставить знак равенства между высоким пингом и плохим каналом (не годным для онлайн-игр). Невозможно играть в онлайн-шутер (да и любую другую отличную от пошаговой стратегии игру), если ping равен 300 миллисекунд (треть секунды). А вот если он 15-20 мс, то все просто замечательно и вам даже знать не нужно будет что это такое, а уж тем более как его меряют. Интерес к пингованию возникает в основном при появлении проблем и серьезных лагов.

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

Если не нашли или скорость отклика вас интересует без применения к геймерским забавам, то тут тоже особых проблем нет. Как я уже упоминал, все операционки имеют встроенные программки для пингования. В силу того, что с линуксом я не знаком — поясню на примере windows.

Что нужно сделать в Винде, что проверить пинг? До банальности мало:

  1. Удерживая клавишу Windows на клавиатуре (между контролом и альтом она обычно обитает) нажмите латинскую букву R. Того же результата можно добиться, выбрав из меню кнопку «Пуск» пункт «Выполнить», но он там не всегда присутствует по умолчанию. Посему использовать горячие клавиши будет надежнее.
  2. Откроется маленькое окно, где нужно будет латиницей набрать слово из трех буква «cmd» (без кавычек) и нажать Энтер на клаве или кнопку ОК в этом окне:В принципе, командную строку вы опять же могли бы и из меню кнопки «Пуск» выбрать («Все программы» — «Стандартные» — «Командная строка»), но этот способ более универсальный. А вы уж сами смотрите как вам удобнее.
  3. Все, откроется командная строка Винды (окно с пугающим черным фоном). С помощью него нам нужно будет запустить программу для проверки пинга. Т.к. здесь не используется графический интерфейс, то запуск программы производится с помощью команды написанной в этом страшном черном окне. Команда будет выглядеть примерно так:
    ping ktonanovenkogo.ru

    Таким образом вы пропингуйте линию от своего компьютера до моего сайта (сервера, где он расположен в интернете) и обратно. Оно вам надо? В принципе, да, ибо полученный результат тоже будет показательным, но если вы геймер, то пинговать лучше всего до адреса того сервера, на котором вы играете (до моего IP адреса). Так вы узнаете именно значение пинга на той же трассе, по которой будут бегать пакеты с данными вашей игры.

    ping 119.122.139.64

    Но не суть. Если ping будет плохой, то скорее всего он таким будет в любом случае. Собственно, после ввода команды жмете на Энтер на клавиатуре. В результате через минутку получаете примерно такую вот итоговую картинку с результатами пингования:

    У меня среднее значение пинга весьма неплохое — 14 мс (жить можно и играть тоже). Кроме временной задержки вы увидите, сколько пакетов из текстовой посылки потерялось (лучше всего, чтобы там нолик красовался, что говорит о стабильном качестве интернет-канала). Ну, а если вводили после команды «ping» доменное имя сайта (что такое домен и зачем он нужен?), то в этом окне сможете узнать его Ip адрес (так, побочная информация).

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

Кроме измерения времени прохождения тестового сигнала эту программу (ping) часто используют для того, чтобы пропинговать сервер или маршрутизатор. В этом случае важен будет сам по себе факт получения ответа, а не то время, что ушло на его отсылку и получение. Пингуя разные устройства сети зачастую можно локализовать поломку в цепочке устройств (на работе я именно так и делаю). В общем, штука полезная 🙂

Как уменьшить (понизить) пинг?

Если ваше значение ping очень критично, а оно как на зло очень большое (такое, что создает проблемы с онлайн-играми или даже при работе в браузере), то вы закономерно начинаете задаваться вопросом — а нельзя ли его как-то понизить. В принципе, можно, но далеко не всегда уменьшение пинга возможно добиться простыми манипуляциями.

От чего может зависеть время отклика:

  1. От вашего интернет-провайдера.
    1. Тут важна даже не ширина канала, а его качество. Можно получить ping в 300 мс на канале в 100 мегабит (что такое мегабиты?), а можно получить 4 мс при канале 10 мегабит. Если проводить аллегорию (что это?), то шестиполосная гравийная автодорога будет априори медленнее, чем двухполосная, но асфальтированная.
    2. Однако, ширина канала все же имеет значение. Узкий канал может являться причиной ухудшения времени отклика, т.к. лаги могут возникать из-за банальной перегруженности канала (пакетам просто не протолкнуться). Это можно сравнить с пробками на дороге с шикарным покрытием, но слишком узкой, чтобы справится с имеющимся автомобильным трафиком.
  2. От игрового сервера. У него может быть недостаточно качественный или слишком узкий канал выхода в интернет, из-за чего у многих в играх начинаются тормоза и лаги.
  3. От расположения игрового сервера. Он банально может находиться слишком далеко от вас, и сигнал проходя через многие десятки промежуточных узлов замедляется и может даже частично теряться.
  4. От прохождения сигнала от сетевой карты вашего компьютера до файла игры, которая у вас запущена. Тут может быть масса причин влияющих на пинг — от вирусов до сбитых настроек операционной системы.

Собственно, из всего вышесказанного вытекают и советы, которые могут помочь вам понизить пинг до приемлемого значения, когда он уже не будет влиять на комфортное использование вашего компьютера в сети.

  1. Если проблема в интернет-провайдере, то нужно их решать.
    1. Написать (или позвонить) в их техподдержку, вежливо объяснить свою проблему и попросить помочь с решением. Возможно, что вам дистанционно что-то поменяют в настройках и пинг уменьшится до приемлемого значения. Хорошая техподдержка может даже дать советы по тому, что вы можете сделать на смоем компе, чтобы улучшить ситуацию.
    2. Если обращение в саппорт вашего провайдера не помогло (содействовать не захотели или понизить ping не удалось), то стоит задуматься о смене провайдера. Как правило, имеется альтернатива (зачастую даже не одна). Если у вас кто-то из вашего дома тоже играет и заморачивается пингом, то просто проконсультируйтесь у них, кто их провайдер и какое у него время отклика. Этот вариант можете оказаться более простым, чем подключение к новому провайдеру и последующая проверка наличия лагов уже в живую.
  2. Если проблема предположительно в игровом сервере, то имеет смысл просто попробовать его поменять. Если пинг не уменьшится, то значить узкое место не там.
  3. Проблема с лагами в играх может базироваться и на вашем компьютере. В связи с этим для понижения пинга можно попробовать:
    1. Провести проверку компьютера на наличие вирусов, которые вполне могут лить в интернет с вашего компьютера какие-то данные и забивать этим мусором канал.
    2. Можно поискать в сети различные настройки реестра и т.п. вещи, которые кому-то помогли уменьшить ping. Но сразу оговорюсь, что рассчитывать на это особо не стоит. Вероятность того, что вы таким образом решите проблему, не очень велика (наверное не более одного процента из ста). Например, можете попробовать такой финт:

      Вносим изменения в реестр, поэтому будьте максимально внимательны. Удерживая клавишу Windows на клавиатуре, нажмите латинскую букву R, после чего введите в открывшемся окне команду regedit. В результате попадаем в редактор реестра Виндовс, где смело и уверенно идем по такому вот пути HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionMultimediaSystemProfile.

      После этого два раза кликаете по NetworkThrottlingIndex, где увидите установленный по умолчанию параметр в значение «a» (шестнадцатеричная система исчисления), а нам нужно ввести с клавы ffffffff и нажать ОК. После чего потребуется перегрузить компьютер. Все.

      Многие из этих финтов уже не актуальны, а многие решают проблемы, которых у вас априори нет на компьютере. Универсального же совета, сделай так и пинг понизится, не существует.

    3. Во время игр выключайте закачку или выгрузку в интернет различных файлов, ибо это может создавать ненужные вам лаги.
    4. Посмотрите внимательно на тех, кто делит с вами ваше подключение к интернету. Возможно, что в то время как вы играете, они качают что-то из сети, или, наоборот, что-то туда активно заливают. Можно попросить их временно это не делать, чтобы проверить пинг, и если это действительно является причиной его увеличения, то нужно будет либо расширять общий канал, либо с помощью настроек роутера пытаться выделить себе стабильную полосу, на которую ваши сродственники посягнуть не смогут.
    5. Посмотрите, не подключается ли кто-нибудь к вашему роутеру по Вай-Фай не легально (подобрать пароль при желании вполне возможно). Попробуйте просто отключить Вай-Фай в настройках роутера и посмотреть не результат — если пинг существенно понизился, то думайте в эту сторону. Можно в купе с шифрованием сделать еще и привязку к мак-адресам устройств, которым будет разрешено подключаться к вашему интернет-каналу.

По сути эта заметка продолжение статьи Axis P1344 Настройка IP-адреса при помощи ARP / Ping.

Чтобы изложение было более полным необходимо немного коснуться и вопроса выбора статического адреса для IP камеры в чужой сети (…которую делали не Вы, а зачастую и обслуживали, расширяли, модернизировали случайные люди…).

Этот же простейший подход может быть использован и в иных случаях.

Итак, посещая первый раз площадку потенциального клиента (партнера) по трансляции, уже без удивления узнаю, что админа нет. Был знакомый, друг, “недавно уволился”, “просто пропал”, “у нас удаленная поддержка была, но сейчас ее нет” и т.д и т.п. В этом случае сразу необходимо осмотреть их главный кабельный ввод и состояние концентраторов (свичей, хабов, маршрутизаторов) в сети. С большой долей вероятности Вас ожидают “удивительные открытия”.

Следующим шагом необходимо попросить выполнить простейшую диагностику их сети с не менее, чем 2-х рабочих станций. Вообщем-то здесь тоже ничего нового я не скажу, могу лишь обратить внимание на несколько моментов, при этом оценку состояния их канала с площадки к провайдеру, пока опускаю, на это необходима отдельная заметка (статья).

С большой долей вероятности на рабочих станциях (компьютерах), диагностику с которых Вам разрешат выполнить, будет стоять WindowsXP “затвиканная до смерти”, с отключенным автообновлением и брэндмауэром, входящая в состав рабочей группы и пользователем работающим с правами локального администратора, поэтому дальнейшее изложение касается именно Windows XP SP3 ru.

Собственно задача:

  • увидеть их шлюз по умолчанию – на нем будем  настраивать пробросы портов на камеру;
  • увидеть подсеть – ее параметры понадобятся для конфигурирования камеры;
  • увидеть все устройства в подсети, чтобы правильно выбрать статический адрес для камеры.

Для этого – просим сопровождающего Вас представителя компании включить по возможности все компьютеры, принтеры, точки доступа, кассовые аппараты и т.д.  их клубной сети. С 2-х (по возможности более) рабочих станций в окне командной строки выполнить и записать на листочек результат вывода нескольких команд:

  • ipconfig
  • route print
  • netsh inter ip show address
  • netsh inter ipv6 show address
  • net view

Почему именно этих? Конечно можно установить хорошую утилиту диагностики и получить полную информацию о сети. Просто использование встроенных команд операционной системы исключит ваше вмешательство в работу их  компьютеров и исключит недоразумения вида “а он там что-то настраивал”

Последней командой необходимо увидеть все MAC адреса подсети, а вместе с ними придет понимание “сколько и каких устройств в этой подсети”, т.е просканировать подсеть. Почему недостаточно просто пропинговать диапазон адресов подсети? Ответ прост – не все устройства ответят на ping, но при попытке пингования устройства по IP адресу MAC адрес сетевой карты попадет в локальный arp кэш рабочей станции. Его мы можем затем вывести командой arp –a. К сожалению MAC адреса в локальном кэше хранятся не более 1-2-х минут (если они не прописаны статически).

Итак, последней командой вводим:

@echo off & cls & for /l %i in (1,1,254) do ping -n 1 -w 400 -l 1 192.168.1.%i | arp -a 192.168.1.%i | findstr динам >> file.txt & echo 192.168.1.%i

В приведенном примере выше предполагается, что сеть 192.168.1.0 mask 255.255.255.0 (В вашем случае это могут быть иные значения).

Этой командой мы пингуем все адреса (сканируем подсеть) в диапазоне 192.168.1.1 по 192.168.1.254, после каждого ping-а выводим локальный arp кэш для каждого пропигованного адреса в файл file.txt и выводим в окно консоли текущий пингуемый адрес. Команда выполняется чуть более 1-й минуты. Открыв полученный файл, например Блокнотом Windows или выполнив —

type file.txt

в окне консоли, увидим все IP и MAC адреса подсети.

Вероятнее всего у Вас теперь будет совершенно достаточно информации для правильного конфигурирования видеокамеры.

Некоторый спортивный интерес, а может просто нежелание каждый раз вводить вручную команды и ждать завершения работы последней, подтолкнул меня на написание простейшего пакетного файла (батника).

Чтобы ускорить заполнение arp кэша в командном файле (батнике) выполняется “залп пингов” (каждый новый запуск команды ping не дожидается ответа предыдущей). Кроме того адрес подсети для сканирования выбирается автоматически и исходит из предположения, что это будет сеть вида 192.168.x.x/24 (Это не всегда бывает так, поэтому подкорректируйте батник при необходимости).

Батник неплохо документирован и может быть легко модифицирован Вами под собственные нужды. Скачать его можно по этой ссылке — Простой сканер подсети встроенными средствами Windows.

Если Вам повезло и Вы столкнулись со стабильно работающей сетью на основе рабочей группы, то еще простейшие командные файлы для сканирования подсети можете посмотреть на странице net view ping Пропинговать сетевое окружение. Для их корректной работы необходимо правильно функционирующая служба браузинга на рабочих станциях подсети.

См. также:

Одна из важнейших подсистем, отвечающая за связь любого сервера с внешним миром — сетевая. Через сетевые интерфейсы поступают запросы от удаленных систем и через эти же интерфейсы направляются ответы, что позволяет налаживать коммуникацию и предоставлять/получать сервисы. В связи с этим особенно важно уметь производить диагностику и мониторинг сети хотя бы на базовом уровне, чтобы выявлять проблемы и вносить корректировки в конфигурацию в случае необходимости.

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

Диагностика сетевой связности (ping, arp, traceroute)

В данной статье мы будем опираться на использование протокола IP версии 4. Согласно стандартам, определяющим работу этого протокола, каждое устройство, подключенное к сети, должно иметь как минимум IP-адрес и маску подсети — параметры, которые позволяют уникально идентифицировать устройство в пределах определенной сети. В такой конфигурации устройство может обмениваться сетевыми пакетами с другими устройствами в пределах той же самой логической сети. Если к этому набору параметров добавить адрес шлюза по умолчанию — наш сервер сможет связываться с хостами, находящимися за пределами локального адресного пространства.

В случае каких-либо сетевых проблем в первую очередь проверяем, не сбились ли настройки сетевого интерфейса. Например, команды ipaddr или ifconfig выведут IP-адрес и маску сети:

37_1-2.png
Скриншот №1. Проверки настроек сетевого интерфейса

В выводе команды виден перечень сетевых интерфейсов, распознанных операционной системой. Интерфейс lo — это псевдоинтерфейс (loopback). Он не используется в реальных взаимодействиях с удаленными хостами, а вот интерфейс с именем ens192 — то, что нам нужно (именование сетевых интерфейсов различается в разных ветках и версиях ОС Linux). IP-адрес и маска сети, назначенные этому интерфейсу, указаны в поле inet — /24 после адреса обозначают 24-битную маску 255.255.255.0.

Теперь проверим, указан ли шлюз по умолчанию. Команды iproute или route покажут имеющиеся маршруты:

35_2-2.png
Скриншот №2. Проверка маршрута

В таблице маршрутизации мы видим, что имеется маршрут по умолчанию (обозначается либо ключевым словом default, либо адресом 0.0.0.0). Все пакеты, предназначенные для внешних сетей, должны направляться на указанный в маршруте адрес через обозначенный сетевой интерфейс.

Если в настройках интерфейса есть ошибки, их необходимо исправить — помогут в этом другие статьи, для ОС Ubuntu 18.04 или CentOS. Если же все верно — приступаем к диагностике с помощью утилиты ping. Данная команда отправляет специальные сетевые пакеты на удаленный IP-адрес (ICMP Request) и ожидает ответные пакеты (ICMP Reply). Таким образом можно проверить сетевую связность — маршрутизируются ли сетевые пакеты между IP-адресами отправителя и получателя.

Синтаксис команды ping IP/имя опции:

22_3-1.png
Скриншот №3. Синтаксис команды

В данном случае видим, что на оба сетевых пакета, отправленных на адрес нашего шлюза по умолчанию, получены ответы, потерь нет. Это значит, что на уровне локальной сети со связностью все в порядке. Помимо количества полученных/потерянных сетевых пакетов мы можем увидеть время, которое было затрачено на прохождение запроса и ответа – параметр RTT (Round Trip Time). Этот параметр может быть очень важен при диагностике проблем, связанных с нестабильностью связи и скоростью соединения.

Часто используемые параметры:

  • ping –c количество — указать количество пакетов, которое будет отправлено адресату (по умолчанию пакеты отправляются до тех пор, пока пользователь не прервет выполнение команды. Этот режим можно использовать, чтобы проверить стабильность сетевого соединения. Если параметр RTT будет сильно изменяться в ходе проверки, значит где-то на протяжении маршрута есть проблема);
  • ping –s количество — указать размер пакета в байтах. По умолчанию проверка производится малыми пакетами. Чтобы проверить работу сетевых устройств с пакетами большего размера, можно использовать этот параметр;
  • ping –I интерфейс — указать сетевой интерфейс, с которого будет отправлен запрос (актуально при наличии нескольких сетевых интерфейсов и необходимости проверить прохождение пакетов по конкретному сетевому маршруту).

В случае, если при использовании команды ping пакеты от шлюза (или другого хоста, находящегося в одной локальной сети с сервером-отправителем) в ответ не приходят, стоит проверить сетевую связность на уровне Ethernet. Здесь для коммуникации между устройствами используются так называемые MAC-адреса сетевых интерфейсов. За разрешение Ethernet-адресов отвечает протокол ARP (Address Resolution Protocol) и с помощью одноименной утилиты мы можем проверить корректность работы на этом уровне. Запустим команду arp –n и проверим результат:

39_4-2.png
Скриншот №4. Команда arp –n

Команда выведет список IP-адресов (так как был использован аргумент –n), и соответствующие им MAC-адреса хостов, находящиеся в одной сети с нашим сервером. Если в этом списке есть IP, который мы пытаемся пинговать, и соответствующий ему MAC, значит сеть работает и, возможно, ICMP-пакеты, которые использует команда ping, просто блокируются файрволом (либо со стороны отправителя, либо со стороны получателя). Подробнее об управлении правилами файрвола рассказано здесь и здесь.

Часто используемые параметры:

  • arp –n — вывод содержимого локального arp-кэша в числовом формате. Без этой опции будет предпринята попытка определить символические имена хостов;
  • arp –d адрес — удаление указанного адреса из кэша. Это может быть полезно для проверки корректности разрешения адреса. Чтобы убедиться, что в настоящий момент времени адрес разрешается корректно, можно удалить его из кэша и снова запустить ping. Если все работает правильно, адрес снова появится в кэше.

Если все предыдущие шаги завершены корректно, проверяем работу маршрутизатора — запускаем ping до сервера за пределами нашей сети, например, 8.8.8.8 (DNS-сервис от Google). Если все работает корректно, получаем результат:

4_5.png
Скриншот №5. Проверка работы маршрутизатора

В случае проблем на этом шаге, нам может помочь утилита traceroute, которая используя ту же логику запросов и ответов помогает увидеть маршрут, по которому движутся сетевые пакеты. Запускаем traceroute 8.8.8.8 –n и изучаем вывод программы:

20_6.png
Скриншот №6. Утилита traceroute

Первым маршрутизатором на пути пакета должен быть наш локальный шлюз по умолчанию. Если дальше него пакет не уходит, возможно проблема в конфигурации маршрутизатора и нужно разбираться с ним. Если пакеты теряются на дальнейших шагах, возможно, есть проблема в промежуточной сети. А, возможно, промежуточные маршрутизаторы не отсылают ответные пакеты. В этом случае можно переключиться на использование другого протокола в traceroute.

Часто используемые опции:

  • traceroute –n — вывод результата в числовом формате вместо символических имен промежуточных узлов;
  • traceroute –I — использование ICMP-протокола при отслеживании маршрута. По умолчанию используются UDP-датаграммы;
  • traceroute –s адрес— указать адрес источника для исходящего сетевого пакета;
  • traceroute –i интерфейс— указать сетевой интерфейс, с которого будут отправляться пакеты.

Диагностика разрешения имен (nslookup, dig)

Разобравшись с сетевой связностью и маршрутизацией приходим к следующему этапу — разрешение доменных имен. В большинстве случаев в работе с удаленными сервисами мы не используем IP-адреса, а указываем доменные имена удаленных ресурсов. За перевод символических имен в IP-адреса отвечает служба DNS — это сеть серверов, которые содержат актуальную информацию о соответствии имен и IP в пределах доверенных им доменных зон.

Самый простой способ проверить работает ли разрешение имен — запустить утилиту ping с указанием доменного имени вместо IP-адреса (например, ping ya.ru). Если ответные пакеты от удаленного сервера приходят, значит все работает как надо. В противном случае нужно проверить прописан ли DNS-сервер в сетевых настройках и удается ли получить от него ответ.

Способы выяснения какой DNS-сервер использует наш сервер различаются в зависимости от используемой версии и дистрибутива ОС Linux. Например, если ОС используется Network Manager для управления сетевыми интерфейсами (CentOS, RedHat и др.), может помочь вывод команды nmcli:

11_7.png
Скриншот №7. Команда nmcli

В настройках сетевого интерфейса, в разделе DNS configuration, мы увидим IP-адрес сервера. В Ubuntu 18.04 и выше, использующих Netplan, используем команду systemd-resolve —status:

53_8.png
Скриншот №8. Команда systemd-resolve —status

Используемый сервер также будет указан в настройках интерфейса, в разделе DNS Servers. В более старых версиях Ubuntu потребуется проверить содержимое файлов /etc/resolve.conf и /etc/network/interfaces. Если сервер не указан, воспользуйтесь статьей для ОС Ubuntu 18.04 или CentOS, чтобы скорректировать настройки.

Проверить работу сервиса разрешения имен нам помогут утилиты nslookup или dig. Функционально они почти идентичны: G-вывод утилиты dig содержит больше диагностической информации и гибко регулируется, но это далеко не всегда нужно. Поэтому используйте ту утилиту, которая удобна в конкретной ситуации. Если эти команды недоступны, потребуется доставить пакеты на CentOS/RedHat:

yum install bind-utils

для Debian/Ubuntu:

sudo apt install dnsutils

После успешной установки сделаем тестовые запросы:

dig ya.ru

58_9.png
Скриншот №9. Тестовые запросы

В разделе Answer Section видим ответ от DNS сервера — IP-адрес для A-записи с доменным именем ya.ru. Разрешение имени работает корректно:

nslookup ya.ru

67_10.png
Скриншот №10. Подтверждение корректной работы

Аналогичный запрос утилитой nslookup выдает более компактный вывод, но вся нужная сейчас информация в нем присутствует.

Что же делать, если в ответе отсутствует IP-адрес? Возможно, DNS-сервер недоступен. Для проверки можно отправить тестовый запрос на другой DNS-сервер. Обе утилиты позволяют эти сделать. Направим тестовый запрос на DNS-сервер Google:

dig @8.8.8.8 ya.ru

73_11.png
Скриншот №11. Отправка тестового запроса 1

nslookup ya.ru 8.8.8.8

12_12.png
Скриншот №12. Отправка тестового запроса 2

Если имена разрешаются публичным DNS-сервером корректно, а установленным по умолчанию в ОС нет, вероятно, есть проблема в работе этого DNS-сервера. Временным решением данной проблемы может быть использование публичного DNS-сервера в качестве сервера для разрешения имен в операционной системе. В том случае, если разрешение имен не работает ни через локальный, ни через публичный DNS сервер — стоит проверить не блокируют ли правила файрвола отправку на удаленный порт 53 TCP/UDP пакетов (именно на этом порту DNS-серверы принимают запросы).

Часто используемые параметры:

  • nslookup имя сервер — разрешить доменное имя, используя альтернативый сервер;
  • nslookup –type=тип имя — получить запись указанного типа для доменного имени (например, nslookup -type=mx ya.ru – получить MX-записи для домена ya.ru);
  • dig @сервер имя — разрешить доменное имя, используя альтернативый сервер;
  • dig имя тип — получить запись указанного типа для доменного имени (например, dig ya.ru mx — получить MX-записи для домена ya.ru).

Как обычно, полный набор опций и параметров для указанных утилит можно найти во встроенной справке операционной системы, используя команду man.

Используемые источники:

  • https://ktonanovenkogo.ru/voprosy-i-otvety/ping-chto-eto-takoe-kak-proverit-umenshit-ponizit-ping.html
  • http://atinyexperience.blogspot.com/2012/09/propingovat-podset-ili-ip-diapazon-ip.html
  • https://serverspace.by/support/help/diagnostika-setevogo-podklyucheniya-ping-arp-traceroute-dig-nslookup/

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации