Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)

Всем привет!

Проекту нужны желающие поучаствовать в открытом тестировании адаптивной VPN-маршрутизации.
https://github.com/R17a/Susanin.Keenetic

Статус: активная разработка / полевое тестирование. Проверено на Keenetic Viva (MT7621, MIPS), KeeneticOS 5.1.5, Entware, WireGuard/ASCWG-туннель. Основная среда — legacy iptables + ipset (nftables на этом ядре нет).

Проект разработан на основе статьи на Habr и проекта Fiark/susanin (адаптивная VPN-маршрутизация для MikroTik RouterOS), портирован на роутеры Keenetic/Entware.

Адаптивная маршрутизация - программа смотрит, какие соединения «не работают» из-за блокировок, пробует их через VPN, запоминает рабочие и дальше держит их в VPN. Если VPN недоступен — всё идёт напрямую. Есть и простой список доменов, которые должны идти через VPN всегда (без ручных списков IP — только имена, как в Keenetic).

Не является VPN-клиентом: туннель (WireGuard/ASCWG «Дополнительное подключение») должен уже работать, IPv6 не поддерживается.

Что делает

  • наблюдает за поведением соединений (conntrack), а не за содержимым;
  • по «тихим» признакам блокировок (TCP SYN без ответа, QUIC/UDP без reply, TCP-stall, late-stall) отправляет IP на проверку через VPN;
  • подтверждает рабочие направления (кэш ok) и запоминает их постоянно (ok_ttl=0, переживает перезагрузки; снимает сам, если маршрут через VPN перестал отвечать);
  • TCP и UDP/QUIC учит раздельно;
  • список доменов «всегда через VPN» (vpn_always.txt): эти направления всегда идут в туннель;
  • список доменов "всегда напрямую) (vpn_never.txt): эти направления всегда НЕ идут в туннель;
  • если сайт ответил по основному каналу, он не заворачивается в VPN (кандидатами становятся только направления без ответа);
  • fail-open: при недоступности туннеля — прямой доступ (DIRECT);
  • автоматически чинит правила, если их снёс NDM (Web-UI change) — reconcile;
  • может маршрутизировать и клиентов OpenConnect-сервера на этом же роутере (интерфейс oc0): установщик находит сервер и предлагает добавить его в маршрутизацию;
  • работает как демон под Entware (/opt), управление — только CLI/SSH.
  • Не является VPN-клиентом: туннель (WireGuard/ASCWG «Дополнительное подключение») должен уже работать. IPv6 в v1 не поддерживается.

Как это устроено (кратко)

  • Смотрим на соединения, а не на содержимое. Программа читает /proc/net/nf_conntrack — там видно состояние TCP, сколько пакетов и байт ушло и пришло, метки.
  • Правила фильтрации. Своя цепочка SUSANIN в mangle PREROUTING (после правил Keenetic). Нужные адреса помечаются через CONNMARK/MARK и уходят в отдельную таблицу маршрутизации (по умолчанию 100; номер должен быть маленьким — busybox ip не понимает большие). Адреса хранятся в наборах ipset susanin_{test,ok}_{tcp,udp}.
  • Таймеры. Проверки идут по расписанию: FAST 1 с, SOFT 2 с, JUDGE 1 с, HEALTH 5 с. «Зависшие» соединения удаляются из conntrack, чтобы клиент подключился заново — уже через VPN. Пороги взяты из проекта Susanin.MikroTik.

OpenConnect VPN на том же роутере
Если на роутере установлено и работает приложение OpenConnect VPN (ocserv), установщик сам находит его интерфейс (oc0) и спрашивает:

Цитата

OpenConnect server detected (oc0). Add it to Susanin routing? [y/N]

Ответьте y (или yes). При запуске с --yes вопрос не задаётся. Что делает установщик при согласии:

  • добавляет интерфейс oc0 в lan_interfaces;
  • добавляет подсеть клиентов OpenConnect (например, 172.16.5.0/24) в lan_subnets (значение берётся из ipv4-network в /var/run/ocserv/ocserv.conf или из адреса интерфейса);
  • после этого трафик клиентов (телефон/ноутбук через OpenConnect) обрабатывается так же, как трафик LAN: заблокированное идёт через VPN, остальное — напрямую; отдельные правила NAT не нужны.

Требования

  • Keenetic с установленным Entware;
  • пакеты Entware: ipset, conntrack, busybox, iptables (legacy);
  • работающий VPN-туннель (WireGuard/AmneziaWG) — его интерфейс будет egress;
  • LAN-интерфейсы (обычно br0, br1);
  • в Keenetic выключена «Маршрутизация DNS» (доменные маршруты, которые уводят домены в туннель) — иначе Keenetic и Susanin мешают друг другу;

DNS_Route.png

  • настроен шифрованный DNS (DoH/DoT) — на роутере или на клиентах: иначе провайдер может подменить ответы DNS, и клиент не получит настоящий адрес сайта даже при рабочем VPN (частая причина «YouTube/Devart не открывается»);

    Указано как пример.
    DNS.png
  • root-доступ по SSH.

 

Важно: «Приоритеты подключений» Keenetic и Susanin

Keenetic умеет сам направлять устройства и сегменты в VPN (Web → «Приоритеты подключений»). Это отдельный механизм: его правила идут с приоритетом 100–107, а правила Susanin — 2000/2001. Поэтому для клиента, привязанного к политике Keenetic, весь трафик идёт по решению Keenetic (в VPN или напрямую — зависит от политики), а списки и обучение Susanin на него не действуют.

Простое правило: у каждого клиента должен быть один «решающий» механизм.

  • Хотите, чтобы решал Susanin (что через VPN, что напрямую) — у клиента или сегмента не должно быть назначено никакой политики (оставьте системную «по умолчанию»). Это про любую политику: названия задаёте вы сами, и любая назначенная политика перекрывает Susanin. Например, при политике «только напрямую» заблокированный сайт не откроется, и Susanin не сможет завернуть его в VPN.
  • Хотите «всё и всегда через VPN» — можно назначить политику Keenetic, но тогда списки и обучение Susanin для этого клиента не работают.
  • Смешивать оба для одного клиента нельзя.

Проверить привязки:

Цитата

ndmc -c "show running-config" | grep -i "ip policy"


(или Web → «Приоритеты подключений»).

Как понять по conntrack, кто управляет клиентом:

  • mark=2684xxxxx (0xffffaXX) — клиент под политикой Keenetic, Susanin его не обрабатывает;
  • mark=0 или mark=536870912 (0x20000000) — работает Susanin (напрямую или через VPN).


Установка (первый раз)

Цитата

opkg update && opkg install ca-certificates ipset iptables conntrack
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | sh

или

Цитата

opkg update && opkg install ca-certificates ipset iptables conntrack
opkg install curl
curl -fsSL https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | sh

Демо
demo.png

Обновление

sh /opt/susanin/tools/susanin.sh update            # до последнего релиза
sh /opt/susanin/tools/susanin.sh update v0.3.9     # конкретная версия

Демо
image.png.58c028595adf37a4f217d2ba9ecfbae8.png


