Внешний вид
Диагностика Windows-клиента: команды и сценарии
Почему отдельная глава: в квартирах и офисах 90% рабочих станций — Windows. Команды те же по смыслу, но другие по написанию, а несколько подводных камней у Windows вообще свои. Эта глава — перевод нашего linux-арсенала на «виндовый» плюс специфика платформы.
Где выполнять: cmd (классика), лучше Windows Terminal / PowerShell (всё ниже работает и там, и там, если не оговорено).
1. Соответствие команд: Linux → Windows
| Задача | Linux (наш Alpine/Omarchy) | Windows (cmd/PowerShell) |
|---|---|---|
| Полный сетевой конфиг | ip a + ip r | ipconfig /all |
| Освободить DHCP-адрес | udhcpc -R / ifdown | ipconfig /release |
| Запросить DHCP заново | ifup eth0 | ipconfig /renew |
| Сбросить DNS-кэш клиента | (нет кэша у busybox; nscd) | ipconfig /flushdns |
| Показать DNS-кэш | — | ipconfig /displaydns |
| Таблица маршрутов | ip route | route print (или Get-NetRoute) |
| ARP-соседи | ip neigh | arp -a |
| Список интерфейсов | ip -br link | Get-NetAdapter |
| Открытые порты/службы | ss -tulpn | netstat -ano |
| Проверить конкретный порт | nc -z host 443 | Test-NetConnection ya.ru -Port 443 |
| Путь до адресата | traceroute / mtr | tracert 1.1.1.1 |
| Путь + потери + задержки (2 мин) | mtr | pathping 1.1.1.1 |
| DNS-запрос | nslookup ya.ru / dig ya.ru | nslookup ya.ru / Resolve-DnsName ya.ru |
| Wi-Fi сети и уровень сигнала | iw dev | netsh wlan show interfaces |
| Сброс сетевого стека целиком | — | netsh winsock reset + netsh int ip reset (потом перезагрузка) |
Test-NetConnection (PowerShell) — звезда виндовой диагностики: показывает и ping, и открытость порта, и маршрутизацию одной командой:
powershell
Test-NetConnection ya.ru -Port 443
# PingSucceeded : True
# TcpTestSucceeded : True ← главное поле2. Типовой алгоритм «нет интернета» на Windows (то же дерево, другие ветки)
text
1. ipconfig /all → адрес какой? маска? шлюз? DNS?
│
├─ 169.254.x.x → DHCP не отвечает: кабель/Wi-Fi, VLAN, роутер (идём к роутеру)
│
├─ адрес есть →
2. ping <шлюз из ipconfig> → клиент ↔ роутер
3. ping 1.1.1.1 → «транспорт» есть?
4. nslookup ya.ru → DNS резолвит?
5. tracert 1.1.1.1 → где обрыв, если 1.1.1.1 не пингуется
6. Test-NetConnection ya.ru -Port 443 → если пинги есть, а сайты нет (фильтр/файервол/прокси)Смысл этажей ровно тот, что в линукс-лабах: снизу вверх, каждый переход фиксируем. Отличается только синтаксис.
3. Специфика Windows, о которой не догадаешься из Linux
APIPA — 169.254.x.x
Если клиент не получил DHCP-адрес, Windows сама назначает 169.254.0.0/16. Это ровно наш «симптом мёртвого DHCP» из кейса №1, только Windows делает это всегда и явно. Видишь 169.254 — не трогай настройки адаптера, иди к кабелю/VLAN/DHCP-серверу.
DNS-кэш и «по IP работает, по имени нет»
Windows агрессивно кэширует DNS. После починки DNS-сервера клиент может ещё минут десять помнить старые ответы (в т.ч. негативные). Первая команда после любых DNS-работ:
cmd
ipconfig /flushdnsПроверка того, ЧТО клиент думает про DNS: ipconfig /all → строки «DNS-серверы» (частая поломка: прописан старый/левый DNS, а DHCP его больше не раздаёт — Windows помнит статику).
Прокси — виндовая чума
В Linux прокси настраивается переменными окружения и приложениями; в Windows — системная настройка, и она ломает «интернет» при всяком мусоре (остатки VPN, «ускорители», вирусы):
cmd
# где смотреть (GUI): Параметры → Сеть → Прокси; в реестре:
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable
netsh winhttp show proxyСимптом классический: ping идёт, DNS резолвится, а браузеры молчат — идёшь смотреть прокси (и расширения браузера).
Клиентский файервол
У Windows свой брандмауэр: служба пингуется, а порт приложения закрыт — возможно, режет именно локальный firewall. Диагностика-выключение (на время теста!):
cmd
netsh advfirewall set allprofiles state off # ...и не забудь вернуть: state onWinsock и «сеть сломана непонятно как»
После удаления VPN/антивирусов/«ускорителей» виндовый сетевой стек (особенно LSP-winsock) бывает покалечен так, что никакие адреса не помогают. Легендарное лекарство первой линии:
cmd
netsh winsock reset
netsh int ip reset
ipconfig /flushdns
:: перезагрузкаЭто «пересборка» клиента из сценария «переустановить сеть», только в 30 секунд.
Wi-Fi диагностика без выхода из кресла
cmd
netsh wlan show interfaces :: сигнал (Signal %), канал, скорость линка, BSSID
netsh wlan show drivers :: что умеет адаптер (диапазоны, WPA3)Сигнал < 50% + жалобы «интернет пропадает» → радиоканал/точка ближе, а не провайдер.
4. Настройка статики/DHCP на Windows (как у клиента)
GUI-путь, который ты будешь тыкать на чужих машинах: Win+R → ncpa.cpl → ПКМ по адаптеру → Свойства → IPv4 → либо «получить автоматически», либо вбить IP/маску/шлюз/DNS. PowerShell-эквивалент (для скриптов и быстрых правок):
powershell
Get-NetAdapter # узнать имя адаптера, например "Ethernet"
# статика:
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.100.11 -PrefixLength 24 -DefaultGateway 192.168.100.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 192.168.100.1
# обратно на DHCP:
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Enabled
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses
ipconfig /renew5. VLAN на Windows — редкость, но знать надо
Обычный клиент не тегирует кадры: компьютер воткнут в access-порт, тег ставит свитч. Тегирование на самом клиенте (подинтерфейсы как eth0.10 в Linux) в Windows делается драйвером конкретной сетевой карты (вкладка VLAN в свойствах адаптера у Intel/Realtek) или через PowerShell на серверных NIC. На выездах почти не встретишь — хватит знать, что бывает и что искать в драйвере, если «порт прописан в VLAN, а комп не получает адрес».
6. Мини-сценарий в формате нашей игры
Жалоба: «Wi-Fi подключён, значок есть, а сайты не грузятся».
cmd
ipconfig /all :: адрес 192.168.1.37, шлюз 192.168.1.1, DNS 192.168.1.1 — вроде ок
ping 192.168.1.1 :: ок
ping 1.1.1.1 :: ок
nslookup ya.ru :: ок
netsh winhttp show proxy :: ProxyEnable = 1, адрес 127.0.0.1:8899 ← остатки умершего VPN-ускорителя
:: лечение: снять прокси в настройках / netsh winhttp reset proxy → браузеры ожилиВсё те же этажи, просто Windows добавила свой собственный подвальный этаж — прокси.
Соответствие с линукс-главами: Bash для сетевика (та же автоматизация, в PowerShell она же на другом синтаксисе), кейсы раздела «Кейсы» (диагностическая логика идентична).