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.
Сброс 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=yesWinHTTP Прокси
Настройки прокси обычно используются в корпоративной среде, но их также можно использовать с провайдерами 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 в большинстве контекстов. Таким образом, вы всегда можете вернуться к прежним настройкам.
Надеюсь, вы нашли эту статью полезной. Если у вас есть вопросы, просто оставьте комментарий ниже.







