Как сетевые инженеры, мы должны быть универсальными и обладать навыками оперативного устранения неполадок в рабочей среде. Помимо глубокого знания сетевых протоколов и команд для сетевого оборудования (маршрутизаторы, коммутаторы, межсетевые экраны и т.д.), нам также необходимо досконально разбираться в IP-адресации и других сетевых командах для конечных устройств — таких как компьютеры с Windows, серверы на Linux, рабочие станции и т.д.
В этой статье я перечислю и опишу самые полезные и важные IP-команды в операционной системе Windows. Большинство из них (за некоторыми исключениями и различиями) также доступны в Linux.
Мне не раз приходилось начинать диагностику сетевых проблем и неполадок подключения с проверки конечного устройства (компьютера, сервера и т.д.), прежде чем переходить к основному сетевому оборудованию для углубленного анализа. Это помогает лучше понять проблему с точки зрения пользователя, поэтому такой подход всегда полезен.
Знание следующих IP-команд значительно расширит ваш арсенал инструментов для диагностики и устранения сетевых проблем.
IP-команды Windows:
Теперь давайте рассмотрим самые популярные команды из командной строки, связанные с сетями и другими аспектами:
ipconfig
Это одна из самых полезных IP-команд в Windows. Она выводит множество полезной информации о текущих сетевых настройках устройства: IPv4- и IPv6-адреса всех сетевых интерфейсов (Ethernet-адаптеры, Wi-Fi, виртуальные интерфейсы и т.д.), MAC-адрес, шлюз по умолчанию, маску подсети, DNS-сервер, данные DHCP и многое другое.
Если вам нужно узнать локальный IP-адрес вашего компьютера или MAC-адрес Ethernet-адаптера (который в выводе команды отображается как «Физический адрес» — см. пример на изображении ниже), это самый быстрый способ получить эту информацию.
Пример скриншота с выводом команды ipconfig:

Как видно из примера выше, здесь отображаются данные IPv4, MAC-адрес, шлюз по умолчанию, DNS-серверы и т.д.
Вот несколько вариантов этой команды:
ipconfig /? - Отображает все доступные параметры.
ipconfig /all - Данные будут отображаться так, как показано на скриншоте выше, но для ВСЕХ сетевых адаптеров компьютера (Ethernet, Wi-Fi, адаптеры Vmware и т.д.).
ipconfig /release - Освободит текущие IPv4-адреса, динамически назначенные DHCP-сервером. Если указать имя подключения, будет освобожден только IP-адрес этого сетевого адаптера.
ipconfig /release6 - То же, что и выше, но для IPv6-адреса.
ipconfig /renew - Используется для запроса нового IP-адреса от DHCP-сервера.
ipconfig /renew6 - То же, что и выше, но для IPv6-адреса.
ipconfig /flushdns - Удаляется локальный кэш записей DNS.
ipconfig /displaydns - Показывает локальный кэш записей DNS.
ipconfig /registerdns - Обновляет все адреса DHCP, а также снова связывается с внешним DNS-сервером, чтобы убедиться в его доступности и т.д.
Если после выполнения команды «ipconfig» вы видите IP-адрес в формате 169.254.x.x, это означает, что системе назначен автоматический частный IP-адрес (APIPA). Он присваивается операционной системой автоматически, если устройство не смогло получить IP-адрес от DHCP-сервера.
nslookup
Команда «nslookup» позволяет получать информацию, связанную с DNS. Например, вы можете узнать данные о домене или выполнить обратный DNS-запрос для определения домена по IP-адресу.
nslookup networkadmin.ru - Определит IP-адрес конкретного домена (A-запись).
Server: domain_name
Address: 10.120.101.2
Non-authoritative answer:
Name: networkadmin.ru
Addresses: 2a03:6f00:6:1::b972:f56c
185.114.245.108
Команда «nslookup», за которой указано доменное имя, отобразит IPv4- и IPv6-адреса (A-записи и AAAA-записи), связанные с этим доменом.
nslookup 185.114.245.108 - Выполнит обратный DNS-запрос и определит доменное имя, соответствующее указанному IP-адресу.
Server: domain_name
Address: 10.120.101.2
Non-authoritative answer:
Name: vh308.timeweb.ru
Addresses: 185.114.245.108
Команда «nslookup» обладает и другими полезными функциями. Например, с её помощью можно найти авторитетные DNS-серверы домена, TXT- и MX-записи, а также многое другое (для этого используется опция type=):
Синтаксис: nslookup -type=[MX , TXT , A , AAAA , NS , PTR , SOA] [domain]
nslookup -type=MX networkadmin.ru
Server: domain_name
Address: 10.120.101.2
Non-authoritative answer:
networkadmin.ru MX preference = 10, mail exchanger = mx1.timeweb.ru
networkadmin.ru MX preference = 10, mail exchanger = mx2.timeweb.ru
mx1.timeweb.ru internet address = 92.53.116.47
mx1.timeweb.ru AAAA IPv6 address = 2a03:6f00:3::5c35:742f
mx2.timeweb.ru internet address = 92.53.116.51
mx2.timeweb.ru AAAA IPv6 address = 2a03:6f00:3::5c35:7433
ping
Давайте рассмотрим одну из самых популярных утилит для проверки сетевого соединения.
Пожалуй, первая команда, которую запускают пользователи при проблемах с подключением – это ping. Эта команда быстро покажет, может ли ваш компьютер отправлять и получать пакеты (конкретно – ICMP-пакеты), что позволяет определить наличие сетевого соединения.
Обратите внимание, что «ping» полезен для проверки подключения как локального компьютера (с которого выполняется команда), так и удалённых компьютеров или серверов. Например, если вы пропингуете IP-адрес вашего шлюза по умолчанию и получите ответы (ICMP Echo Reply), это означает, что ваш компьютер правильно подключён к сети.
А если вы пропингуете удалённый сервер в интернете и получите ответы, значит, этот сервер также имеет нормальное сетевое подключение.
ping /? - Отображает все доступные параметры.
ping 185.114.245.108 - По умолчанию отправит 4 ICMP-пакета на указанный IP-адрес.
ping networkadmin.ru - Cистема сначала преобразует имя в IP-адрес, а затем отправит ICMP-пакеты по этому адресу.
ping 185.114.245.108 -t - Позволит непрерывно отправлять пакеты ping (icmp-эхо-запросы) на целевой IP-адрес.
ping -n 10 185.114.245.108 - Отправит 10 пакетов ping (icmp-эхо-запросы) на целевой IP-адрес.
ping -l 1500 185.114.245.108 - Отправит пакеты ping (icmp-эхо-запросы) размером 1500 байт на целевой IP-адрес.
ping -a 185.114.245.108 - Определит имя хоста, соответствующее указанному IP-адресу, а затем выполнить ping этого адреса.
ping -6 [domain или IP] - Отправит IPv6-пакеты на указанный целевой адрес.
Большинство фаерволов блокируют ICMP-протокол (на котором основан ping), поэтому если вы пингуете удалённый хост и не получаете ответов, это не обязательно означает наличие сетевых проблем. Скорее всего, где-то на пути сетевой фаервол заблокировал ICMP-пакеты.
tracert
В Windows команда «tracert» означает “трассировка маршрута”. В Linux аналогичная команда называется «traceroute». Эта команда отслеживает путь, который TCP/IP-пакет проходит до целевого узла, и отображает информацию (если она доступна) о промежуточных маршрутизаторах на этом пути.
Как и команда ping, tracert отправляет ICMP Echo-пакеты к целевому узлу, но с постепенно увеличивающимся значением TTL.
tracert networkadmin.ru - Трассирует TCP/IP-маршрут до указанного целевого IP-адреса или домена.
Трассировка маршрута к networkadmin.ru [185.114.245.108]
с максимальным числом прыжков 30:
1 1 ms <1 мс <1 мс 10.120.173.254
2 1 ms 1 ms <1 мс 10.120.250.6
3 * ms * ms * ms Превышен интервал ожидания для запроса.
4 7 ms 2 ms 3 ms 194.154.73.45
5 11 ms 3 ms 2 ms pe20.moscow.gldn.net [79.104.225.221]
6 4 ms 3 ms 3 ms 62.105.155.241
7 16 ms 17 ms 16 ms 94.228.119.214
8 11 ms 10 ms 11 ms vh308.timeweb.ru [185.114.245.108]
Трассировка завершена.
При трассировке маршрута к домену networkadmin.ru отображаются все промежуточные узлы (с их именами хостов и IP-адресами) вплоть до конечного пункта назначения.
При диагностике проблем подключения в крупной сети вы можете использовать «tracert», чтобы определить, на каком узле прекращается передача пакетов до достижения цели, и сосредоточить усилия по поиску проблемы именно на этом узле, который не маршрутизирует пакеты.
Поскольку tracert, как и команда ping, использует протокол ICMP, при выполнении команды вы часто будете видеть результаты со звёздочками (
* * *
). Это означает, что:
- Фаервол на одном из участков пути блокирует ICMP-пакеты
- Некоторые маршрутизаторы в цепочке не отправляют сообщения о превышении TTL
netstat
Ещё одной важной командой является утилита Network Statistics (netstat), которая доступна как в Windows, так и в Linux.
Она отображает установленные сетевые TCP/IP соединения локального компьютера с удалёнными хостами, открытые порты на машине, идентификатор процесса (PID) для каждого соединения и другую информацию.
Лично я использую эту команду в основном в целях проверки безопасности — чтобы определить, не запущены ли на компьютере бэкдоры, нет ли подозрительных подключений к внешним серверам Command-and-Control и т. д.
Вот несколько популярных примеров использования этой команды:
netstat -ano - Отображает все соединения и прослушивающие порты (-a), адреса и порты в числовом виде (-n), а также идентификатор процесса (PID) для каждого соединения (-o).
netstat -vb - Очень полезно также для того, чтобы определить, какой исполняемый файл и какая последовательность действий создали каждое соединение и каждый порт.
netstat -p tcp -f - Ключ -p tcp отобразит только TCP-соединения, а ключ -f покажет полное доменное имя (FQDN) для каждого соединения вместо просто IP-адреса.
route
Команда «route» используется для управления локальной таблицей маршрутизации компьютера. Вы можете вывести текущую таблицу маршрутизации, добавить новые статические маршруты, удалить записи и т. д.
Лично я использую команду «route» для добавления постоянной записи статического маршрута в компьютер.
Например, может быть подсеть, которая недоступна через шлюз по умолчанию компьютера. Вместо этого эта удаленная подсеть может быть доступна через другой IP-адрес шлюза. Добавив статический маршрут в таблицу маршрутизации компьютера, вы сможете получить доступ к этой удаленной подсети с другого шлюза.
route PRINT - Отображает текущую таблицу маршрутизации компьютера
===========================================================================
Список интерфейсов
8...b0 22 7a 24 01 75 ......Intel(R) Ethernet Connection (11) I219-LM
1...........................Software Loopback Interface 1
===========================================================================
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 10.120.173.254 10.120.173.21 35
10.120.173.0 255.255.255.0 On-link 10.120.173.21 291
10.120.173.21 255.255.255.255 On-link 10.120.173.21 291
10.120.173.255 255.255.255.255 On-link 10.120.173.21 291
127.0.0.0 255.0.0.0 On-link 127.0.0.1 331
127.0.0.1 255.255.255.255 On-link 127.0.0.1 331
127.255.255.255 255.255.255.255 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 127.0.0.1 331
224.0.0.0 240.0.0.0 On-link 10.120.173.21 291
255.255.255.255 255.255.255.255 On-link 127.0.0.1 331
255.255.255.255 255.255.255.255 On-link 10.120.173.21 291
===========================================================================
Постоянные маршруты:
Отсутствует
IPv6 таблица маршрута
===========================================================================
Активные маршруты:
Метрика Сетевой адрес Шлюз
1 331 ::1/128 On-link
1 331 ff00::/8 On-link
===========================================================================
Постоянные маршруты:
Отсутствует
route ADD [Destination network] MASK [mask] [gatewayIP] - Добавит статический маршрут в таблицу.
arp
ARP является одним из основных сетевых протоколов, работающих на 2-м уровне и облегчающих связь в локальной сети.
Задача ARP — найти MAC-адрес хоста и сопоставить его с соответствующим IP-адресом. Таблица ARP хранит сопоставления IP-адресов с соответствующими им MAC-адресами.
arp -a - Отображает все сопоставления IP-адресов с MAC-адресами.
Интерфейс: 10.120.173.21 --- 0x8
адрес в Интернете Физический адрес Тип
10.120.173.1 e0-d5-5e-ce-b8-5b динамический
10.120.173.2 1c-1b-0d-0d-fa-7e динамический
10.120.173.4 7c-57-58-62-7d-bc динамический
10.120.173.6 2c-58-b9-dc-90-6b динамический
10.120.173.7 18-c0-4d-0e-c0-57 динамический
10.120.173.8 c0-18-03-2e-1b-8b динамический
10.120.173.10 d0-ad-08-cf-d3-8f динамический
224.0.0.22 01-00-5e-00-00-16 статический
224.0.0.251 01-00-5e-00-00-fb статический
224.0.0.252 01-00-5e-00-00-fc статический
232.44.44.233 01-00-5e-2c-2c-e9 статический
239.193.0.10 01-00-5e-41-00-0a статический
239.255.255.250 01-00-5e-7f-ff-fa статический
255.255.255.255 ff-ff-ff-ff-ff-ff статический
Как вы можете видеть выше, локальный компьютер динамически (тип=динамический) изучил с помощью протокола ARP несколько других локальных устройства и сохранил их MAC-адреса в таблице ARP.
arp -d 10.120.173.10 - Приведет к удалению записи ARP для указанного IP-адреса.
pathping
Эта команда объединяет функции «ping» и «tracert», но предоставляет более подробную статистику о задержке и потере пакетов на каждом хопе за период. Она отлично подходит для диагностики непостоянных сетевых проблем, которые «tracert» может пропустить.
pathping 8.8.8.8
Трассировка маршрута к dns.google [8.8.8.8]
с максимальным числом переходов 30:
0 pc1864.ppl.loc [10.120.173.21]
1 10.120.173.254
2 10.120.250.6
3 *.*.*.*
4 194.154.73.45
5 pe06.kk12.moscow.gldn.net [79.104.225.45]
6 81.211.29.103
7 * * *
Подсчет статистики за: 150 сек. ...
Исходный узел Маршрутный узел
Прыжок RTT Утер./Отпр. % Утер./Отпр. % Адрес
0 pc1864.ppl.loc [10.120.173.21]
0/ 100 = 0% |
1 0мс 0/ 100 = 0% 0/ 100 = 0% 10.120.173.254
0/ 100 = 0% |
2 1мс 0/ 100 = 0% 0/ 100 = 0% 10.120.250.6
0/ 100 = 0% |
3 2мс 0/ 100 = 0% 0/ 100 = 0% *.*.*.*
0/ 100 = 0% |
4 12мс 0/ 100 = 0% 0/ 100 = 0% 194.154.73.45
1/ 100 = 1% |
5 12мс 1/ 100 = 1% 0/ 100 = 0% pe06.kk12.moscow.gldn.net [79.104.225.45]
0/ 100 = 0% |
6 9мс 1/ 100 = 1% 0/ 100 = 0% 81.211.29.103
Трассировка завершена.
Как объясняется на веб-сайте Microsoft, Pathping выполняет эквивалент команды tracert, определяя, какие маршрутизаторы находятся на пути. Затем он периодически отправляет запросы на все маршрутизаторы в течение определенного периода времени и вычисляет статистику на основе числа, возвращаемого от каждого.
getmac
Простая команда, специально предназначенная для отображения MAC-адресов сетевых адаптеров.
getmac /V /FO list
Подключение: Ethernet
Сетевой адаптер: Intel(R) Ethernet Connection (11) I219-LM
Физический адрес: B0-22-7A-24-01-75
Имя транспорта: \Device\Tcpip_{805A5037-67E1-4B22-98FA-CB16B6075FA3}