Захват пакетов Keenetic: собираем адреса для маршрутов
Если вы настраиваете выборочную маршрутизацию трафика, рано или поздно встаёт вопрос: откуда взять полный список IP-адресов и доменов, которые нужно добавить в маршруты? Один из самых точных и надёжных способов — захват реального сетевого трафика прямо на роутере. В этой статье разберём, как это сделать через встроенный инструмент диагностики Keenetic, и как потом автоматически извлечь из полученного файла все нужные домены.
Также ранее рассказал, как собрать нужные адреса для статической маршрутизации через браузер.
Зачем нужен захват пакетов в Keenetic для маршрутизации
При настройке статических маршрутов под конкретный сервис (например, Netflix, Spotify или корпоративный сервис) часто недостаточно знать просто основной домен. Современные сервисы используют десятки CDN-поддоменов, сторонние API и серверы доставки контента. Вручную собрать все адреса практически невозможно.
Захват пакетов на Keenetic решает эту проблему: роутер записывает весь реальный трафик от ваших устройств при работе с нужным сервисом. Из этого файла можно точно извлечь все домены, к которым обращалось приложение.
Шаг 1. Открываем раздел диагностики в интерфейсе Keenetic
Перейдите в веб-интерфейс вашего роутера Keenetic (обычно 192.168.1.1 или my.keenetic.net).
В меню навигации найдите раздел Управление → Диагностика (или напрямую откройте /diagnostics/general).
На этой странице доступны различные инструменты диагностики сети. Нас интересует блок «Захват сетевых пакетов».
Шаг 2. Подключаем флешку к роутеру
Прежде чем создавать правило захвата, позаботьтесь о месте хранения файла. Файл захвата в формате .pcapng может весить от нескольких мегабайт до нескольких сотен мегабайт — в зависимости от активности сети и длительности записи.
Настоятельно рекомендуем сохранять файл на USB-флешку, подключённую к роутеру, а не во внутреннюю память. Причины:
- Внутренней памяти роутера может попросту не хватить
- Большой файл во внутренней памяти может замедлить работу роутера
Подключите флешку в USB-порт роутера и убедитесь, что она отображается в системе (можно отформатировать флешку в формат ext4).
Флешка отобразиться в разделе роутера Keenetic «Приложения».
Шаг 3. Создаём правило захвата пакетов
В блоке «Захват сетевых пакетов» нажмите кнопку «Добавить правило захвата».
Откроется форма с настройками. Заполните её следующим образом:
Выбор интерфейса
В поле «Подключение» выберите интерфейс, трафик которого хотите записать. Для максимально полного сбора адресов рекомендуется создать несколько правил:
| Интерфейс | Когда использовать |
|---|---|
| Wi-Fi 2.4 ГГц / 5 ГГц | Если устройства подключены по Wi-Fi |
| LAN (проводная сеть) | Если устройство подключено кабелем |
| WAN / подключение провайдера | Для захвата всего исходящего трафика |
| VLAN | Если используется сегментация сети |
💡 Совет: для полной картины создайте правила для всех Wi-Fi интерфейсов и WAN одновременно. Так вы не пропустите ни один запрос.
Место хранения
В поле «Место хранения» выберите вашу USB-флешку. Именно сюда будет сохраняться файл .pcapng.
Нажмите «Сохранить».
Шаг 4. Запускаем захват пакетов в Keenetic и воспроизводим нужный трафик
После сохранения правила в списке появится новая запись. Нажмите кнопку «Запустить» рядом с ним.
Теперь откройте на своих устройствах те сервисы или сайты, для которых собираете адреса:
- Запустите приложение и поработайте с ним несколько минут
- Откройте нужные сайты в браузере
- Если нужно — воспроизведите видео, загрузите файлы, совершите вход в аккаунт
Чем активнее вы используете сервис во время захвата, тем полнее будет список адресов. Рекомендуемое время записи — 3–10 минут активного использования.
После завершения нажмите «Остановить».
Шаг 5. Скачиваем файл захвата на компьютер
После остановки захвата пакетов просто скачайте файл.
Шаг 6. Извлекаем домены с помощью скрипта WiresharkURLsExtractor
Файл .pcapng содержит все пакеты сети в бинарном формате. Просматривать его вручную — занятие неблагодарное. Для автоматического извлечения доменных имён воспользуйтесь готовым скриптом WiresharkURLsExtractor.
Скрипт анализирует файл захвата и выдаёт чистый список HTTPS-доменов, отсеивая IP-адреса, локальные адреса, HTTP-трафик и дубликаты.
Что нужно установить
1. Python 3.6+
Скачайте с python.org и установите. На macOS и Linux обычно уже предустановлен.
2. Wireshark (включает tshark)
Скрипт использует утилиту tshark — консольный анализатор из пакета Wireshark.
- Windows: скачайте установщик с wireshark.org, при установке убедитесь, что отмечен компонент
tshark - macOS:
brew install wireshark - Linux (Ubuntu/Debian):
sudo apt install wireshark tshark
Проверьте установку:
tshark --version
Установка скрипта
Клонируйте репозиторий или скачайте архив:
git clone https://github.com/KleoPadre/WiresharkURLsExtractor.git
cd WiresharkURLsExtractor
Установите зависимость (рекомендуется в виртуальном окружении):
# Создание виртуального окружения
python -m venv venv
# Активация (Linux/macOS)
source venv/bin/activate
# Активация (Windows)
venv\Scripts\activate
# Установка зависимости
pip install pyshark
Подготовка файла захвата
Поместите скачанный .pcapng файл в папку capture/ внутри проекта:
WiresharkURLsExtractor/
├── capture/
│ └── ваш-файл.pcapng ← сюда
├── results/
├── main.py
└── ...
Запуск
python main.py
Скрипт автоматически найдёт файлы в папке capture/, обработает их и сохранит результат в папку results/.
Что получится на выходе
В папке results/ появится текстовый файл вида domains-имя_файла.txt со списком уникальных HTTPS-доменов:
HTTPS домены из файла: capture.pcapng
Всего найдено уникальных доменов: 47
==================================================
api.example.com
cdn.example.com
...
Скрипт автоматически исключает:
- HTTP-адреса
- IP-адреса (IPv4 и IPv6)
- Локальные адреса (
localhost,192.168.x.x,10.x.x.xи т.д.) - Дублирующиеся записи
- Пути и параметры после домена
Если захватывали несколько интерфейсов
Если вы создавали правила для нескольких интерфейсов, на флешке окажется несколько .pcapng файлов. Скопируйте все в папку capture/ — скрипт обработает каждый и создаст общий файл результатов.
Шаг 7. Используем собранные домены для маршрутизации
Полученный список доменов — готовая основа для настройки статических маршрутов. Далее вам понадобится преобразовать домены в IP-адреса и загрузить их в роутер.
Именно для этого и создан сервис Маршрутизатор (Domain Mapper) — он автоматически резолвит домены в IP-подсети и формирует готовый файл маршрутов для Keenetic в правильном формате.
Советы и типичные проблемы
Файл получился слишком маленьким
Возможно, захват был остановлен слишком рано или выбран не тот интерфейс. Попробуйте увеличить время записи и убедитесь, что активно пользовались нужным сервисом в это время.
ModuleNotFoundError: No module named 'pyshark'
Убедитесь, что виртуальное окружение активировано перед запуском:
source venv/bin/activate
pip install pyshark
tshark not found
Wireshark не установлен или tshark не добавлен в системный PATH. Переустановите Wireshark, выбрав компонент tshark при установке.
Флешка не определяется роутером
Убедитесь, что флешка отформатирована в FAT32 или ext4. Некоторые Keenetic не поддерживают exFAT.
Итог
Захват сетевых пакетов через диагностику Keenetic — самый точный способ собрать реальный список адресов, к которым обращается конкретное приложение или сервис. В отличие от ручного поиска или публичных списков, вы получаете именно те домены и CDN-адреса, которые нужны вашим устройствам.
Алгоритм действий:
- Подключаем флешку к роутеру
- Создаём правила захвата для нужных интерфейсов
- Запускаем захват пакетов на Keenetic и активно используем сервис
- Останавливаем и скачиваем
.pcapngфайл - Извлекаем домены скриптом
WiresharkURLsExtractor - Передаём список в Domain Mapper для формирования маршрутов
Была ли статья полезной? Поделитесь ею с теми, кто настраивает маршрутизацию на Keenetic.
Возможно, вам будет полезна статья Как собрать нужные адреса для статической маршрутизации через браузер