Итого результат

  • Работают: Youtube, X.com, DevArt, Claude и т.п.
  • Телеграм работает без прокси
  • Если на роутере установлено приложении OpenConnect, а на телефоне OpenConnect клиент - у Вас на сотовом телефоне "Весь интернет работает"
  • Система сама обучается и строит рабочие маршруты


Страница проекта тут https://github.com/R17a/Susanin.Keenetic
Вопросы и пожелания в этой теме или в Телеграм https://t.me/Susanin_Keenetic

Изменено пользователем R17a
  • Спасибо 1
  • Лайк 2
  • Не согласен 1
Опубликовано (изменено)

У меня только 1 вопрос. А зачем это все? Зачем выдумывать велосипед да еще и с квадратными колесами, если уже давно (в том числе здесь на форуме) есть достаточно успешные и проверенные временем проекты типа MagiTrickle и другие?

Изменено пользователем FLK
Опубликовано

Штатное решение "Маршрутизация DNS":

- особо не обучается (добавления новых адресов ноль)

- поддержки подсетей ноль

Про други проекты сказать не могу т.к. н использовал и какие у них колёса нет знаю.

Воросты про маршрутизацию VPN вижу как тут, так и в https://t.me/Netcraze - если есть у  людей вопросы, в том числе и не отвечэеэные - вопрос актуален или все не знают про "проверенные временем проекты типа MagiTrickle и другие"..

Опубликовано
1 час назад, FLK сказал:

У меня только 1 вопрос.

Вопрос только в размещении темы не в том разделе, а народное творчество всегда на пользу. Тут вроде самообучающийся маршрутизатор, в МТ такого нет, как и в других маршрутизаторах. Такой велосипед ещё не ездил.  

Опубликовано (изменено)
1 час назад, R17a сказал:

Штатное решение "Маршрутизация DNS":

- поддержки подсетей ноль

В каком смысле 0?)

Цитата
  • по «тихим» признакам блокировок (TCP SYN без ответа, QUIC/UDP без reply, TCP-stall, late-stall) отправляет IP на проверку через VPN;

Это в принципе и все "самообучение"? Я правильно понимаю?

 

Изменено пользователем FLK
Опубликовано
6 часов назад, FLK сказал:

В каком смысле 0?)

Задача с одной неизвестной.
Дано:

  • работающее VPN подключение в "Другие подключения"
  • Маршрутизация > Маршруты DNS > Правила маршрутизации (выбрано активное VPN подключение)

Как роутеру объяснить, что мне 57.144.0.0/14, 157.240.0.0/16, 185.60.216.0/22, 31.13.64.0/18 и т.д. нужно заворачивать в работающий VPN ?

 

6 часов назад, FLK сказал:

Это в принципе и все "самообучение"? Я правильно понимаю?

Если описанной информации в первом сообщении или на GitHub мало, предлагаю ознакомится со статьёй на Habr (держа в голове, что я портировал с MikroTik на Keenetic всё, кроме специфики RouterOS).

Если вся переписка это просто хейт, предлагаю уйти в личные сообщения.

«Колхоз — дело добровольное: хочешь — иди, хочешь — со стороны гляди» (С) Шолохов

Опубликовано
1 час назад, R17a сказал:

Задача с одной неизвестной.
Дано:

  • работающее VPN подключение в "Другие подключения"
  • Маршрутизация > Маршруты DNS > Правила маршрутизации (выбрано активное VPN подключение)

Как роутеру объяснить, что мне 57.144.0.0/14, 157.240.0.0/16, 185.60.216.0/22, 31.13.64.0/18 и т.д. нужно заворачивать в работающий VPN ?

Открою секрет - создаешь список с подсетями и назначаешь правило. И о чудо, оно работает)))

 

Опубликовано

Susanin.Keenetic v0.3.6

Что нового в этой версии

  • wildcard-зоны *.example.com в vpn_always.txt и vpn_never.txt: покрывают домен и поддомены. Точная строка example.com по-прежнему означает только сам домен — поддомены обрабатываются адаптивно;
  • конфликт зон: если зона есть в обоих файлах (vpn_always.txt / vpn_never.txt) или зоны пересекаются (например *.keenetic.ru и forum.keenetic.ru), приоритет у «напрямую» (vpn_never), в лог пишется предупреждение;
  • обслуживание: ротация лога (susanin.log >5 МБ → susanin.log.1.gz..3.gz) и архивация старых каталогов datapath-* в /opt/susanin/var/archive/;
  • меньше «дрожания» списков в tail -n 40 /opt/susanin/var/susanin.log: адрес убирается из наборов только если он отсутствует 2 обновления подряд; per-IP записи pin/unpin перенесены в DEBUG (в INFO — только итоговая строка).

Установка (первый раз)

opkg update && opkg install ca-certificates
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | sh

Обновление

sh /opt/susanin/tools/susanin.sh update
/opt/susanin/bin/susanin-agent version

 

Опубликовано

 Susanin.Keenetic v0.3.8

Что нового в этой версии

  • Откат кода по rate/late-stall-детект: потоки, которым DPI ТСПУ РКН отдал ответ снова уходят в VPN (`SOFT TCP-LATE-STALL`, `QUIC-LATE-STALL`); Пороги `TCP-CLOSE`/`TCP-STALL` снова `rp <= 2 && rb < 256`. Это возвращает автообучение CDN-поддоменов, из-за чего переставали работать превью/видео YouTube, а также медиа x.com/Insta — включая клиентов OpenConnect (`oc0`), где трафик к Fastly/Akamai-EDGE уходил DIRECT и тормозил. На `vpn_always`/`vpn_never` и wildcard-зоны не влияет;
  • hysteresis списков: (`vpn_always`/`vpn_never`) считает интервалы, а не вызовы `va_refresh`/`vn_refresh`;
  • `vpn_never.txt`: имена приводятся к нижнему регистру (как в `vpn_always.txt`) — дедуп и сравнение зон больше не зависят от регистра;
  • `datapath.sh status`: правильные размеры ipset-наборов в ядре (раньше показывало 125 вместо 2682 — счётчик учитывал не все адреса);
  • `susanin-agent status`: размеры ipset-наборов верны и на больших объёмах (раньше могли занижаться), и в выводе виден ipset-набор susanin_never.

Установка (первый раз)

opkg update && opkg install ca-certificates
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | sh

Обновление

sh /opt/susanin/tools/susanin.sh update
/opt/susanin/bin/susanin-agent version

 

Опубликовано (изменено)

Требуются смелые и отзывчивые на тест Susanin.Keenetic под OpenWRT.

https://github.com/R17a/Susanin.Keenetic/releases/tag/openwrt-v0.3.8 - OpenWRT - сборка Susanin.Keenetic openwrt-v0.3.8

Экспериментальная сборка для роутеров Keenetic / Netcraze, перепрошитых на OpenWRT.
На живом железе не тестировалась — предварительный выпуск для проверки сообществом.

Установка Онлайн (архитектура и версия определяются автоматически):

Цитата

--deps дополнительно поставит нужные пакеты через opkg (ipset, conntrack-tools, iptables-legacy, ip-full, ca-bundle, kmod-ipset kmod-ipt-conntrack kmod-ipt-connmark kmod-ipt-tcp-mss); без него установите их вручную.

Сервис: /etc/init.d/susanin enable && /etc/init.d/susanin start;
Проверка: /usr/bin/susanin-agent status; лог: /var/lib/susanin/susanin.log.

