Поиск по сайту:

Netsh - Полное руководство с примерами


Netsh — это отличная утилита командной строки, которая используется для управления, настройки и устранения неполадок локальных или удаленных сетевых настроек. Мощь Netsh, или Network Shell, заключается в различных расширениях, лучше известных как контексты, которые он предоставляет.

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

В этой статье мы рассмотрим Netsh с помощью общепринятых примеров. Каковы лучшие практики? И как устранять проблемы с сетью с помощью этого инструмента?

Основы

Прежде чем углубиться в Netsh и исследовать все его возможности, давайте сначала начнем с основ. Netsh использует контекстный подход, аналогичный навигации по папкам в файловой системе. Контекст - это группа команд, связанных с конкретной областью настройки сети, такой как winsock, int ip, wlan или advfirewall.

Чтобы начать, вы можете открыть Windows Terminal или PowerShell и ввести netsh. Это откроет netsh в интерактивном режиме, позволяя вам перемещаться по различным контекстам и опциям. Чтобы просмотреть все опции, просто введите ?, а чтобы выйти из оболочки, введите bye или quit.

netsh
?

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

netsh wlan

Or to open the WLAN context in interactive mode
netsh -c wlan

Первый вариант просто выведет все возможные команды для контекста netsh wlan. Но когда мы используем переключатель -c, затем мы откроем netsh интерактивно в контексте wlan.

Контексты Netsh

Как упоминалось, каждый контекст группирует команды для конкретной части сети. И поскольку это интерактивный инструмент, мы можем легко просматривать различные контексты и видеть, какие команды доступны.

Я не собираюсь полностью объяснять все контексты в этой статье, мы сосредоточимся на наиболее распространённых. Но ниже приведены все доступные контексты с коротким описанием:

КонтекстыОписание
winsockУправляет настройками сокетов Windows и сбросом каталога для устранения неполадок в сети
инт ipОбрабатывает конфигурации TCP/IP, сброс IP-стека и назначение статических IP.
беспроводная сетьУправляет беспроводными сетями, профилями и Wi-Fi соединениями
адвфайрволНастраивает расширенные правила брандмауэра и профили безопасности
интерфейсУправляет сетевыми адаптерами и конфигурациями IP
следСобирает сетевую диагностику и журналы трассировки для устранения неполадок
httpУправляет настройками HTTP, слушателями IP и конфигурациями сервера
dhcpУправляет настройками сервера DHCP, диапазонами и распределением IP-адресов
мостУправляет сетевыми мостовыми соединениями между сегментами
маршрутизацияУправляет протоколами маршрутизации и статической конфигурацией маршрутов
расНастраивает услуги удаленного доступа для VPN и диалогового доступа
ланУправляет ресурсами и настройками локальной вычислительной сети
побеждаетУправляет службой Internet Name Service Windows для разрешения NetBIOS
дрематьУправляет требованиями к здоровью защиты сетевого доступа
ikev2Управляет настройками подключения VPN IKEv2
ipsecНастраивает политики IPsec для безопасных сетевых коммуникаций
rpcУправляет настройками удаленного вызова процедур
httpstunnelУправляет HTTP-туннелированием через ограничительные сети
выигрывает проксиПозволяет осуществлять связь WINS-серверов между подсетями
нап клиентУправляет настройками соответствия состояния клиента NAP
команды netsh

Примеры Netsh

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

Сброс Winsock

Команда netsh winsock reset довольно часто рекомендуется в интернете, когда вы ищете сетевые проблемы. Но что на самом деле делает эта команда?

API Windows Sockets (Winsock) отвечает за сетевую связь между приложениями и операционной системой, в данном случае Windows. Каталог Winsock может повреждаться, что может привести к проблемам с подключением.

Мы можем восстановить каталог WinSock до настроек по умолчанию с помощью следующей команды:

netsh winsock reset

Сброс IP

Когда дело доходит до решения сетевых проблем, второй по популярности командой для выполнения является netsh int ip reset. Эта команда сбросит ваш стек TCP/IP к настройкам по умолчанию.

Когда мы говорим о стеке TCP/IP, мы имеем в виду всё, что связано с конфигурацией вашего IP-адреса. Это также означает, что конфигурация DHCP и DNS будет сброшена к настройкам по умолчанию, поэтому если у вас был настроен статический IP-адрес, он будет удалён и снова установлен на DHCP.

