Внешний вид
Скрипт автодиагностики netdiag
Одна команда — полный осмотр. Скрипт проходит лестницу «снизу вверх» сам: адреса → линк → шлюз → внешний IP → DNS → порты → маршруты, фиксирует первый обрыв и выдаёт вердикт, с какого этажа начинать чинить. Ничего в системе не меняет — только читает и проверяет.
Первый шаг, завершившийся [FAIL], и есть диагноз — скрипт подсвечивает его в финальном вердикте.
Установка и запуск
Linux (Omarchy, Alpine, любой дистрибутив, нужны ip + ping):
bash
curl -sO https://netlab.darkpix.ru/scripts/netdiag.sh
sh netdiag.sh # осмотр на экране + отчёт netdiag-report-*.txt рядом
sh netdiag.sh -q # тихий режим: только отчёт в файл (для крон/скриптов)Windows (PowerShell 5.1+, встроен в Windows 10/11):
powershell
# скачать
Invoke-WebRequest https://netlab.darkpix.ru/scripts/netdiag.ps1 -OutFile netdiag.ps1
# запуск (обход политики только для этого файла)
powershell -ExecutionPolicy Bypass -File .\netdiag.ps1Пример вывода (норма)
text
=== netdiag: диагностика сети ===
== 4. КЛИЕНТ → ШЛЮЗ (L2/L3) ==
[ OK ] шлюз 192.168.10.1 отвечает time=0.8
== 5. ШЛЮЗ → МИР: внешние IP по L3 ==
[ OK ] 1.1.1.1 пингуется
== 6. DNS: разрешение имён ==
[ OK ] ya.ru резолвится
------------------------------------------------------------
ВЕРДИКТ: типовых обрывов не найдено. ...Пример вывода (поломка)
text
== 4. КЛИЕНТ → ШЛЮЗ (L2/L3) ==
[ OK ] шлюз 192.168.10.1 отвечает
== 5. ШЛЮЗ → МИР: внешние IP по L3 ==
[FAIL] 1.1.1.1 молчит
[FAIL] 8.8.8.8 молчит
------------------------------------------------------------
ВЕРДИКТ: первый обнаруженный обрыв -> L3/NAT: до шлюза достучались,
а мир нет (маршрут роутера/его NAT/аплинк)Как читать отчёт
| Строка | Этаж | Куда смотреть дальше |
|---|---|---|
169.254.x.x (APIPA) | DHCP мёртв | кабель/VLAN, DHCP-сервер (кейс №5) |
default route ОТСУТСТВУЕТ | L3 клиента/роутера | ip route, таблица роутера (кейсы №2, П-2, П-4) |
| шлюз не отвечает | L2 | линк, VLAN, MAC-фильтр (кейс №1) |
| внешние IP молчат, шлюз жив | L3/NAT роутера | default route и NAT роутера (кейс №2, П-5) |
ya.ru НЕ резолвится | DNS | /ip dns print, фильтр UDP/53 (кейсы №3, П-3) |
| порты закрыты, пинги живы | L4/L7 | firewall filter (кейс №4) |
Практика
- Прогони скрипт на здоровой машине — запомни «картину нормы».
- Сломай что-нибудь в лабе (например,
/ip dns set servers=203.0.113.53на CHR) и прогони снова — сверь вердикт с реальностью. - Положи скрипт в портфолио вместе с примером отчёта: «инструмент первичной диагностики, воспроизводит метод лестницы».
Источник методики: Модель OSI и кейсы №1–№8. Скрипты открытые — улучшай и адаптируй под свою сеть.