Офлайн: возьмите архив под свою архитектуру (см. ниже), распакуйте и выполните
sh install-openwrt.sh.

susanin-openwrt-mipsel_24kc.tar.gz - MT7620 / MT7621 / MT7628 - большинство Keenetic/Netcraze (Start, 4G, Omni, Extra, Viva, Giga, Ultra)
susanin-openwrt-aarch64_cortex-a53.tar.gz - MT7622 / MT7981 / MT7986 - новые модели (ARM/filogic)

Сообщить о проблемах
Issues: https://github.com/R17a/Susanin.Keenetic/issues
Форум: т.е. тут
Telegram: https://t.me/Susanin_Keenetic

Проверено: только сборка (компиляция). Поведение на устройстве не проверялось.

Диагностика (запустите в момент проблемы, отчёт сохраняется в /tmp/susanin-report.txt):

wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/openwrt/tools/owrt-report.sh | sh

 

Изменено пользователем R17a
Опубликовано

Попробовал чудо маршрутизатор. Толком он не работает, либо нет правильного мануала. Подозреваю что дело в DNS, т.к. в логах записи в вида:

INFO: vpn_always: twimg.com resolve failed (no A records)

Пробовал принудительно указывать vpn_always_dns, но результата нет. Через туннель какие-то килобайты бегут и дальше всё. Тут либо у маршрутизатора с DNS какие-то проблемы, либо он от клиентов DNS запросы не перехватывает. Телега тоже не взлетела.   

Опубликовано (изменено)
8 часов назад, Кинетиковод сказал:

Попробовал чудо маршрутизатор. Толком он не работает, либо нет правильного мануала.

Я за любой кипишь в коде и инструкциях, лишь бы был feedback от желающих.
У меня на Viva (KN-1910)/Entware/5.1.5 - работает, будем разбираться и с другими железяками. 
 

8 часов назад, Кинетиковод сказал:

Подозреваю что дело в DNS, т.к. в логах записи в вида:

INFO: vpn_always: twimg.com resolve failed (no A records)

Пробовал принудительно указывать vpn_always_dns, но результата нет. Через туннель какие-то килобайты бегут и дальше всё. Тут либо у маршрутизатора с DNS какие-то проблемы, либо он от клиентов DNS запросы не перехватывает. Телега тоже не взлетела.   


1. Что говорит?

/opt/susanin/bin/susanin-agent status

config file: /opt/susanin/etc/susanin.conf (present)
egress=nwg0 table=100 lan=br0,br1,oc0
data plane:
  chain SUSANIN                OK
  PREROUTING jump              OK
  ip rule test->table          OK
  ip rule ok->table            OK
  route default in table       OK
ipset sizes:
  susanin_test_tcp   = 0
  susanin_test_udp   = 0
  susanin_ok_tcp     = 4347
  susanin_ok_udp     = 453
  susanin_ok_net     = 9
  susanin_never      = 0
vpn_always (always-VPN list):
  file: /opt/susanin/etc/vpn_always.txt (present)
  domains: 211 (refresh every 300s, resolver: auto)
cache:
  state file                   OK

2. Отключено в "Подключения к интернету по Ethernet-кабелю" -> "Игнорировать DNSv4 интернет провайдера?

image.png.70d7c9dd7662c4524d9e11db696b4ca3.png

3. Включены DoT и DoH, как я показал в первом посте? (сервера могут быть свои).

4. Можно в ответ в архиве вложить?
/opt/susanin/etc/susanin.conf
/opt/susanin/var/susanin.log

