Маршрутизация по IP
Подходит когда:
- Целевой сервис известен по IP или диапазону CIDR
- Нужно обойти ограничения NDMS (клиент с собственным DNS, OS 4.x)
- Источник списка — Windows-скрипт с
route add(часто раздаётся для VPN-обходов)
Открыть раздел
Страница Маршрутизация → вкладка IP-адреса.

Правило
Одно правило — это:
Название — для вашего удобства
Туннель — один целевой туннель из списка:
- Пользовательские — туннели, созданные в awg-manager
- Системные — туннели, поднятые напрямую в Keenetic OS
- WAN — WAN-интерфейсы роутера (можно маршрутизировать в обход VPN, если нужно)
В выпадающем списке Туннель доступны все известные роутеру интерфейсы — обычные AWG-туннели, системные NativeWG-туннели, WAN-интерфейсы и Proxy-интерфейсы sing-box-туннелей и подписок.
При недоступности интерфейса (fallback-поведение):
- Bypass — трафик пойдёт обычным маршрутом (по умолчанию)
- Kill Switch — трафик будет заблокирован (защита от утечки, если туннель упал)
Подсети — список CIDR, по одной на строку
reject не сработает.
Формат подсетей
Поле принимает по одному CIDR в строку. Опционально — комментарий после !:
10.0.0.0/8
192.168.1.0/24 !домашняя сеть
172.16.0.0/12 !офис
2001:db8::/32 !IPv6 тестоваяСчётчик справа от поля показывает сколько валидных подсетей awg-manager распознал.
Импорт из Windows .bat
Многие провайдеры VPN раздают для настройки на Windows .bat-файлы с командами route add. awg-manager умеет их парсить — кнопка Из .bat файла загружает файл и добавляет подсети в правило.
Поддерживается формат:
route add 185.76.151.0 mask 255.255.255.0 0.0.0.0 !комментарий
route add 91.108.4.0 mask 255.255.252.0 0.0.0.0awg-manager преобразует маску → CIDR (255.255.255.0 → /24) и переносит комментарии (после !). Также распознаёт простой список CIDR, если в файле он уже в таком виде.
“Orphan”-правила
Если удалить туннель, правила, ссылавшиеся на него, не пропадают — они остаются в списке как orphan (туннель не задан). Это сохраняет трудоёмкий список CIDR-ов, чтобы после пересоздания туннеля можно было просто переназначить его в правиле, а не собирать список заново.
В интерфейсе orphan-правила помечены отдельно и не применяются до назначения туннеля.
Массовые операции
Как в NDMS-вкладке — режим выделения с чек-боксами, потом Сменить туннель или Удалить для набора правил.
Импорт и экспорт
- Экспорт — выгрузить все правила как JSON
- Импорт — загрузить JSON
Полезно для миграции между роутерами или бэкапа.
Трафик самого роутера через туннель
Правила этого раздела и политики доступа работают для устройств локальной сети. Трафик, который порождает сам роутер (обновления, opkg, скачивание rule-set’ов), ими не управляется: у него нет клиента-источника, и NDMS отправляет его в основной канал.
Самый частый случай — недоступный у провайдера GitHub, из-за чего не работают установщики и скачивание наборов правил. Быстрое решение — прибить адреса вручную в CLI роутера:
ip host raw.githubusercontent.com 185.199.109.133
ip host release-assets.githubusercontent.com 185.199.109.133
system configuration saveБолее аккуратный вариант — завернуть трафик роутера к конкретным адресам в туннель через ip rule. Скрипт кладётся в хук netfilter.d, чтобы правила восстанавливались после каждой пересборки netfilter:
# /opt/etc/ndm/netfilter.d/10-github-route-router-only.sh
#!/bin/sh
# Хук вызывается со "start", ручной запуск — с "init"
case "$1" in
start|init) ;;
*) exit 0 ;;
esac
# Хук дёргается отдельно для iptables и ip6tables — второй вызов пропускаем
[ "$type" = "ip6tables" ] && exit 0
# Системное имя интерфейса, куда перенаправляем запросы
INTERFACE="nwg3"
IPS="
185.199.108.133
185.199.109.133
185.199.110.133
185.199.111.133
"
# Снимаем старые правила до проверки интерфейса — чтобы они убирались
# и в случае, когда интерфейс пропал
for ip in $IPS; do
while ip rule del to $ip 2>/dev/null; do :; done
done
# Номер таблицы маршрутизации нужного интерфейса
TABLE_NUM=$(ip route show table all | grep "dev $INTERFACE " | grep -oE 'table [0-9]+' | head -n 1 | awk '{print $2}')
if [ -z "$TABLE_NUM" ]; then
logger -t "GitHub route-script" "Ошибка: таблица для $INTERFACE не найдена. Возможно, интерфейс отключен."
exit 0
fi
# iif lo — трафик самого роутера; клиентов правило не касается
for ip in $IPS; do
ip rule add iif lo to $ip table $TABLE_NUM
done
logger -t "GitHub route-script" "Маршрутизация GitHub через $INTERFACE настроена (Table: $TABLE_NUM)."Не забудьте chmod +x и подставить в INTERFACE системное имя своего туннеля (видно на карточке туннеля). Проверить вручную: /opt/etc/ndm/netfilter.d/10-github-route-router-only.sh init.
Тем же приёмом в туннель заворачивается любой трафик роутера — достаточно поменять список адресов.
repo.hoaxisr.ru/rulesets, а для наборов, добавленных по своему URL, есть параметр download detour — скачивать через туннель.Когда использовать IP-маршруты vs DNS-маршруты
| Сценарий | Лучше |
|---|---|
| Сервис идентифицируется CIDR-блоком (Telegram, Discord) | IP-маршрут — проще и не зависит от DNS клиента |
| Сервис CDN с меняющимися IP | DNS-маршрут — следит за изменениями IP в DNS |
| Клиент использует DoH/DoT | IP-маршрут — DNS правила не сработают, запрос обходит NDMS |
| OS 4.x на роутере | IP-маршрут — NDMS-вкладка недоступна |
Что дальше?
- DNS-маршрутизация (NDMS) — правила по именам доменов
- HydraRoute Neo — альтернативный движок маршрутизации
- Управление туннелями — если нужно изменить целевой туннель