netsh int ip reset

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

Управление беспроводными сетями

Одним из распространенных случаев использования netsh является просмотр или управление беспроводными сетями. Я написал статью о том, как вы можете просматривать, экспортировать и импортировать пароли ваших беспроводных сетей пару лет назад. И это как раз те случаи, в которых вы можете увидеть, насколько полезна эта утилита.

Контекст WLAN позволяет вам управлять вашим беспроводным сетевым подключением. Мы можем не только просматривать, импортировать или экспортировать беспроводные настройки, но также настраивать приоритеты сети или подключаться к конкретной сети.

Например, чтобы просмотреть все сохраненные беспроводные сети на устройстве:

netsh wlan show profiles

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

netsh wlan show profiles name="Local UniFi Express"

Контекст WLAN предоставляет гораздо более мощные инструменты, убедитесь, что вы прочитали мою подробную статью об этом, чтобы узнать больше.

Управление продвинутым межсетевым экраном

Контекст advfirewall позволяет управлять практически всеми аспектами брандмауэра Windows. Мы можем просматривать текущую настройку, включать или отключать правила брандмауэра, добавлять пользовательские правила и настраивать профили.

Чтобы просмотреть текущую конфигурацию брандмауэра, мы можем использовать следующие параметры:

show all profiles
netsh advfirewall show allprofiles

View all firewall rules
netsh advfirewall firewall show rule name=all profile=domain

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

Когда дело доходит до управления фаерволом, у нас есть множество вариантов. Я покажу вам некоторые из самых удобных для знания:

Чтобы устранить проблемы с сетью, вы можете временно отключить брандмауэр. Таким образом, вы сможете быстро увидеть, является ли брандмауэр причиной проблемы с соединением. Мы можем отключить все профили или конкретный профиль:

Disable all profiles
netsh advfirewall set allprofiles state off

Disable a specific profile
netsh advfirewall set domainprofile state off

Мы также можем сбросить настройки брандмауэра до значений по умолчанию. Но прежде чем это сделать, я рекомендую сначала экспортировать текущие настройки. Оба действия можно выполнить в контексте netsh firewall:

Export the current settings
netsh advfirewall export "C:\temp\Firewall-Config-Export.wfw"

Reset the firewall to default settings
netsh advfirewall reset

Еще один распространенный случай использования команд брандмауэра netsh — это добавление или удаление правил брандмауэра. Мы можем создавать правила на основе протокола, номера порта или конкретной программы. Ниже вы найдете несколько примеров.

Правила включены по умолчанию, но вы также можете создать правило и оставить его отключенным, добавив параметр enable=no. Если вы хотите заблокировать программу или порт, просто замените action=allow на action=block, конечно.

Allow specific port (80 and 443)
netsh advfirewall firewall add rule name="Web Server" dir=in action=allow protocol=TCP localport=80,443

Allow specific program
netsh advfirewall firewall add rule name="My Program" dir=in action=allow program="C:\Path\To\Program.exe" profile=any

Allow specific protocol (ICMP ping)
netsh advfirewall firewall add rule name="Allow ICMP" dir=in action=allow protocol=icmpv4

Управление интерфейсами

Мы можем использовать контекст netsh interface для просмотра и настройки сетевых интерфейсов на устройстве. Хорошее место для начала - это посмотреть текущие интерфейсы и их статус подключения. Это даст вам знать, какие интерфейсы (Wi-Fi, Ethernet или другие адаптеры) в настоящее время используются:

netsh interface show interface

Чтобы просмотреть текущую конфигурацию интерфейса, например, вашего беспроводного сетевого адаптера, нам нужно сначала открыть контекст ipv4. Затем мы можем показать конфигурацию конкретного интерфейса:

netsh interface ipv4 show config "Wi-Fi"

Еще один часто используемый вариант - это посмотреть таблицу маршрутов. Это позволяет вам устранять проблемы с подключением к другим подсетям.

netsh interface ipv4 show route

Кроме просмотра конфигурации, мы, конечно, также можем настроить параметры в контексте netsh interface.

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

Set a static IP Address
netsh interface ip set address name="Ethernet" static 192.168.1.10 255.255.255.0 192.168.1.1

Set the DNS server
netsh interface ip set dns name="Ethernet" static 8.8.8.8