Если Вы "счастливый" обладатель настроек у провайдера по блокировкам DoT и DoH, тогда да - всё тлен или пробовать другие DoT и DoH сервера...  =(
Поведение DNS (пока) похоже на ваше https://t.me/whackdoor/30961, но лучше ответом дайте логи.

p.s. залил скрипт сбора данных и для Entware.

Entware: wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/tools/report.sh | sh
на выходе /opt/susanin/var/report.txt

OpenWRT: wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/openwrt/tools/owrt-report.sh | sh
на выходе /tmp/susanin-report.txt

Изменено пользователем R17a
Опубликовано
15 часов назад, R17a сказал:

У меня на Viva (KN-1910)/Entware/5.1.5 - работает, будем разбираться и с другими железяками.

С другими не надо, у меня 1910.

16 часов назад, R17a сказал:

1. Что говорит?

/opt/susanin/bin/susanin-agent status

Спойлер

~ # sh /opt/susanin/tools/susanin.sh status
daemon: RUNNING
config file: /opt/susanin/etc/susanin.conf (present)
egress=nwg1 table=100 lan=br0,br1
data plane:
  chain SUSANIN                MISSING
  PREROUTING jump              MISSING
  ip rule test->table          MISSING
  ip rule ok->table            MISSING
  route default in table       MISSING
ipset sizes:
  susanin_test_tcp   = 0
  susanin_test_udp   = 0
  susanin_ok_tcp     = 0
  susanin_ok_udp     = 0
  susanin_ok_net     = 0
  susanin_never      = 0
vpn_always (always-VPN list):
  file: /opt/susanin/etc/vpn_always.txt (present)
  domains: 195 (refresh every 300s)
cache:
  state file                   OK

 

Днс свои, провайдерские отключены.

16 часов назад, R17a сказал:

4. Можно в ответ в архиве вложить?
/opt/susanin/etc/susanin.conf
/opt/susanin/var/susanin.log

Конфиг:

Спойлер

# Susanin.Keenetic runtime configuration.
# Non-secret. Normally generated by `susanin setup` / install.sh.

# Egress (VPN/WireGuard tunnel) interface and its tunnel IPv4 address.
egress_interface=nwg1
egress_address=192.168.99.1

# LAN ingress interfaces and their networks (comma-separated).
lan_interfaces=br0,br1
lan_subnets=192.168.7.0/24,10.1.30.0/24

# Routing: numeric table for VPN egress and fwmark values (32-bit).
routing_table=100
mark_test=0x10000000
mark_ok=0x20000000
mark_mask=0x30000000
ip_rule_priority_start=2000

# Polling intervals.
fast_interval=1s
soft_interval=2s
judge_interval=1s
health_interval=5s
# FAST TCP-SYN: сколько SYN без ответа нужно для детекта (1 = быстрее, больше ложных)
fast_syn_min_op=2

# Cache TTLs. ok_ttl=0 means "never expire" (permanent cache; still self-corrects:
# a confirmed IP that stops replying via VPN is removed by JUDGE automatically).
ok_ttl=0
ok_refresh_below=3h
# Bounded GC (like upstream Susanin v0.12): per-proto ok-cache limit, 0=off.
ok_max_entries=4096
test_ttl=1m
cooldown_ttl=5m
cooldown_ok_ttl=30s
watch_ttl=8s
watch_retry_below=4s

# Health probe targets and source address (through tunnel).
health_probe=1.1.1.1,8.8.8.8,77.88.8.8
health_probe_src=10.8.1.1
# Miss-debounce: сколько подряд неудачных проб подряд = туннель DOWN (5s x 4 = 20s).
health_miss_debounce=4

# Домены, которые ВСЕГДА идут через VPN (список-«принудительный»).
# Файл: по одному домену (или IPv4) на строку, '#' — комментарии. Демон
# резолвит A-записи и пиннит их IP в ok-наборы (TCP и UDP), обновляет каждые
# vpn_always_interval секунд. Изменение файла подхватывается на лету.
# Если файла нет — функция выключена. Готовый список поставляется с дистрибутивом
# (vpn_always.txt); при установке/обновлении существующий файл НЕ перезаписывается.
# Поддерживаются wildcard-строки: *.example.com — домен и все поддомены.
vpn_always_file=/opt/susanin/etc/vpn_always.txt
vpn_always_interval=300s
# Резолвер для списка (пусто = автоматически из /etc/resolv.conf):
vpn_always_dns=77.88.8.8

# Список «всегда напрямую» (никогда через VPN): домен / IPv4 / CIDR.
# Нет файла = выключено. Существующий файл при install/update не перезаписывается.
vpn_never_file=/opt/susanin/etc/vpn_never.txt
vpn_never_interval=300s

# Diagnostics.
log_level=info
diagnostics=off

 

Логи:

Спойлер

16:35:23 ERR: datapath provisioning failed
16:35:23 INFO: restored cache from /opt/susanin/var/susanin.state
16:35:23 INFO: engine started (egress=nwg1 table=100)
16:35:23 INFO: vpn_always: addlive.io resolve failed (no A records)
16:35:23 INFO: vpn_always: akamai.net resolve failed (no A records)
16:35:23 INFO: vpn_always: akamaized.net resolve failed (no A records)
16:35:24 INFO: vpn_always: atomile.com resolve failed (no A records)
16:35:24 INFO: vpn_always: byteimg.com resolve failed (no A records)
16:35:24 INFO: vpn_always: byteoversea.com resolve failed (no A records)
16:35:24 INFO: vpn_always: byteoversea.net resolve failed (no A records)
16:35:24 INFO: vpn_always: bytetcdn.com resolve failed (no A records)
16:35:24 INFO: vpn_always: cdninstagram.com resolve failed (no A records)
16:35:24 INFO: vpn_always: claudemcpclient.com resolve failed (no A records)
16:35:24 INFO: vpn_always: claudemcpcontent.com resolve failed (no A records)
16:35:25 INFO: vpn_always: discord-activities.com resolve failed (no A records)
16:35:25 INFO: vpn_always: discord.tools resolve failed (no A records)
16:35:25 INFO: vpn_always: discordapp.net resolve failed (no A records)
16:35:26 INFO: vpn_always: discordpartygames.com resolve failed (no A records)
16:35:26 INFO: vpn_always: facebook.net resolve failed (no A records)
16:35:27 INFO: vpn_always: feelinsonice.com resolve failed (no A records)
16:35:27 INFO: vpn_always: ggpht.cn resolve failed (no A records)
16:35:27 INFO: vpn_always: ggpht.com resolve failed (no A records)
16:35:27 INFO: vpn_always: gvt1.com resolve failed (no A records)
16:35:27 INFO: vpn_always: ibytedtos.com resolve failed (no A records)
16:35:27 INFO: vpn_always: ibyteimg.com resolve failed (no A records)
16:35:28 INFO: vpn_always: +89/-0 ip, +2/-0 net, 195 domain(s), now 89 ip + 2 net pinned
16:35:28 INFO: AUTO-SUSANIN: FAST TCP-SYN 95.161.76.101:443
16:35:28 INFO: AUTO-SUSANIN: FAST TCP-SYN 149.154.167.41:80
16:35:28 INFO: AUTO-SUSANIN: FAST TCP-SYN 149.154.175.100:80
16:35:28 INFO: AUTO-SUSANIN: FAST QUIC 157.240.253.142:443
16:35:28 INFO: AUTO-SUSANIN: FAST TCP-SYN 95.161.64.100:443
16:35:28 INFO: AUTO-SUSANIN: FAST TCP-CLOSE 173.194.221.102:443
16:35:28 INFO: AUTO-SUSANIN: SOFT TCP-STALL 142.251.155.4:443
16:35:28 INFO: AUTO-SUSANIN: SOFT TCP-STALL 157.240.253.33:443
16:35:28 INFO: AUTO-SUSANIN: SOFT TCP-STALL 157.240.253.142:443
16:35:28 INFO: AUTO-SUSANIN: SOFT TCP-STALL 173.194.221.138:443
16:35:28 WARN: data plane missing (NDM rebuild?), re-provisioning
16:35:28 INFO: vpn_always: intercomassets.com resolve failed (no A records)
16:35:29 INFO: vpn_always: ipstatp.com resolve failed (no A records)
16:35:29 INFO: vpn_always: isnssdk.com resolve failed (no A records)
16:35:29 INFO: vpn_always: licdn.com resolve failed (no A records)
16:35:29 INFO: vpn_always: live.net resolve failed (no A records)
16:35:29 INFO: vpn_always: modelcontextprotocol.com resolve failed (no A records)
16:35:29 INFO: vpn_always: muscdn.com resolve failed (no A records)
16:35:31 INFO: vpn_always: musemuse.cn resolve failed (no A records)
16:35:31 INFO: vpn_always: oaiusercontent.com resolve failed (no A records)
16:35:31 INFO: vpn_always: openai.org resolve failed (no A records)
16:35:31 INFO: vpn_always: pstatp.com resolve failed (no A records)
16:35:31 INFO: vpn_always: rocket-cdn.com resolve failed (no A records)
16:35:32 INFO: vpn_always: rutracker.cc resolve failed (no A records)
16:35:32 INFO: vpn_always: snapads.com resolve failed (no A records)
16:35:32 INFO: vpn_always: snapmap.com resolve failed (no A records)
16:35:32 INFO: vpn_always: snapmap.org resolve failed (no A records)
16:35:32 INFO: vpn_always: snapmaps.com resolve failed (no A records)
16:35:32 INFO: vpn_always: strpst.com resolve failed (no A records)
16:35:32 INFO: vpn_always: t-ru.org resolve failed (no A records)
16:35:32 INFO: vpn_always: tiktokcdn-eu.com resolve failed (no A records)
16:35:32 INFO: vpn_always: tiktokcdn-in.com resolve failed (no A records)
16:35:32 INFO: vpn_always: tiktokcdn-us.com resolve failed (no A records)
16:35:32 INFO: vpn_always: tiktokcdn.com resolve failed (no A records)
16:35:32 INFO: vpn_always: tiktokd.org resolve failed (no A records)
16:35:32 INFO: vpn_always: tiktokv.eu resolve failed (no A records)
16:35:32 INFO: vpn_always: tiktokw.eu resolve failed (no A records)
16:35:33 INFO: vpn_always: +67/-0 ip, +0/-0 net, 195 domain(s), now 156 ip + 2 net pinned
16:35:33 INFO: AUTO-SUSANIN: FAST TCP-SYN 149.154.167.91:80
16:35:33 INFO: AUTO-SUSANIN: FAST QUIC 173.194.221.102:443
16:35:33 INFO: AUTO-SUSANIN: SOFT TCP-STALL 142.251.152.4:443
16:35:33 INFO: vpn_always: ttoverseaus.net resolve failed (no A records)
16:35:33 INFO: vpn_always: ttwstatic.com resolve failed (no A records)
16:35:33 INFO: vpn_always: twimg.com resolve failed (no A records)
16:35:34 INFO: vpn_always: ytimg.com resolve failed (no A records)
16:35:34 INFO: vpn_always: cloudfront.net resolve failed (no A records)
16:35:34 INFO: vpn_always: +49/-0 ip, +0/-0 net, 195 domain(s), now 205 ip + 2 net pinned
16:35:39 INFO: AUTO-SUSANIN: FAST TCP-SYN 91.108.56.183:443
16:35:43 WARN: data plane missing (NDM rebuild?), re-provisioning
16:35:47 INFO: AUTO-SUSANIN: FAST TCP-SYN 149.154.175.50:80
16:35:47 INFO: AUTO-SUSANIN: FAST TCP-SYN 149.154.175.59:443
16:35:51 INFO: AUTO-SUSANIN: SOFT TCP-STALL 199.232.172.159:443
16:35:51 INFO: AUTO-SUSANIN: SOFT TCP-STALL 172.66.0.227:443
16:35:51 INFO: AUTO-SUSANIN: SOFT TCP-STALL 162.159.140.229:443
16:35:52 INFO: AUTO-SUSANIN: FAST TCP-CLOSE 142.251.157.4:443
16:35:58 WARN: data plane missing (NDM rebuild?), re-provisioning
16:35:59 INFO: AUTO-SUSANIN: FAST QUIC 157.240.253.13:443
16:36:01 INFO: AUTO-SUSANIN: SOFT TCP-STALL 157.240.253.13:443
16:36:13 INFO: AUTO-SUSANIN: SOFT TCP-STALL 172.67.182.196:443
16:36:13 WARN: data plane missing (NDM rebuild?), re-provisioning
16:36:28 INFO: AUTO-SUSANIN: FAST TCP-SYN 95.161.76.101:443
16:36:28 INFO: AUTO-SUSANIN: FAST TCP-SYN 149.154.167.41:80
16:36:28 INFO: AUTO-SUSANIN: FAST TCP-SYN 149.154.175.100:80
16:36:28 INFO: AUTO-SUSANIN: FAST QUIC 157.240.253.142:443
16:36:28 INFO: AUTO-SUSANIN: FAST TCP-SYN 95.161.64.100:443
16:36:29 WARN: data plane missing (NDM rebuild?), re-provisioning
16:36:29 INFO: AUTO-SUSANIN: SOFT TCP-STALL 142.251.155.4:443
16:36:31 INFO: AUTO-SUSANIN: SOFT TCP-STALL 157.240.253.142:443
16:36:33 INFO: AUTO-SUSANIN: FAST TCP-SYN 149.154.167.91:80
16:36:33 INFO: AUTO-SUSANIN: FAST TCP-CLOSE 142.251.152.4:443
16:36:39 INFO: AUTO-SUSANIN: FAST TCP-SYN 91.108.56.183:443

 

Опубликовано
7 часов назад, Кинетиковод сказал:

С другими не надо, у меня 1910.

 

data plane:
  chain SUSANIN                MISSING
  PREROUTING jump              MISSING
  ip rule test->table          MISSING
  ip rule ok->table            MISSING
  route default in table       MISSING


Информация говорит, что скорей всего не выполнено условие наличие ipset или iptables или conntrack.

Выполни и скинь результат из bash:

command -v iptables ipset ip conntrack
ip link show nwg1; ip -4 addr show nwg1
sh -x /opt/susanin/tools/datapath.sh up 2>&1 | tail -40


После отчёта выполни:

opkg update && opkg install ipset iptables conntrack
/opt/susanin/tools/susanin.sh restart
/opt/susanin/tools/susanin.sh status


Ожидаемый результат, через минуту рыботы:
Data plane - все OK.
Ipset sizes - не равны 0.

data plane:
  chain SUSANIN                OK
  PREROUTING jump              OK
  ip rule test->table          OK
  ip rule ok->table            OK
  route default in table       OK
ipset sizes:
  susanin_test_tcp   = 0
  susanin_test_udp   = 0
  susanin_ok_tcp     = 4309
  susanin_ok_udp     = 420
  susanin_ok_net     = 9
  susanin_never      = 1
vpn_always (always-VPN list):
  file: /opt/susanin/etc/vpn_always.txt (present)
  domains: 211 (refresh every 300s, resolver: auto)
cache:
  state file                   OK


В следующую сборку включу "Проверка на наличие всех нужных компонентов, до запуска демона + детализация в логах".

 

Опубликовано (изменено)

Для интереса попробовал. Да, работает. Причем установка и настройка очень простые. DoH и awg конфиг в подключениях. Установка одной ссылкой, в конце выбрал Y) и вроде все работает. Например вотсап завелся, но вот одно видео надо было подождать. Проперделось и начало грузиться.  А так чтоб wa завелся надо помимо доменов ещё сети akamai добавлять, насколько я помню. В общем, работает. Себе пока ставить не буду, т к у меня там на кинетике куча извращений с маршрутами, серверами. Но вот знакомым, думаю да. Поставил и забыл. Пусть оно само решает куда и что через что о_О. И ещё. Можно ли на внутреннюю память. В том плане не накроется ли от перезаписи она?

