Зачем нужны статические маршруты на Keenetic
Роутеры Keenetic поддерживают гибкую маршрутизацию, позволяя направлять трафик определённых сайтов или подсетей через VPN-туннель, в то время как остальной интернет-трафик идёт напрямую через провайдера. Это называется разделением туннеля (split tunneling) и решает несколько задач: экономия трафика VPN-провайдера, снижение задержек для локальных сервисов и обход блокировок только для нужных ресурсов.
Статические маршруты особенно полезны, когда VPN-подключение используется не для всего трафика, а только для конкретных доменов — например, видеохостингов, мессенджеров или новостных сайтов. Вместо того чтобы включать VPN глобально, вы добавляете маршруты для IP-адресов этих сервисов, и роутер автоматически отправляет их через туннель.
На Keenetic маршруты можно добавлять вручную через веб-интерфейс, через командную строку (CLI) или загружая готовые BAT-файлы. Последний способ особенно удобен, когда нужно добавить сотни маршрутов — например, для CDN-сетей, которые используют множество IP-адресов.
Готовые списки маршрутов на GitHub: что это и как работают
GitHub — популярная площадка, где энтузиасты публикуют готовые наборы статических маршрутов для Keenetic. Эти списки обычно представлены в виде BAT-файлов (формат Windows route ADD) или текстовых файлов с CIDR-записями. Например, проект RockBlack-VPN/ip-address на GitHub предоставляет маршруты для популярных сервисов, таких как YouTube, которые можно использовать с VPN-соединениями AmneziaWG или WireGuard.
Принцип работы прост: вы скачиваете файл с маршрутами, загружаете его в веб-интерфейс Keenetic в разделе «Маршрутизация», выбираете VPN-интерфейс, к которому нужно привязать маршруты, и роутер автоматически добавляет их. Шлюзы в BAT-файле игнорируются — Keenetic использует указанный интерфейс.
Такие списки часто обновляются, так как IP-адреса CDN-сетей меняются. Поэтому важно следить за обновлениями репозитория или использовать инструменты, которые генерируют маршруты на лету, например расширение NetRoute Pro.
Как загрузить маршруты из BAT-файла на Keenetic
Процесс загрузки маршрутов из BAT-файла на Keenetic не требует специальных знаний и занимает несколько минут. Вот пошаговая инструкция:
- Подготовьте файл: скачайте BAT-файл с GitHub или сгенерируйте его с помощью расширения NetRoute Pro. Убедитесь, что файл содержит строки в формате
route ADD <сеть> MASK <маска> <шлюз>, напримерroute ADD 1.1.1.0 MASK 255.255.255.0 0.0.0.0.
- Откройте веб-интерфейс роутера: перейдите по адресу
http://my.keenetic.netили IP-адресу роутера, войдите под администратором.
- Перейдите в раздел маршрутизации: в меню выберите «Управление» → «Маршрутизация» → вкладка «IPv4-маршруты».
- Загрузите файл: нажмите кнопку «Загрузить», выберите BAT-файл, затем в выпадающем списке «Интерфейс» укажите ваш VPN-туннель (например, Wireguard0 или AmneziaWG). Подтвердите загрузку.
- Проверьте результат: маршруты появятся в списке с привязкой к выбранному интерфейсу. Если что-то пошло не так, проверьте, что VPN-интерфейс активен и включена опция «Использовать для выхода в Интернет» в настройках подключения.
Этот метод работает даже на базовых прошивках Keenetic и позволяет применить сотни маршрутов за секунду.
Альтернативный способ: WireGuard AllowedIPs
Если вы используете WireGuard, можно обойтись без статических маршрутов, задав нужные подсети прямо в параметре AllowedIPs пира. Это более элегантное решение, так как маршруты создаются автоматически при установке туннеля.
Для этого в NetRoute Pro выберите платформу WireGuard, скопируйте строку AllowedIPs и вставьте её в настройки пира в Keenetic (Интернет → WireGuard → настройки пира → поле Allowed IPs). После сохранения роутер сам добавит маршруты для указанных подсетей.
Преимущество этого метода в том, что маршруты обновляются автоматически при переподключении туннеля, и нет необходимости вручную загружать BAT-файлы. Однако он подходит только для WireGuard, тогда как статические маршруты работают с любым VPN-протоколом — OpenVPN, IKEv2, OpenConnect и другими.
Проблемы с мобильными приложениями и их решение
Пользователи Keenetic часто сталкиваются с ситуацией, когда маршруты работают на ПК и ТВ, но мобильные приложения (Android, iOS) не могут воспроизводить видео или загружать контент. Это связано с особенностями работы мобильных приложений, которые могут использовать дополнительные IP-адреса или протоколы, не покрытые маршрутами.
Одно из решений — создание отдельной политики доступа для мобильных устройств. В Keenetic можно создать политику, в которой указать основное соединение и VPN, а затем включить многопутевую передачу (multipath). Это позволяет трафику идти одновременно по двум каналам, что часто решает проблему.
Другой вариант — проверить, все ли IP-адреса ресурса включены в маршруты. Иногда приложение использует адреса, которые не попали в список, особенно если CDN-сеть имеет много подсетей. В этом случае поможет трассировка или использование более полных списков маршрутов.
Также стоит учитывать, что некоторые VPN-протоколы (например, AmneziaWG) могут работать хуже с мобильными приложениями, чем обычный WireGuard. Если проблема не решается, попробуйте переключиться на другой протокол.
DNS-утечки: как их избежать при использовании маршрутов
Статические маршруты на Keenetic направляют только IP-трафик, но не DNS-запросы. По умолчанию LAN-клиенты обращаются к DNS-прокси Keenetic, который форвардит запросы на DNS-серверы провайдера. Это означает, что провайдер видит, какие сайты вы посещаете, даже если сам трафик зашифрован VPN.
Чтобы избежать DNS-утечек, есть три основных подхода:
- Направить DNS через VPN: в настройках VPN-интерфейса (Интернет → Другие подключения) установите его как приоритетный для DNS, либо задайте статические DNS-серверы VPN-провайдера в «Сетевые правила» → «Интернет-фильтры».
- Использовать DoH/DoT: Keenetic поддерживает DNS-over-HTTPS и DNS-over-TLS. Добавьте публичные резолверы, такие как Cloudflare (1.1.1.1), AdGuard (94.140.14.140) или Quad9 (9.9.9.9), в качестве системных. Это скроет DNS-запросы от провайдера.
- Принять утечку: если модель угроз не требует скрытия DNS, можно оставить всё как есть. Но помните, что провайдер будет видеть список посещаемых доменов.
Проверить наличие утечек можно с помощью сервиса dnsleaktest.com — показанный резолвер должен принадлежать вашему VPN или выбранному DoH, а не провайдеру.
Проблема IPv6: почему маршруты могут не работать
Статические IPv4-маршруты покрывают только IPv4-трафик. Если сайт имеет AAAA-запись (IPv6-адрес), а у большинства популярных ресурсов она есть, то LAN-клиенты по умолчанию предпочтут IPv6 (согласно RFC 6724). В результате запрос пойдёт через дефолтный IPv6-маршрут провайдера, минуя VPN, и маршруты не сработают.
Есть два способа решения:
- Сгенерировать IPv6-маршруты: если ваш VPN-провайдер поддерживает IPv6, можно создать отдельный BAT-файл с IPv6-префиксами (например, 2606:4700::/32 для Cloudflare) и импортировать его с привязкой к VPN-интерфейсу.
- Отключить IPv6: если VPN не поддерживает IPv6, проще отключить его глобально в настройках Keenetic (Интернет → Подключения → IPv6). Тогда весь трафик будет идти по IPv4 и корректно тунелироваться.
Важно помнить, что отключение IPv6 может повлиять на доступность некоторых сайтов, которые работают только по IPv6, но таких меньшинство.
Проверка работы маршрутов: реальные методы
После импорта маршрутов важно убедиться, что трафик действительно идёт через VPN. Простое наличие маршрутов в списке не гарантирует, что они работают. Вот несколько надёжных способов проверки:
- Проверка exit IP: с LAN-клиента выполните
curl -v https://example.com 2>&1 | grep "Connected to"— IP-адрес должен принадлежать одному из ваших routed-CIDR. Также можно зайти на сайт, который показывает ваш IP (например, api.ipify.org), и сравнить его с IP провайдера.
- Проверка счётчиков на роутере: подключитесь к Keenetic по SSH или Telnet и выполните
show interface stat <VPN_IF>— счётчики RX/TX должны расти, когда LAN-клиент заходит на routed-сайт.
- Использование трассировки: хотя
tracerouteчасто ненадёжен из-за фильтрации ICMP, он может показать, что пакеты идут через VPN-туннель, если первый хоп — IP вашего VPN-сервера.
Не полагайтесь только на визуальное воспроизведение видео — лучше проверить технически, чтобы убедиться, что маршрутизация работает корректно.
Инструменты для генерации маршрутов: NetRoute Pro и Telegram-боты
Вручную собирать маршруты для каждого сайта — утомительно. К счастью, есть инструменты, которые автоматизируют этот процесс.
NetRoute Pro — бесплатное расширение для Chrome, которое анализирует открытый сайт и генерирует BAT-файл с маршрутами. Оно поддерживает агрегацию подсетей (например, /24), что уменьшает количество записей, и может использовать RIPE BGP-оптимизацию для замены отдельных IP на реальные BGP-префиксы провайдера. Однако для shared CDN (Cloudflare, AWS) BGP-оптимизация может добавить десятки тысяч несвязанных IP, поэтому для таких сетей лучше использовать обычную CIDR-агрегацию.
Telegram-боты — например, @keen_routes_bot — позволяют получить маршруты для известных сайтов или по собственному списку URL. Бот опрашивает несколько DNS-серверов и собирает IP-адреса, затем выдаёт готовый файл для загрузки в Keenetic. Это удобно, если нужно быстро получить маршруты для конкретного ресурса.
Оба инструмента экономят время и снижают риск ошибок, особенно когда речь идёт о десятках и сотнях маршрутов.
Частые ошибки и советы по оптимизации
При настройке маршрутов на Keenetic пользователи часто допускают несколько типичных ошибок:
- Не включена опция «Использовать для выхода в Интернет» для VPN-интерфейса. Без неё Keenetic не делает NAT для LAN-трафика, и VPN-сервер видит пакеты с внутренними IP, что приводит к их отбрасыванию.
- Не все IP-адреса ресурса покрыты маршрутами. CDN-сети постоянно меняют IP, поэтому маршруты устаревают. Регулярно обновляйте списки или используйте инструменты с BGP-оптимизацией.
- Игнорирование IPv6. Как уже упоминалось, без IPv6-маршрутов часть трафика может уходить мимо VPN.
- Избыточное количество маршрутов. Keenetic без проблем держит сотни маршрутов, но если их тысячи, лучше использовать WireGuard AllowedIPs.
Советы по оптимизации:
- Используйте агрегацию подсетей (/24 вместо /32), чтобы уменьшить количество записей.
- Для коммерческих VPN-провайдеров не включайте дополнительный masquerade — сервер уже делает SNAT.
- Проверяйте DNS-утечки после настройки и при необходимости включайте DoH/DoT.
- Следите за обновлениями репозиториев на GitHub, чтобы маршруты оставались актуальными.
Вопросы и ответы
Как добавить маршруты из GitHub на Keenetic?
Скачайте BAT-файл с GitHub (например, из репозитория RockBlack-VPN/ip-address), затем в веб-интерфейсе Keenetic перейдите в «Управление» → «Маршрутизация» → вкладка «IPv4-маршруты», нажмите «Загрузить», выберите файл и укажите VPN-интерфейс. Keenetic автоматически применит маршруты, игнорируя шлюзы из файла.
Почему маршруты работают на ПК, но не на мобильных устройствах?
Мобильные приложения могут использовать дополнительные IP-адреса или протоколы, не покрытые маршрутами. Попробуйте создать отдельную политику доступа для мобильных устройств с включённой многопутевой передачей, либо проверьте, все ли подсети ресурса включены в маршруты. Также может помочь переход с AmneziaWG на обычный WireGuard.
Как избежать DNS-утечек при использовании статических маршрутов?
Настройте VPN-интерфейс как приоритетный для DNS в «Интернет» → «Другие подключения», либо задайте статические DNS-серверы VPN-провайдера. Альтернативно включите DoH/DoT в «Сетевые правила» → «Интернет-фильтры», добавив публичные резолверы. Проверьте утечки через dnsleaktest.com.
Что делать, если маршрут добавлен, но трафик не идёт через VPN?
Проверьте, что VPN-интерфейс активен и включена опция «Использовать для выхода в Интернет» в настройках подключения. Убедитесь, что нет блокирующих правил файрвола. Для коммерческих VPN не включайте дополнительный masquerade — сервер уже делает SNAT. Также проверьте, не уходит ли трафик по IPv6.
Как часто нужно обновлять маршруты для CDN-сайтов?
CDN-сети (Cloudflare, Fastly) меняют IP-адреса регулярно, поэтому маршруты могут устаревать. Рекомендуется обновлять списки раз в несколько недель или использовать инструменты с RIPE BGP-оптимизацией, которые подставляют актуальные BGP-префиксы. Для shared CDN лучше использовать обычную CIDR-агрегацию, чтобы избежать избыточных маршрутов.
Можно ли использовать WireGuard AllowedIPs вместо статических маршрутов?
Да, если вы используете WireGuard. В настройках пира в Keenetic вставьте список подсетей в поле Allowed IPs — маршруты создадутся автоматически. Это удобнее, так как не нужно загружать BAT-файлы, и маршруты обновляются при переподключении. Однако этот метод не подходит для других VPN-протоколов.
Как проверить, что трафик реально идёт через VPN?
С LAN-клиента выполните curl -v https://example.com 2>&1 | grep "Connected to" — IP должен принадлежать routed-CIDR. Также можно проверить exit IP через api.ipify.org. На роутере через SSH выполните show interface stat <VPN_IF> — счётчики должны расти при обращении к routed-сайту. Traceroute ненадёжен из-за фильтрации ICMP.