Чтобы вернуть адаптер в режим DHCP, нам нужно изменить источник на DHCP:

Set the IP Address to DHCP
netsh interface ipv4 set address name="Ethernet" source=dhcp

Set DNS to DHCP
netsh interface ipv4 set dns name="Ethernet" source=dhcp

Другим командным заданием является отключение IPv6 на машине. Нам потребуется сделать это для каждого интерфейса с помощью следующей команды:

netsh interface ipv6 set interface "Ethernet" disabled=yes

WinHTTP Прокси

Настройки прокси обычно используются в корпоративной среде, но их также можно использовать с провайдерами VPN. Контекст netsh winhttp позволяет вам просматривать и настраивать параметры прокси.

Чтобы проверить, настроена ли какая-либо прокси-служба, мы можем использовать следующую команду:

netsh winhttp show proxy

Добавление прокси-сервиса осуществляется с помощью команды установки прокси. При добавлении прокси-сервера часто есть домены, которые не должны проходить через прокси-сервер. Их можно добавить в список обхода. В приведённом ниже примере все локальные адреса будут обходить прокси:

netsh winhttp set proxy proxy-server="proxy.company.com:8080" bypass-list="*.local;<local>"

Чтобы удалить все прокси-серверы с устройства, мы можем просто сбросить конфигурацию прокси:

netsh winhttp reset proxy

Устранение неполадок с Netsh Trace

Что большинство не знает, так это то, что утилита netsh также является мощным инструментом диагностики для устранения проблем с сетью. Контекст трассировки netsh предлагает список с предопределёнными сценариями для мониторинга, захвата и анализа конкретных сетевых компонентов.

Каждый сценарий отслеживания нацелен на конкретного оператора сети или тип трафика, такой как Wi-Fi соединение, операции DNS или потоки TCP/IP. Когда вы запускаете сценарий, создается подробный журнал со всеми сетевыми данными, деталями пакетов, ошибками и т.д.

Лог-файлы можно открыть в таких инструментах, как Microsoft Message Analyzer или Wireshark для дальнейшего анализа.

Чтобы просмотреть все доступные сценарии отслеживания, мы можем использовать следующую команду:

netsh trace show scenarios

Как вы увидите, доступно довольно много вариантов. Некоторые из распространённых сценариев:

  • NetConnection – Захватывает общие проблемы с сетевым соединением.
  • NetEvent – Записывает сетевые события на высоком уровне.
  • IPSec – Контролирует соединения IPsec для устранения неполадок VPN или защищенной связи.
  • WebIO – Отслеживает HTTP/HTTPS трафик, полезен для устранения неполадок веб-приложений.
  • ВПП – Захватывает события, связанные с Платформой фильтрации Windows, имеющие отношение к вопросам брандмауэра и фильтрации пакетов.
  • Беспроводной – Мониторит активность Wi-Fi, полезен для диагностики проблем с беспроводным подключением.

Запуск сценария осуществляется в несколько шагов.

Сначала вам нужно будет начать трассировку. Это укажет netsh начать захватывать все детали, как определено в сценарии. Вам нужно будет указать местоположение для файла трассировки (.etl) и, конечно, сценарий, который вы хотите запустить:

netsh trace start scenario=NetConnection capture=yes tracefile=c:\temp\trace.etl

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

Когда возникнут проблемы, которые вы хотите зафиксировать, вам необходимо остановить трассировку.

netsh trace stop

Сбор всех данных и создание файла трассировки занимает пару минут. Но когда это будет сделано, вы сможете проанализировать ETL файл в сетевом анализаторе, таком как WireShark.

Устранение неполадок беспроводной сети

Когда мы говорим о поиске неполадок в сети, есть одна уникальная особенность в netsh, о которой стоит упомянуть. Чтобы устранить неполадки беспроводных сетевых подключений, мы можем создать HTML-отчет о WLAN.

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

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

netsh wlan show wlanreport duration="7"

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

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

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

Завершение

Когда вам нужно просмотреть или изменить параметры сети, netsh является отличным инструментом. Если вы немного ознакомитесь с основами команд, то использование netsh часто будет быстрее, чем щелкать по всем интерфейсам в Windows в наши дни.

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

Надеюсь, вы нашли эту статью полезной. Если у вас есть вопросы, просто оставьте комментарий ниже.