Изменено пользователем Б А
Опубликовано
4 часа назад, Б А сказал:

Можно ли на внутреннюю память. В том плане не накроется ли от перезаписи она?

Не понял.
Чтобы устанавливалась не в /opt ?
Уточни пожелания, допилим .. 😇

В целом, в отличии от тех же Тайцев (nfqws2) хранить бэкап настроек/правил не нужно. Ну форматнули/переустановили, ну потерялись 
/opt/susanin/var/datapath-*-*
- ip-route.txt
- ip-rule.txt
- mangle.txt
- nat.txt
Установил с нуля и пусть начнёт жизнь с чистого листа.

Опубликовано

Я имел в виду entware на внутреннюю память роутера. А туда уже Сусанина) от такого внутренней памяти плохо не будет со временем? Если на внешнюю флешку ставить, то если накроется, да и фиг с ней. А вот с роутером проблемы будут. И ещё. Что-то типа fallback есть/будет? То есть будут пару туннелей,и чтоб при отвале одного, второй подключался

Опубликовано
20 минут назад, Б А сказал:

Я имел в виду entware на внутреннюю память роутера. А туда уже Сусанина) от такого внутренней памяти плохо не будет со временем?

По хорошему лучше иметь под монтированную flash + OPKG.
install.sh по умолчанию ставит в /opt/susanin т.е. на флэшку и тут как бы не выскочить в память.
Принято, для актуализации инструкции.
 

28 минут назад, Б А сказал:

И ещё. Что-то типа fallback есть/будет? То есть будут пару туннелей,и чтоб при отвале одного, второй подключался

т.е.

Чтобы в 
# Egress (VPN/WireGuard tunnel) interface and its tunnel IPv4 address.
egress_interface=nwg0
egress_address=10.8.1.1

Было так-же разнообразно как и в LAN
# LAN ingress interfaces and their networks (comma-separated).
lan_interfaces=br0,br1,oc0
lan_subnets=192.168.1.0/24,10.1.30.0/24,172.16.5.0/24

программа мониторила Egress и считала, правила дня них одинаковыми и балансировала, при падении одного из них.
Принято в работу.

 

