Руководство по утилите Netsh: трассировка и не только

Введение

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



Оптимизация содержимого

1. Что такое утилита Netsh?

Netsh (Network Shell) — мощный инструмент командной строки Windows для настройки и устранения неполадок сетевых параметров. Он взаимодействует с системными компонентами через библиотеки динамической компоновки (DLL) и поддерживает различные контексты, такие как advfirewall, wlan, и winhttp.

2. Общий синтаксис команд Netsh

netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [Domain\]UserName] [-p Password|*] [Command | -f ScriptFile]

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

3. Подробно о трассировке Netsh

Сбор трассировок:
Используйте контекст netsh trace для захвата сетевых событий и пакетов в целях диагностики.

  • Команда для отображения сценариев:
netsh trace show scenarios
  • Чтобы отобразить поставщиков для определённого сценария:
netsh trace show scenario <Scenario name>

Важные параметры:
Опишите ключевые параметры, такие как scenario, capture, report, persistent, traceFile и т. д., с примерами.

Распространённые команды трассировки:

  • Запуск трассировки:
netsh trace start scenario=InternetClient capture=yes tracefile=C:\temp\trace.etl
  • Остановка трассировки:
netsh trace stop

Расширенные параметры:
Приведите расширенные примеры трассировки с такими параметрами, как maxsize, filemode, и overwrite.

Преобразование ETL в CAP:
Объясните, как преобразовать файлы ETL для использования в таких инструментах, как Wireshark:

netsh trace convert input=trace.etl output=trace.cap


4. Фильтрация сетевых захватов с помощью Netsh

Базовые фильтры:
Выделите часто используемые фильтры, например:

  • Захват трафика к определённому IPv4-адресу и от него:
IPv4.Address == x.x.x.x

Фильтры для конкретных протоколов:

  • Захват DNS-трафика:
DNS

Расширенные фильтры:
Приведите примеры, например захват пакетов установления TCP-соединения:

TCP.Flags.SYN == 1 AND TCP.Flags.ACK == 0


5. Ключевые контексты Netsh и сценарии использования

Настройка IP:

  • Назначение статического IP-адреса:
netsh interface ip set address "Ethernet" static 10.0.0.5 255.255.255.0 10.0.0.1

Сброс Winsock и стека TCP/IP:

  • Сброс стека TCP/IP:
netsh int ip reset

Управление брандмауэром:

  • Добавление правила брандмауэра:
netsh advfirewall firewall add rule name="Allow Ping" dir=in action=allow protocol=icmpv4

Настройка прокси-сервера WinHTTP:

  • Назначение прокси-сервера:
netsh winhttp set proxy "proxy:8080" "<local>"

Часто используемые фильтры netmon для анализа сетевых захватов:

Базовые фильтры

ФильтрНазначение
IPv4.Address == x.x.x.xЗахватывает трафик к определённому IPv4-адресу и от него.
IPv4.SourceAddress == x.x.x.xФильтрует трафик от определённого исходного IP-адреса.
IPv4.DestinationAddress == x.x.x.xФильтрует трафик к определённому IP-адресу назначения.
IPv6.Address == xxxx::xxxxФильтрует IPv6-трафик к определённому адресу и от него.
TCP.Port == 80Захватывает трафик на определённом TCP-порту (например, 80 для HTTP).
UDP.Port == 53Захватывает трафик на определённом UDP-порту (например, 53 для DNS).

Фильтры для конкретных протоколов

ФильтрПротоколОписание
DNSDNSЗахватывает DNS-запросы и ответы.
HTTPHTTPЗахватывает HTTP-трафик (можно дополнительно фильтровать по методам).
TCPTCPЗахватывает весь TCP-трафик.
UDPUDPЗахватывает весь UDP-трафик.
SMB2SMBЗахватывает трафик совместного доступа к файлам SMBv2.
KerberosKerberosЗахватывает пакеты аутентификации Kerberos.
LDAPLDAPЗахватывает LDAP-запросы/ответы.

Фильтры разговоров

ФильтрНазначение
IPv4.SourceAddress == x.x.x.x AND IPv4.DestinationAddress == y.y.y.yФильтрует трафик между двумя определёнными узлами.
TCP.SourcePort == 12345 AND TCP.DestinationPort == 80Фильтрует определённый сеанс клиент-сервер.

Фильтры прикладного уровня

ФильтрПример
HTTP.Request.Method == “GET”Захватывает только GET-запросы.
HTTP.Host == “example.com”Фильтрует HTTP-трафик к определённому домену.
DNS.QryName == “example.com”Фильтрует DNS-запросы для определённого домена.
SMB2.CreateRequest.FileName == “filename.txt”Захватывает обращения к файлам в SMB-трафике.

Расширенные фильтры

ФильтрНазначение
TCP.Flags.SYN == 1 AND TCP.Flags.ACK == 0Захватывает SYN-пакеты (начало установления TCP-соединения).
TCP.Flags.FIN == 1Захватывает FIN-пакеты (завершение TCP-сеанса).
TCP.Flags.Reset == 1Захватывает TCP-пакеты RST (сбросы соединений).
Frame.Length > 1000Захватывает только пакеты размером более 1000 байт.

Ключевые контексты Netsh и сценарий использования

Настройка конфигурации IP

netsh interface ip set address “Ethernet” static 10.0.0.5 255.255.255.0 10.0.0.1
netsh interface ip set dns “Ethernet” static 1.1.1.1
netsh interface ip set address “Ethernet” dhcp

Сброс Winsock и стека TCP/IP

netsh int ip reset
netsh winsock reset

Управление брандмауэром

netsh advfirewall firewall add rule name=”Allow Ping” dir=in action=allow protocol=icmpv4
netsh advfirewall firewall add rule name=”Allow RDP” dir=in action=allow protocol=TCP localport=3389

netsh advfirewall set allprofiles state on
netsh advfirewall export “C:\\backup\\fwconfig.wfw”

Прокси-сервер WinHTTP

netsh winhttp show proxy
netsh winhttp set proxy “proxy:8080” “<local>”
netsh winhttp reset proxy


6. Заключение

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

Оставить комментарий