Маршруты для роутера Keenetic из BAT-файла
Keenetic умеет загружать BAT-файл в формате Windows route ADD и сам применять все маршруты к выбранному VPN-интерфейсу. NetRoute Pro генерирует именно такой файл — остаётся только скачать и загрузить через веб-интерфейс роутера.
Синтаксис команды
Keenetic CLI (режим config):
(config)> ip route <CIDR> <VPN_IF>
Пример:
(config)> ip route 1.1.1.0/24 Wireguard0
Эквивалентная строка .bat (формат Windows route ADD — именно его генерирует NetRoute Pro и принимает Keenetic при загрузке через веб-интерфейс):
route ADD 1.1.1.0 MASK 255.255.255.0 0.0.0.0
При загрузке .bat маршруты автоматически привязываются к выбранному VPN-интерфейсу — значение gateway в каждой строке игнорируется. Для разовой работы из CLI используйте форму (config)> ip route.
Что понадобится
- Роутер Keenetic с настроенным VPN-туннелем (WireGuard, OpenVPN, IKEv2, OpenConnect и т.д.)
- Расширение NetRoute Pro в Chrome
- Доступ к веб-интерфейсу роутера (обычно
http://my.keenetic.net)
Шаг 1. Сгенерируйте .bat файл в NetRoute Pro
- Откройте нужный сайт в Chrome (например, заблокированный ресурс)
- Нажмите на иконку NetRoute Pro в панели расширений
- Выберите платформу Windows — именно этот формат принимает Keenetic
- Шлюз можно оставить любой (например
0.0.0.0) — при импорте с привязкой к интерфейсу Keenetic его проигнорирует - Задайте маску агрегации (рекомендуется
/24) - Нажмите Analyze Website
- Скачайте результат как .bat файл
Шаг 2. Откройте раздел Маршрутизация на Keenetic
- Откройте
http://my.keenetic.netили IP роутера - Войдите под учётной записью администратора
- Перейдите в Управление → Маршрутизация
- Выберите вкладку IPv4-маршруты
Шаг 3. Загрузите файл с привязкой к VPN-интерфейсу
- Нажмите кнопку Загрузить
- Выберите скачанный
.batфайл - В выпадающем списке Интерфейс выберите ваш VPN-туннель
- Имя интерфейса зависит от вашей настройки и VPN-провайдера — у каждого оно своё
- Если не знаете — посмотрите в разделе Интернет какой интерфейс используется для VPN
- Подтвердите загрузку
Готово — все маршруты из файла добавлены и привязаны к выбранному VPN-интерфейсу. Шлюзы из .bat файла Keenetic игнорирует, трафик идёт через указанный интерфейс.
Альтернатива для WireGuard: AllowedIPs
Если используете WireGuard, можно обойтись без статических маршрутов — задать подсети прямо в параметре AllowedIPs пира:
- В NetRoute Pro выберите платформу WireGuard
- Скопируйте строку
AllowedIPs - В Keenetic: Интернет → WireGuard → настройки пира → вставьте список в поле Allowed IPs
- Сохраните
DNS leak — обязательно прочитать
Статические маршруты на Keenetic направляют трафик по IP. DNS они не направляют. LAN-клиент всё равно спрашивает DNS-прокси Keenetic (который по умолчанию форвардит на ISP), какой IP у example.com — через VPN идёт только IP-трафик. ISP видит какие сайты вы посещаете, даже если данные зашифрованы.
Три варианта в зависимости от модели угроз:
- Полностью спрятать DNS от ISP. В Интернет → Другие подключения → ваш VPN-интерфейс установите его как приоритетный для DNS, ИЛИ задайте статические DNS в Сетевые правила → Интернет-фильтры, указав внутренний резолвер вашего VPN-провайдера (например
10.0.0.1). Keenetic будет роутить DNS-запросы через туннель. - Снизить видимость для ISP (публичный DoH/DoT). Keenetic нативно поддерживает DoH/DoT в Сетевые правила → Интернет-фильтры → DNS-over-HTTPS / DNS-over-TLS. Добавьте Cloudflare (
1.1.1.1), AdGuard (94.140.14.140) или Quad9 (9.9.9.9) как системный резолвер. - Принять leak. Поведение по умолчанию — шифруется только трафик, lookup'ы остаются у ISP.
Проверить с LAN-клиента: dnsleaktest.com — показанный резолвер должен принадлежать вашему VPN или выбранному DoH, не ISP. На самом Keenetic активные DNS-серверы видны в Системный монитор → DNS.
IPv6 dual-stack bypass
Статические IPv4-маршруты покрывают только IPv4-трафик. Если у destination есть AAAA-запись (а у большинства популярных сайтов она есть), LAN-клиенты предпочитают IPv6 (RFC 6724) — запрос идёт через дефолтный IPv6-маршрут ISP, минуя VPN.
Два варианта решения на Keenetic:
- Сгенерируйте IPv6-маршруты в NetRoute Pro если у вашего VPN есть IPv6-endpoint — тот же flow, другие префиксы (
2606:4700::/32,2001:4860::/32и т.п.). Импортируйте отдельным.batс той же привязкой к VPN-интерфейсу. - Отключите IPv6 глобально в Интернет → Подключения → IPv6 если у VPN нет v6. Весь трафик откатится на v4 и будет правильно тунелирован.
Проверка
После импорта проверьте, что маршруты применились: они появятся в списке Маршрутизация → IPv4-маршруты с привязкой к вашему VPN-интерфейсу. Но это подтверждает только что маршрут добавлен — не что трафик реально идёт через VPN. Три настоящих способа проверки с LAN-клиента:
- Проверить exit IP для routed-домена — IP должен принадлежать VPN-провайдеру, не ISP:
curl -v https://example.com 2>&1 | grep "Connected to" # Должен показать IP из одного из ваших routed-CIDR. - Проверить что интернет видит ваш IP для routed-сайта:
curl -s https://api.ipify.org # Когда routed CIDR включает ipify или тест идёт через прокси на VPN exit, # результат отражает VPN exit IP. Сравните с реальным ISP IP. - На самом роутере (через SSH/Telnet):
show ip route # подтвердить CIDR'ы привязаны к VPN_IF show interface stat <VPN_IF> # RX/TX байты должны расти когда LAN-клиент гуляет
tracert/traceroute ненадёжны для такой проверки: ICMP/UDP-пробы часто фильтруются, возвращают * * * на каждом хопе и не дают полезного сигнала.
Частые вопросы
IP сайта изменился — маршрут не работает
CDN вроде Cloudflare и Fastly периодически меняют IP. Пересоздайте .bat в NetRoute Pro с включённой RIPE BGP оптимизацией — она подставит анонсированные BGP-префиксы, которые покрывают все IP провайдера.
Слишком много маршрутов
Keenetic без проблем держит сотни статических маршрутов. Если нужно больше — используйте подход с WireGuard AllowedIPs.
Маршрут добавлен, но трафик не идёт через VPN
- VPN-интерфейс поднят? Проверьте в Интернет → Подключения — строка VPN должна показывать Подключено с ненулевым uptime.
- SNAT для LAN-трафика? Откройте Интернет → Другие подключения, выберите свой VPN-интерфейс и убедитесь что включена опция «Использовать для выхода в Интернет». Это та галочка, которая заставляет Keenetic делать NAT LAN-трафика на выход через VPN. Без неё пакеты доходят до VPN-выхода, но VPN-сервер видит их с внутренними LAN-source-IP и тихо дропает.
- Не включайте отдельное правило masquerade для коммерческих VPN-провайдеров (Mullvad, ProtonVPN, IVPN и т.п.). Сервер провайдера уже SNAT'ит ваш трафик на свой exit IP — дополнительный masquerade на клиенте бесполезен и может ломать асимметричные потоки. Включайте masquerade только если у вас свой VPN-сервер, который не SNAT'ит.
- Проверьте правила файрвола — в Сетевые правила → Межсетевой экран ничего не должно явно блокировать routed-CIDR'ы.
Для продвинутых: добавление через CLI
Если нужно автоматизировать или массово управлять маршрутами — подключайтесь по SSH/Telnet и используйте команды ip route в режиме конфигурации. Но для большинства сценариев загрузки .bat достаточно.
Пример конфигурационного файла
Готовый шаблон с комментариями. Замените примеры маршрутов выводом NetRoute Pro для ваших сайтов.
keenetic-routes.bat— Windows-форматroute ADDготовый к загрузке на Keenetic
@echo off
REM Example .bat file for upload to Keenetic router.
REM Generated by NetRoute Pro: https://alexander2k.github.io/netroute-site/
REM
REM Format: route ADD <network> MASK <netmask> <gateway>
REM Gateway can be 0.0.0.0 — Keenetic ignores it when you bind to an interface on upload.
REM Replace these example routes with output from NetRoute Pro for your target sites.
route ADD 1.1.1.0 MASK 255.255.255.0 0.0.0.0
route ADD 8.8.8.0 MASK 255.255.255.0 0.0.0.0
route ADD 162.159.0.0 MASK 255.255.0.0 0.0.0.0
REM Upload via Keenetic web UI:
REM System -> Routing -> Upload .bat -> select VPN interface -> confirm.
Подсказка: Нужен конфиг без строк-комментариев? В настройках NetRoute Pro снимите галочку «Включать комментарии в экспортируемые файлы» — расширение выгрузит только команды маршрутизации. Полезно для роутеров, которые не принимают комментарии.
Все примеры конфигов на GitHub →
Официальная документация
Похожие инструкции
- MikroTik — импорт
.rsc-скрипта в RouterOS - WireGuard — split tunneling через
AllowedIPs - Linux —
ip routeчерез shell-скрипт - OpenVPN — директивы
routeв клиентском конфиге
Готовы попробовать?
NetRoute Pro — бесплатное расширение Chrome для генерации маршрутов из любого сайта.
Установить расширение