Опубликовано
11 часов назад, R17a сказал:

наличие ipset или iptables или conntrack

После установки на чистую Энтварь чудо маршрутизатора список пакетов выглядит так:

Спойлер

dfdffdgdfgd.jpg.9d5d579338ff56a8dd0ae7ddbcb06644.jpg

Соответственно из-за отсутствия необходимых пакетов чудо маршрутизатор не работает. Установил МТ и список пакетов стал таким:

Спойлер

dfgdfgdfgdfg.jpg.b8e585bc1a42f971f8c711e8544dc34e.jpg

Как видно добавился iptables, но этого для работы чудо маршрутизатора в отличии от МТ недостаточно. Соответственно из репозитория Энтвари доустановил ipset (ipset_7.24-1_mipsel-3.4) и conntrack (conntrack_1.4.8-1_mipsel-3.4). В репозитории несколько видов одноименных пакетов и те ли я установил пакеты достоверно неизвестно. После установки список пакетов выглядит так:

Спойлер

fghfghfgh.jpg.243e90ea657eb5e9aeeca6f3463adeaa.jpg

После установки пакетов чудо маршрутизатор перешел из статуса MISSING в статус ок. После этого открылось пару нерекомендуемых сайтов и всё потухло. Тогда указал в настройках маршрутизатора днс и перезапустил Энтварь и вообще все сайты перестали открываться. Решил сделать ребут роутера и после ребута маршрутизатор заработал. Чудо!  Правда dnsleaktest показывает днс прописанный для устройства в Keenetic OS, а не в настройках маршрутизатора, но это неважно. 

По итогу я так понимаю R17a пришёл к нам из мира Микротиков, где-то раздобыл древнюю Виву и решил портировать на неё автоматический маршрутизатор с Router OS. R17a не знал, что установщик должен проверять наличие необходимых для его работы пакетов и при отсутствии оных устанавливать их самостоятельно. Возможно на Router OS всё делается только вручную, но на Keenetic OS максимальная автоматизация при минимальном участии пользователя это норма. Про отсутствие ipk установщика я уж не говорю. Установка через tar архив на Кинетиках не лучший вариант. 

До этого мы видели ручные маршрутизаторы где пользователю нужно было самостоятельно искать и загружать списки доменов и CIDR. Также условно полуавтоматы с загрузкой геобаз. А данный маршрутизатор первый полный автомат в который вообще загружать ничего не надо, который сам всё разруливает налету. Насколько он стабилен покажет время, но это реально новый вид маршрутизатора прежде на Кинетиках не встречавшийся. 

Опубликовано (изменено)
29 минут назад, Кинетиковод сказал:

. R17a не знал, что установщик должен проверять наличие необходимых для его работы пакетов и при отсутствии оных устанавливать их самостоятельно.

Спасибо!
Замечание принимается, зависимости пропишем в следующем релизе.

Изменено пользователем R17a
Опубликовано
1 час назад, Кинетиковод сказал:

но это реально новый вид маршрутизатора прежде на Кинетиках не встречавшийся. 

Да, этим и интересен. Чем больше людей, которые шарят в кинетиках, как вы, например, установят, поделятся опытом, найдут недостатки, тем будет лучше в итоге этот маршрутизатор.

Опубликовано (изменено)

Susanin.Keenetic v0.3.9

Что нового в этой версии

  • Версия сразу с status. susanin-agent status первой строкой печатает версию — отдельно запускать version больше не нужно.
  • Сборщик отчёта для обращений. sh /opt/susanin/tools/report.sh собирает диагностику и сохраняет файл /opt/susanin/var/report.txt — его удобно приложить в Issues, на форум или в Telegram.
  • Понятные ошибки запуска. Если программе не удалось создать свои правила фильтрации, в лог теперь пишется причина (например, «не найден ipset» или  не найден интерфейс nwg0»), а не общее «provisioning failed».
  • Проверка при старте. Программа проверяет, что установлены iptables,ipset, conntrack, ip и что VPN-интерфейс существует; если чего-то нет — пишет подсказку, что до установить. Это упрощает первый запуск.
  • Меньше лишних повторов. Если правила не создались, попытки повторяются раз в минуту (раньше — каждые 15 секунд и с непонятным сообщением про «rebuild»).
  • Несколько VPN-подключений (фейловер). В конфиге можно перечислить несколько VPN-интерфейсов через запятую (например, egress_interface=nwg0,nwg1). Если активный VPN отключился, трафик автоматически пойдёт через следующий живой; если живых не осталось — напрямую.
  • Меньше записей на память роутера (disk_mode). Если программа установлена во внутреннюю память (NAND) — в том числе когда Entware/OPKG стоит на встроенном разделе — установщик включает режим soft: лог-файл не ведётся, бэкапы/архивы не создаются, а список выученных адресов сохраняется редко — раз в 12 часов (soft_state_interval). В обычном режиме (normal, обычно при установке на USB-флешку) лог ведётся и состояние сохраняется раз в 5 минут.
  • Списки применяются сразу. Если адрес добавлен в vpn_never («всегда напрямую»), уже открытые соединения к нему разрываются, чтобы клиент пере подключился напрямую — иначе такие соединения подолгу оставались бы в VPN.
  • Предупреждение, если домен из vpn_never не разобрался. Список «всегда напрямую» работает по IP-адресам: программа находит адреса домена и добавляет их в список. Если адреса получить не удалось, правило не сработает и трафик к этому домену может уйти в VPN — теперь в лог пишется предупреждение.
  • Меньше мусора в списке выученных адресов (learn_exclude_ports). Для служебных портов (22, 23, 445, 554 и т.п.) больше не запоминаем адреса по одному не отвеченному запросу — так отсекается сетевой шум и сканирования. Обычные сайты (80/443/QUIC) учатся как раньше; если заблокированный сервис работает на нестандартном порту — добавьте его домен/IP в vpn_always.txt.


    Диагностика
    Если что-то не так — соберите отчёт (в момент проблемы) и приложите вывод:
    sh /opt/susanin/tools/report.sh
    # или без установки:
    wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/v0.3.9/tools/report.sh | sh

    Отчёт сохраняется в /opt/susanin/var/report.txt.


    Установка (первый раз)

    opkg update && opkg install ca-certificates ipset iptables conntrack
    wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | sh

    Обновление (конфиг и состояние сохраняются)

    sh /opt/susanin/tools/susanin.sh update            # до последнего релиза
    sh /opt/susanin/tools/susanin.sh update v0.3.9     # конкретная версия

    Удаление

    sh /opt/susanin/tools/susanin.sh uninstall          # остановить и снять правила/автозапуск, конфиг и состояние оставить
    sh /opt/susanin/tools/susanin.sh uninstall --purge  # удалить /opt/susanin полностью


    p.s. инструкции обновил, чтобы стало более понятно
    p.s.s. вопрос с .ipk в проработке.


    Entware: https://github.com/R17a/Susanin.Keenetic/releases#release-v0.3.9
    openWRT: https://github.com/R17a/Susanin.Keenetic/releases#release-openwrt-v0.3.9

Изменено пользователем R17a
Опубликовано

Susanin.Keenetic v0.3.10

