Документация

NetScope — веб-инструмент сетевой диагностики. Проверяйте DNS, порты и HTTP-заголовки прямо из браузера, без установки дополнительных программ.

Посмотреть на GitHub

Обзор

NetScope предоставляет стандартные инструменты сетевой диагностики через удобный веб-интерфейс и REST API. Все операции выполняются на стороне сервера — результаты отражают реальное состояние сети с точки зрения сервера.

DNS-запрос

Получение записей A, AAAA, MX, NS и TXT для любого домена.

Сканер портов

TCP-подключение к заданным портам (до 20 штук). По умолчанию проверяет 21, 22, 80, 443, 3306, 5432 и другие.

HTTP-заголовки

Получение заголовков ответа любого URL с поддержкой редиректов. Показывает итоговый URL и код статуса.

Справочник API

Все эндпоинты принимают POST-запрос с JSON-телом и возвращают JSON. Базовый URL: /api

POST /api/dns публичный
Тело: {"host": "github.com"}
Ответ: {"host", "records": {"A": [...], "MX": [...], ...}}
POST /api/ports публичный
Тело: {"host": "1.1.1.1", "ports": [80, 443, 22]} (максимум 20 портов)
Ответ: {"host", "results": [{"port": 80, "open": true}, ...]}
POST /api/headers публичный
Тело: {"url": "https://example.com"}
Ответ: {"url", "status": 200, "headers": {...}}
GET /api/health healthcheck
Ответ: {"status": "ok"}

Самостоятельный деплой

NetScope полностью контейнеризован. Для запуска нужны Docker и Docker Compose.

git clone https://github.com/McMaxim/netscope.git
cd netscope

# Укажи свой домен в Caddyfile
nano Caddyfile

docker compose up -d

Caddy автоматически получит SSL-сертификат через Let's Encrypt. Дополнительная настройка не требуется.

Архитектура

Браузер
  └─▶ Caddy (HTTPS :443, авто-TLS)
        ├─▶ /api/* ──▶ FastAPI бэкенд (:8000)
        └─▶ /*     ──▶ Статические файлы фронтенда

Безопасность

Входные данные (хост) проверяются регулярным выражением /^[a-zA-Z0-9.\-_]+$/ для защиты от инъекций. Все системные вызовы используют форму exec без оболочки. Сканирование портов ограничено 20 портами за запрос. На каждую операцию установлен таймаут.