Что нового

  • Меньше «дёрганья» VPN-списка (ok_evict_misses). Раньше адрес мог вылететь из списка «идёт через VPN» после одного плохого наблюдения и тут же вернуться — список «мельтешил». Теперь адрес убирается только после нескольких сбоев подряд (по умолчанию 3). В логе будет одна сводка раз в ~5 минут, а не строка на каждое событие. Хотите как раньше — поставьте ok_evict_misses=1.
  • Быстрее заворачиваем «заглохший» HTTPS. Частая картина: сервер ответил, но данные почти не идут — так провайдер замедляет соединение. Теперь такой адрес сразу проверяется через VPN, не дожидаясь окна наблюдения. Проверки идут чаще: soft_interval по умолчанию снижен до 1 секунды.
  • Ограничитель лишних переводов в VPN (promo_per_min). Чтобы быстрый детект не завернул в VPN всё подряд, за минуту делается не больше 30 новых проб (настраивается; 0 — без ограничения).
  • Мессенджеры не «выпадают» из VPN. Telegram/WhatsApp держат соединение долго; раньше один «тихий» срез мог убрать адрес из списка VPN. Теперь — нет.
  • Диагностика одной командой. sh /opt/susanin/tools/diagnose.sh сам проверит, всё ли на месте (пакеты, настройки, правила, списки), и подскажет, что поправить.
  • Сменили или удалили VPN — перезапуск не нужен. susanin.sh reload перечитывает настройки, susanin.sh rescan заново находит LAN и VPN, обновляет конфиг и применяет изменения. Если VPN-интерфейс пропал, программа сама переключится на живой; если живых нет — пустит трафик напрямую и напишет об этом в лог.
  • Установщик сам предложит доустановить нужное. Если не хватает ipset, iptables, conntrack или сертификатов, установщик спросит, поставить ли их через opkg (флаг --deps — без вопроса).
  • Меньше строк в логе про списки. Домены без A-записи (частая история у CDN) больше не печатаются по строке каждый — будет одна сводка, а повторные неудачи проверяются реже (до 1 часа). Если у домена из vpn_always нет A-записи на самом домене, программа сама проверит поддомены — так адреса CDN чаще попадают в VPN.
  • DNS для разбора списков. Если системный DNS — 127.0.0.1 (NDM) или пуст, берётся адрес LAN-моста: в ряде сборок так надёжнее.
  • Правки vpn_always срабатывают сразу. Когда адрес только что переведён в VPN, старые прямые соединения к нему разрываются — клиент переподключается уже через туннель (для vpn_never так было и раньше).
  • Адрес из vpn_never не «прыгает» в VPN. Если адрес был в списке «всегда напрямую» и оттуда убран, какое-то время он не будет выучен в VPN.
  • Документация. Добавлены USER_GUIDE.md (руководство) и TROUBLESHOOTING.md (что делать, если не работает).
     

 Диагностика

Если что-то работает не так — сначала запустите диагностику: проверит окружение, настройки и списки, выдаст рекомендации:

sh /opt/susanin/tools/diagnose.sh

Для отправки полного отчёта (логи, состояние) — соберите и приложите вывод:

sh /opt/susanin/tools/report.sh

или без установки:

wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/v0.3.10/tools/report.sh | sh

Отчёт сохраняется в /opt/susanin/var/report.txt.


Установка (первый раз)

opkg update && opkg install ca-certificates ipset iptables conntrack
wget -qO- https://raw.githubusercontent.com/R17a/Susanin.Keenetic/main/install.sh | sh

Обновление (конфиг и состояние сохраняются)

sh /opt/susanin/tools/susanin.sh update v0.3.10

Удаление

sh /opt/susanin/tools/susanin.sh uninstall          # остановить и снять правила/автозапуск, конфиг и состояние оставить
sh /opt/susanin/tools/susanin.sh uninstall --purge  # удалить /opt/susanin полностью


 

Опубликовано

Здравствуйте. Планируется ли поддержка нескольких списков на разные интерфейсы? Для примера:

1) Авто-список как сейчас
2) Geo-список с сайтами, которые блокируют доступ из РФ
3) Для тяжёлого трафика (CDN), чтобы не грузить основные туннели, особенно где присутствует шейпинг

Опубликовано
В 21.09.2026 в 17:29, MaximUSNG сказал:

Здравствуйте. Планируется ли поддержка нескольких списков на разные интерфейсы?

День добрый!

Включено в план.

Опубликовано (изменено)

Всем привет!

Бан сервера по IP от ТСПУ РКН, с последующим отказом работы "Другого подключения Amnezia 2.0", подтолкнул сесть за код.
На обкатку предлагаю версию Susanin.Keenetic 0.4.0-dev1 (Develop).

Всем миром собираем замечания/предложения и потом в Release.

Главное в сборке :

1. Веб-панель (по умолчанию выключена)

Включение:  в /opt/susanin/etc/susanin.conf:
web_enable=1
web_listen=192.168.1.1     # LAN-адрес вашего роутера
web_port=8087
web_token=ПРИДУМАЙТЕ_ПАРОЛЬ

Запуск:

/opt/etc/init.d/S95susanin-web start

web_token — пароль, который вы придумываете сами. Если оставить пусто, вход без пароля (доступ только из вашей сети).
Проверка в браузере: http://192.168.1.1:8087/?token=ПАРОЛЬ

Это НЕ  полноценное решение - это обкатка демона, поэтому по умолчанию выключена.
Далее bootstrap и функционал.

2. qWDTT_Server_Keenetic


Это совместимость, а не интеграция: клиентами qWDTT Susanin.Keenetic не занимается.

  • серверные туннели qWDTT (wdtt0/wdttraw0) не должны попадать в lan_interfaces/lan_subnets/egress_interface — они в discover_exclude;
  • подсеть Susanin.Keenetic (egress_address) не должна пересекаться с сетями qWDTT (10.66.66.0/24, 10.70.66.0/16).

Пример:

# --- Сосуществование с qWDTT_Server_Keenetic ---
# Не брать серверные туннели qWDTT как LAN/egress (это дефолт):
discover_exclude=wdtt0,wdttraw0,tun0,tap0

# Наши LAN — только домашние мосты Keenetic (без wdtt*):
lan_interfaces=br0
lan_subnets=192.168.1.0/24

# Наш egress — VPN-интерфейс (nwg*), НЕ wdtt*:
egress_interface=nwg0
egress_address=10.8.1.1         # подсеть Susanin — вне 10.66.66.0/24 и 10.70.66.0/16

Проверка:

sh /opt/susanin/tools/diagnose.sh | sed -n '/qWDTT/,/^$/p'
# ожидаем "qWDTT: обнаружен" и без предупреждений про wdtt* в egress/lan


3. Профили маршрутизации

Профиль — это список (домены / IP / CIDR), который идёт в свой туннель.
Профилей до 4, включаются ключами profile1_* … profile4_*; профиль работает, только если задан profileN_name. Если профилей нет — ничего не меняется.

В /opt/susanin/etc/susanin.conf:

profile1_name=cdn
profile1_egress=nwg1
profile1_list=/opt/susanin/etc/profiles/cdn.txt
profile2_name=social
profile2_egress=nwg2
profile2_list=/opt/susanin/etc/profiles/social.txt

Список — файл /opt/susanin/etc/profiles/<имя>.txt: по строке домен, IP или CIDR, # — комментарий. profileN_table / profileN_mark можно не задавать.

Проверка

sh /opt/susanin/tools/profiles.sh up
sh /opt/susanin/tools/profiles.sh status

Адрес обрабатывается первым совпавшим профилем.

4. XRay (VLESS/REALITY)

  • XRay подключается как egress: Susanin.Keenetic помечает нужные соединения, TCP уходит в Xray через REDIRECT, UDP — через релей в демоне Susanin.Keenetic. TUN не нужен.
  • Тесты показали стабильную работу только на Xray 1.8.24

Настройка

Положить бинарь Xray:

cp xray/xray.mipsel /opt/sbin/xray && chmod +x /opt/sbin/xray   # mips/mipsel
# или: cp xray/xray.aarch64 /opt/sbin/xray && chmod +x /opt/sbin/xray


Положить конфиг клиента и подставить свои данные:

cp /opt/susanin/etc/xray-tproxy.json.example /opt/susanin/etc/xray-tproxy.json
# в файле заменить SERVER/UUID/SNI/PBK/SID


Включить боевой режим (после установки Susanin.Keenetic 0.4.0-dev1) :

sh /opt/susanin/tools/xray-egress.sh enable


Ключи (egress_type=tproxy, udp_relay=1 и др.) прописываются сами. Логи Xray — отдельным ключом xray_loglevel (по умолчанию warning): enable/run применяют его и перезапускают Xray. Не ставьте info — иначе Xray пишет строку на каждое соединение (from … accepted …) и грузит Flash носитель.

Проверка Безопасно проверить один адрес (в туннель уйдёт только он):

sh /opt/susanin/tools/xray-egress.sh run 1.1.1.1 both


С компьютера в вашей сети:

# Windows:

nslookup ya.ru 1.1.1.1
nslookup -class=chaos -type=txt whoami.cloudflare. 1.1.1.1   # должен быть IP вашего VPN сервера


# Linux/macOS:

curl -s https://1.1.1.1/cdn-cgi/trace | grep '^ip='          # должен быть IP вашего VPN сервера


На роутере:

sh /opt/susanin/tools/xray-egress.sh status
# ожидаем: redirect: port=12345 rules=2 ; udp-relay: port=1081 rules=2

 

sh /opt/susanin/tools/xray-egress.sh default      # вернуть всё в DIRECT


Выключить боевой режим:

sh /opt/susanin/tools/xray-egress.sh disable.

Важно: UDP проверяйте с компьютера, а не с роутера — трафик самого роутера в этот механизм не попадает.

Если Xray не запущен, Susanin.Keenetic сам не поднимает tproxy-правила и пускает трафик напрямую (fail-open) — в status это видно как (Xray NOT LISTENING).
Поднять Xray:

/opt/etc/init.d/S93xray-tproxy start


Если что-то не так

sh /opt/susanin/tools/susanin.sh status
sh /opt/susanin/tools/diagnose.sh
sh /opt/susanin/tools/report.sh        # отчёт: /opt/susanin/var/report.txt

Логи и информацию просьба оставлять на форуме или в Телеге

Установка c XRay клиентом

mkdir -p /opt/tmp/sus-dist && cd /opt/tmp/sus-dist
wget -O susanin-dev.tar.gz \
  https://github.com/R17a/Susanin.Keenetic/raw/main/develop/susanin-keenetic-0.4.0-dev.tar.gz
tar -xzf susanin-dev.tar.gz
cd susanin-keenetic-0.4.0-dev
sh install.sh --yes

Если установлен и настроен XRay (VLESS/REALITY)

sh /opt/susanin/tools/xray-egress.sh enable
sh /opt/susanin/tools/susanin.sh status

image.thumb.png.9acec38588fb3f60c8eb30d4fb069332.png

Изменено пользователем R17a
Опубликовано
16 часов назад, R17a сказал:

На обкатку предлагаю версию Susanin.Keenetic 0.4.0-dev1 (Develop).

Обновление Susanin.Keenetic 0.4.0-dev2

  • [FIX] Меньше обращений к флешке. Логи Xray почти не пишутся (access-лог выключен), для бэкапов правил введён разумный лимит — носитель работает спокойнее.
  • [FIX] Само-восстановление перехвата. Если после перезагрузки или обновления прошивки KeeneticOS сбросит правила перенаправления в Xray, Susanin.Keenetic сам это замечает и возвращает правила за ~15 секунд.
  • [FIX] Соединения идут строго по заданному правилу. Если домен включён в список «всегда через VPN», но соединение успело открыться напрямую (например, до применения правила/адреса), Susanin.Keenetic мягко закрывает этот устаревший прямой поток — и следующее соединение к домену идёт уже через VPN, как задано.
  • [FIX] Устойчивость к занятым таблицам iptables. «Замок» iptables — это встроенный механизм «по одному»: менять правила может только один процесс за раз. Если таблицы в этот момент правит, например, сама KeeneticOS, Susanin.Keenetic дожидается своей очереди и не выдаёт ошибку.
  • [FIX] Корректное сосуществование. Susanin.Keenetic учитывает только свои метки и не мешает меткам других сервисов — схемы «как с OpenConnect» работают и для qWDTT/WireGuard. (для этого достаточно указать нужные интерфейсы и подсети в lan_interfaces/lan_subnets.)
  • [FIX] rescan теперь полноценный. Он пересканирует сеть, сам подбирает актуальный VPN-интерфейс и его адрес (например, заменит устаревшее имя интерфейса на рабочий nwg…).
  • [FIX] enable сообщает о готовности по факту. Сначала поднимает Xray, дожидается готовности и лишь затем пишет «включено».
  • Ускорение VPN для списка vpn_always
  • [NEW] Параллельный разбор списка. До 12 доменов резолвятся одновременно — самый первый проход заметно быстрее.
  • [NEW] VPN для доменов из списка работает сразу после перезагрузки. Адреса сохраняются и мгновенно восстанавливаются — ждать не нужно.
  • [NEW] Быстрее и «чище» разбор списка: меньше таймаут на DNS, «пустые» домены не тормозят процесс и не перепроверяются заново при каждом старте.
  • [NEW] enable дожидается прогрева списка и подсказывает, если он ещё дополняется.

    Установка без клиента XRay
    cd /opt/tmp/
    rm -f susanin-dev.tar.gz && wget -O susanin-dev.tar.gz \
      https://github.com/R17a/Susanin.Keenetic/raw/main/develop/susanin-keenetic-0.4.0-dev.tar.gz
    rm -rf susanin-keenetic-0.4.0-dev
    tar -xzf susanin-dev.tar.gz \
      --exclude='susanin-keenetic-0.4.0-dev/xray' \
      --exclude='susanin-keenetic-0.4.0-dev/bin/susanin-agent.mips' \
      --exclude='susanin-keenetic-0.4.0-dev/bin/susanin-agent.aarch64' \
      --exclude='susanin-keenetic-0.4.0-dev/bin/susanin-agent.armv7' \
      --exclude='susanin-keenetic-0.4.0-dev/bin/susanin-agent.x86_64'
    cd susanin-keenetic-0.4.0-dev && sh install.sh --yes

     

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.