Popular Post Александр Рыжов Posted June 8, 2023 Popular Post Share Posted June 8, 2023 Контент последней статьи с сайта keenetic-gi.ga, архив доступен здесь. В самом алгоритме нет ничего нового, но благодаря недавнему обновлению AdGuard Home (далее AGH) его можно реализовать довольно изящно: использование VPN для заданных вами доменов возможно тройкой коротких скриптов. Требования Развёрнутая среда Entware, Рабочее VPN-соединение поверх провайдерского, по которому будет идти обращение к определённым доменам. Установка пакетов Подразумевается, что AGH будет использоваться вместо встроенной в прошивку службы DNS Proxy. Установите необходимые пакеты: opkg install adguardhome-go ipset iptables Выполните первоначальную настройку AGH, для чего в CLI роутера наберите: opkg dns-override system configuration save В этот момент Entware-сервисы будут перезапущены, а интерфейс для первоначальной настройки AGH станет доступен по адресу http://192.168.1.1:3000, где 192.168.1.1 — IP-адрес роутера. Настройки по умолчанию подходят для большинства случаев. Скриптовая обвязка Результаты разрешения указанных доменных имён AGH будет помещать в ipset (bypass в примере), правилами iptables трафик по этим IP-адресам будет помечаться fwmark, а для роутинга помеченного трафика будет использоваться своя таблица маршрутизации. Первый скрипт — создание ipset'а при старте роутера. Создайте файл /opt/etc/init.d/S52ipset со следующим содержимым: #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin if [ "$1" = "start" ]; then ipset create bypass hash:ip ip rule add fwmark 1001 table 1001 fi Второй — для поддержания актуальности таблицы роутинга. Файл /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh с содержимым: #!/bin/sh [ "$system_name" == "nwg0" ] || exit 0 [ ! -z "$(ipset --quiet list bypass)" ] || exit 0 [ "${change}-${connected}-${link}-${up}" == "link-yes-up-up" ] || exit 0 if [ -z "$(ip route list table 1001)" ]; then ip route add default dev $system_name table 1001 fi где nwg0 — сетевой интерфейс VPN-соединения для выборочного доступа. Если затрудняетесь в его поиске, то посмотрите вывод ip addr, его адрес будет совпадать с тем, что виден в веб-интерфейсе.Третий — пометка трафика с помощью fwmark. Актуальная прошивка активно использует эту возможность, поэтому маркировать трафик приходится точечно. Создайте файл /opt/etc/ndm/netfilter.d/010-bypass.sh c контентом: #!/bin/sh [ "$type" == "ip6tables" ] && exit [ "$table" != "mangle" ] && exit [ -z "$(ip link list | grep nwg0)" ] && exit [ -z "$(ipset --quiet list bypass)" ] && exit if [ -z "$(iptables-save | grep bypass)" ]; then iptables -w -t mangle -A PREROUTING ! -s 192.168.254.0/24 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 1001 iptables -w -t mangle -A PREROUTING ! -s 192.168.254.0/24 -m set --match-set bypass dst -j CONNMARK --restore-mark fi где nwg0 — снова сетевой интерфейс VPN-соединения, 192.168.254.0/24 — его подсеть. Её так же можно найти в выводе ip addr. Сделайте скрипты исполняемыми: chmod +x /opt/etc/init.d/S52ipset chmod +x /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh chmod +x /opt/etc/ndm/netfilter.d/010-bypass.sh и переходите к финальному пункту. Список доменов для выборочного доступа Найдите в конфигурационном файле AGH /opt/etc/AdGuardHome/AdGuardHome.yaml строчку ipset_file: "" и поменяйте на ipset_file: /opt/etc/AdGuardHome/ipset.conf. Файл /opt/etc/AdGuardHome/ipset.conf будет единственным, требующим редактирования время от времени, в зависимости от изменения вашего персонального списка доменов для выборочного доступа. Он имеет следующий синтаксис: intel.com,ipinfo.io/bypass instagram.com,cdninstagram.com/bypass epicgames.com,gog.com/bypass Т.е. в левой части через запятую указаны домены, требующие доступа, справа после слэша — ipset, в который AGH складывает результаты разрешения DNS-имён. Можно указать всё в одну строчку, можно разделить логически на несколько строк как в примере. Домены третьего уровня и выше также включаются в правило доступа, т.е. указание intel.com включает www.intel.com, download.intel.com и пр. Рекомендую добавить какой-нибудь «сигнальный» сервис, показывающий ваш текущий IP-адрес (ipinfo.io в примере). Так вы сможете проверить работоспособность настроенного решения. Учтите, что AGH не перечитывает изменённый файл, поэтому после правки перезапустите его с помощью: /opt/etc/init.d/S99adguardhome restart При желании можно использовать несколько VPN-соединений для обращения к разным доменам, для простоты понимания здесь это не описано. Диагностика проблем Убедитесь в том, что набор ipset создан и наполняется в процессе работы: ipset --list bypass Вывод должен быть не пустой. Убедитесь в существовании нужной таблицы роутинга для выборочного доступа: ip rule list | grep 1001 Убедитесь, что в таблице присутствует необходимый маршрут: ip route list table 1001 Посмотрите, существуют ли правила netfilter для пометки пакетов: iptables-save | grep bypass После перезагрузки роутера проверьте в веб-интерфейсе Системный журнал, в нём не должно быть красных строк, связанных с настроенными скриптами. Удачи в начинаниях! 6 6 Quote Link to comment Share on other sites More sharing options...
AssGuard2 Posted June 11, 2023 Share Posted June 11, 2023 А можно ли роутить это не на vpn, а на tor, поднятый на том же кинетике? Quote Link to comment Share on other sites More sharing options...
uneasy Posted June 14, 2023 Share Posted June 14, 2023 В 08.06.2023 в 11:01, Александр Рыжов сказал: if [ -z "$(iptables-save | grep bypass)" ]; then iptables -w -t mangle -A PREROUTING ! -s 192.168.254.0/24 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 1001 iptables -w -t mangle -A PREROUTING ! -s 192.168.254.0/24 -m set --match-set bypass dst -j CONNMARK --restore-mark fi Александр, может вы подскажете. Какие можно добавить сюда правила iptables? Сейчас пока приходится отдельно создавать статические маршруты для всех нужных адресов: ip route add IP dev nwg0 Quote Link to comment Share on other sites More sharing options...
taravasya Posted July 18, 2023 Share Posted July 18, 2023 (edited) Обнаружилось странное поведение. У меня в роутере две политики доступа в интернет: Как можно понять, есть два источника интернета. Провайдерский по оптике и запасной, на случай проблем с сетью провайдерского интернета, через мобильную связь, с ограниченным количеством траффика. К некоторым устройствам, во-избежание неконтролируемого "выкачивания" доступного мобильного траффика, применена политика доступа, в которой нельзя использовать мобильный интернет: Так вот....Те устройства, к которым применена политика доступа в интернет НЕ по умолчанию, в случае подключения к роутеру по LAN-у, перестают ходить на те домены, которые прописаны в ipset.conf. С ними вообще теряется соединение. Если эти же устройства подключить по Wi-Fi, то всё работает стабильно. Мои познания, позволяют только предположить, что собаГа порыта, конечно же, где-то глубже скрипта или AdGuard Home, но где именно, затрудняюсь даже представить... поэтому и пишу сюда. Edited July 18, 2023 by taravasya Quote Link to comment Share on other sites More sharing options...
vasek00 Posted July 19, 2023 Share Posted July 19, 2023 Для начала что значит Цитата Так вот....Те устройства, к которым применена политика доступа в интернет НЕ по умолчанию, в случае подключения к роутеру по LAN-у, перестают ходить на те домены, которые прописаны в ipset.conf. С ними вообще теряется соединение. Если эти же устройства подключить по Wi-Fi, то всё работает стабильно. Второе какие настройки получают ваши клиенты при подключение от роутера. Quote Link to comment Share on other sites More sharing options...
taravasya Posted July 20, 2023 Share Posted July 20, 2023 (edited) Не понятно, что именно непонятно? )) Например, у меня есть комп и у него есть и LAN и WiFi. Если его подключить по LAN и открыть в браузере один из сайтов из списка в ipset.conf, то в результате, в браузере будет ошибка: А если подключить этот же комп по вифи, или применить к нему "Политику доступа в интернет" по-умолчанию, то этот же сайт, без проблем откроется. Та же петрушка касается отдельно взятых приложений. Например Spotify, Tidal, или например, в тв-боксе ютуб, все эти приложения перестают работать, независимо от протоколов соединения, теряя связь с серверами. Домены, НЕ добавленные в ipset.conf открываются в браузере, и работают в приложениях, независимо от способа подключения и протоколов... В 19.07.2023 в 08:34, vasek00 сказал: какие настройки получают ваши клиенты при подключение от роутера. Настройки сети? И так и эдак, это DHCP клиенты. Edited July 20, 2023 by taravasya Quote Link to comment Share on other sites More sharing options...
dogoma Posted August 3, 2023 Share Posted August 3, 2023 Добрый день. Сегодня прилетело обновление 4.0.2, схема перестала работать. Подскажите решение, кто знает. Возможно, нарушение работоспособности связанно с этой проблемой: Quote Link to comment Share on other sites More sharing options...
Denis P Posted August 3, 2023 Share Posted August 3, 2023 (edited) 24 минуты назад, dogoma сказал: Добрый день. Сегодня прилетело обновление 4.0.2, схема перестала работать. Подскажите решение, кто знает. Возможно, нарушение работоспособности связанно с этой проблемой: Именно с ней и связано. Тут либо откат либо ждать Edited August 3, 2023 by Denis P 1 Quote Link to comment Share on other sites More sharing options...
dogoma Posted August 5, 2023 Share Posted August 5, 2023 Всем привет. Ну вот вроде iptables обновили, я обновил его у себя, а всё-равно решение не работает. По команде: ip route list table 1001 вывод пустой. Подскажите, может кто уже разобрался в чём дело? Quote Link to comment Share on other sites More sharing options...
Denis P Posted August 5, 2023 Share Posted August 5, 2023 (edited) 1 час назад, dogoma сказал: Всем привет. Ну вот вроде iptables обновили, я обновил его у себя, а всё-равно решение не работает. По команде: ip route list table 1001 вывод пустой. Подскажите, может кто уже разобрался в чём дело? Тоже столкнулся с подобной проблемой, скрипт по какой-то причине не создает таблицу, при её отсутствии, но решение простое: ip route add default dev nwg0 table 1001 Где nwg0 имя vpn интерфейса Edited August 5, 2023 by Denis P 1 Quote Link to comment Share on other sites More sharing options...
coolmen0509 Posted August 5, 2023 Share Posted August 5, 2023 Всем доброй ночи! У кого нить после обновления на 4.02 работает? пробовал вручную ip route add, но все равно не работает. Quote Link to comment Share on other sites More sharing options...
vlad Posted August 5, 2023 Share Posted August 5, 2023 58 минут назад, coolmen0509 сказал: Всем доброй ночи! У кого нить после обновления на 4.02 работает? пробовал вручную ip route add, но все равно не работает. ip route add default dev nwg0 table 1001 Quote Link to comment Share on other sites More sharing options...
Denis P Posted August 5, 2023 Share Posted August 5, 2023 1 час назад, coolmen0509 сказал: Всем доброй ночи! У кого нить после обновления на 4.02 работает? пробовал вручную ip route add, но все равно не работает. iptables обновили? opkg update && opkg upgrade у кого на 4.0 не создается таблица - файл /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh нужно привести к виду #!/bin/sh [ "$1" == "hook" ] || exit 0 [ "$system_name" == "nwg0" ] || exit 0 [ ! -z "$(ipset --quiet list bypass)" ] || exit 0 [ "${connected}-${link}-${up}" == "yes-up-up" ] || exit 0 if [ -z "$(ip route list table 1001)" ]; then ip route add default dev $system_name table 1001 fi 4 Quote Link to comment Share on other sites More sharing options...
coolmen0509 Posted August 6, 2023 Share Posted August 6, 2023 8 часов назад, Denis P сказал: iptables обновили? opkg update && opkg upgrade у кого на 4.0 не создается таблица - файл /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh нужно привести к виду #!/bin/sh [ "$1" == "hook" ] || exit 0 [ "$system_name" == "nwg0" ] || exit 0 [ ! -z "$(ipset --quiet list bypass)" ] || exit 0 [ "${connected}-${link}-${up}" == "yes-up-up" ] || exit 0 if [ -z "$(ip route list table 1001)" ]; then ip route add default dev $system_name table 1001 fi Спасибо, заработало! Раз такая пьянка пошла, то уже с IPv6 стало работать данное решение (я имею ввиду включенное от провайдера+VPN поддерживает IPV6))? Quote Link to comment Share on other sites More sharing options...
r13 Posted August 6, 2023 Share Posted August 6, 2023 6 часов назад, coolmen0509 сказал: Спасибо, заработало! Раз такая пьянка пошла, то уже с IPv6 стало работать данное решение (я имею ввиду включенное от провайдера+VPN поддерживает IPV6))? Да, с v6 тоже заработает если под него сконфигурить. Quote Link to comment Share on other sites More sharing options...
coolmen0509 Posted August 6, 2023 Share Posted August 6, 2023 А есть уже у кого-то, готовые скрипты - так AGH поддерживает полностью v6... Quote Link to comment Share on other sites More sharing options...
r13 Posted August 6, 2023 Share Posted August 6, 2023 5 минут назад, coolmen0509 сказал: А есть уже у кого-то, готовые скрипты - так AGH поддерживает полностью v6... Вечером накидаю рыбу с дополнениями к базовой инструкции. 1 Quote Link to comment Share on other sites More sharing options...
r13 Posted August 6, 2023 Share Posted August 6, 2023 Дополненная инструкция для поддержки ipv6. Требуется KeeneticOS 4.x+ и настроенный ipv6 на туннельном интерфейсе Дополнен скрипт /opt/etc/init.d/S52ipset, добавлены скрипты /opt/etc/ndm/netfilter.d/011-bypass6.sh и /opt/etc/ndm/ifstatechanged.d/011-bypass6-table.sh Скрипт с примером /opt/etc/AdGuardHome/ipset.conf дополнен ipset`ом bypass6 ЗЫ работоспособность скриптов проверил, но сейчас в локации без v6 так что полностью проверю через пару дней как буду дома(там аналогичная конструкция работает). В 08.06.2023 в 11:01, Александр Рыжов сказал: Контент последней статьи с сайта keenetic-gi.ga, архив доступен здесь. В самом алгоритме нет ничего нового, но благодаря недавнему обновлению AdGuard Home (далее AGH) его можно реализовать довольно изящно: использование VPN для заданных вами доменов возможно тройкой коротких скриптов. Требования Развёрнутая среда Entware, Рабочее VPN-соединение поверх провайдерского, по которому будет идти обращение к определённым доменам. Установка пакетов Подразумевается, что AGH будет использоваться вместо встроенной в прошивку службы DNS Proxy. Установите необходимые пакеты: opkg install adguardhome-go ipset iptables ip-full Выполните первоначальную настройку AGH, для чего в CLI роутера наберите: opkg dns-override system configuration save В этот момент Entware-сервисы будут перезапущены, а интерфейс для первоначальной настройки AGH станет доступен по адресу http://192.168.1.1:3000, где 192.168.1.1 — IP-адрес роутера. Настройки по умолчанию подходят для большинства случаев. Скриптовая обвязка Результаты разрешения указанных доменных имён AGH будет помещать в ipset (bypass в примере), правилами iptables трафик по этим IP-адресам будет помечаться fwmark, а для роутинга помеченного трафика будет использоваться своя таблица маршрутизации. Первый скрипт — создание ipset'а при старте роутера. Создайте файл /opt/etc/init.d/S52ipset со следующим содержимым: #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin if [ "$1" = "start" ]; then ipset create bypass hash:ip ipset create bypass6 hash:ip family inet6 ip rule add fwmark 1001 table 1001 ip -6 rule add fwmark 1001 table 1001 fi Второй — для поддержания актуальности таблицы роутинга. Файл /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh с содержимым: #!/bin/sh [ "$system_name" == "nwg0" ] || exit 0 [ ! -z "$(ipset --quiet list bypass)" ] || exit 0 [ "${connected}-${link}-${up}" == "yes-up-up" ] || exit 0 if [ -z "$(ip route list table 1001)" ]; then ip route add default dev $system_name table 1001 fi Тоже упражнение но для поддержки ipv6. Файл /opt/etc/ndm/ifstatechanged.d/011-bypass6-table.sh с содержимым: #!/bin/sh [ "$system_name" == "nwg0" ] || exit 0 [ ! -z "$(ipset --quiet list bypass6)" ] || exit 0 [ "${connected}-${link}-${up}" == "yes-up-up" ] || exit 0 if [ -z "$(ip -6 route list table 1001)" ]; then ip -6 route add default dev $system_name table 1001 fi где nwg0 — сетевой интерфейс VPN-соединения для выборочного обхода блокировок. Если затрудняетесь в его поиске, то посмотрите вывод ip addr, его адрес будет совпадать с тем, что виден в веб-интерфейсе. Третий — пометка трафика с помощью fwmark. Актуальная прошивка активно использует эту возможность, поэтому маркировать трафик приходится точечно. Создайте файл /opt/etc/ndm/netfilter.d/010-bypass.sh c контентом: #!/bin/sh [ "$type" == "ip6tables" ] && exit [ "$table" != "mangle" ] && exit [ -z "$(ip link list | grep nwg0)" ] && exit [ -z "$(ipset --quiet list bypass)" ] && exit if [ -z "$(iptables-save | grep bypass)" ]; then iptables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 1001 iptables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass dst -j CONNMARK --restore-mark fi Тоже упражнение но для поддержки ipv6. Создать скрипт /opt/etc/ndm/netfilter.d/011-bypass6.sh #!/bin/sh [ "$type" != "ip6tables" ] && exit [ "$table" != "mangle" ] && exit [ -z "$(ip -6 link list | grep nwg0)" ] && exit [ -z "$(ipset --quiet list bypass6)" ] && exit if [ -z "$(ip6tables-save | grep bypass6)" ]; then ip6tables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass6 dst -j CONNMARK --set-mark 1001 ip6tables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass6 dst -j CONNMARK --restore-mark fi где nwg0 — снова сетевой интерфейс VPN-соединения. Сделайте скрипты исполняемыми: chmod +x /opt/etc/init.d/S52ipset chmod +x /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh chmod +x /opt/etc/ndm/ifstatechanged.d/011-bypass6-table.sh chmod +x /opt/etc/ndm/netfilter.d/010-bypass.sh chmod +x /opt/etc/ndm/netfilter.d/011-bypass6.sh и переходите к финальному пункту. Список доменов для обхода блокировок Найдите в конфигурационном файле AGH /opt/etc/AdGuardHome/AdGuardHome.yaml строчку ipset_file: "" и поменяйте на ipset_file: /opt/etc/AdGuardHome/ipset.conf. Файл /opt/etc/AdGuardHome/ipset.conf будет единственным, требующим редактирования время от времени, в зависимости от изменения вашего персонального списка доменов для разблокировки. Он имеет следующий синтаксис: intel.com,ipinfo.io/bypass,bypass6 instagram.com,cdninstagram.com/bypass,bypass6 epicgames.com,gog.com/bypass,bypass6 Т.е. в левой части через запятую указаны домены, требующие обхода блокировок, справа после слэша — ipset, в который AGH складывает результаты разрешения DNS-имён. Можно указать всё в одну строчку, можно разделить логически на несколько строк как в примере. Домены третьего уровня и выше также включаются в обход блокировок, т.е. указание intel.com включает www.intel.com, download.intel.com и пр. Рекомендую добавить какой-нибудь «сигнальный» сервис, показывающий ваш текущий IP-адрес (ipinfo.io в примере). Так вы сможете проверить работоспособность настроенного решения. Учтите, что AGH не перечитывает изменённый файл, поэтому после правки перезапустите его с помощью: /opt/etc/init.d/S99adguardhome restart При желании можно использовать несколько VPN-соединений для обращения к разным доменам, для простоты понимания здесь это не описано. Диагностика проблем Убедитесь в том, что набор ipset создан и наполняется в процессе работы: # Проверка ipv4 ipset --list bypass # Проверка ipv6 ipset --list bypass6 Вывод должен быть не пустой. Убедитесь в существовании нужной таблицы роутинга для обхода блокировок: # Проверка ipv4 ip rule list | grep 1001 # Проверка ipv6 ip -6 rule list | grep 1001 Убедитесь, что в таблице присутствует необходимый маршрут: # Проверка ipv4 ip route list table 1001 # Проверка ipv6 ip -6 route list table 1001 Посмотрите, существуют ли правила netfilter для пометки пакетов: # Проверка ipv4 iptables-save | grep bypass # Проверка ipv6 ip6tables-save | grep bypass6 После перезагрузки роутера проверьте в веб-интерфейсе Системный журнал, в нём не должно быть красных строк, связанных с настроенными скриптами. Удачи в начинаниях! 1 2 Quote Link to comment Share on other sites More sharing options...
coolmen0509 Posted August 6, 2023 Share Posted August 6, 2023 57 минут назад, r13 сказал: Убедитесь, что в таблице присутствует необходимый маршрут: # Проверка ipv4 ip route list table 1001 # Проверка ipv6 ip -6 route list table 1001 Не создаются маршруты, не надо добавлять - ниже процитировал? м 20 часов назад, Denis P сказал: [ "$1" == "hook" ] || exit 0 Quote Link to comment Share on other sites More sharing options...
r13 Posted August 6, 2023 Share Posted August 6, 2023 (edited) 33 минуты назад, coolmen0509 сказал: Не создаются маршруты, не надо добавлять - ниже процитировал? м Да, этот кусок [ "$1" == "hook" ] || exit 0 не нужен. Зы, если все равно не создастся, отлавливать какое из условий скрипта не отрабатывает. Зы2 chmod +x для новых скриплов было выполнено? Edited August 6, 2023 by r13 Quote Link to comment Share on other sites More sharing options...
coolmen0509 Posted August 7, 2023 Share Posted August 7, 2023 9 часов назад, r13 сказал: Да, этот кусок [ "$1" == "hook" ] || exit 0 не нужен. Зы, если все равно не создастся, отлавливать какое из условий скрипта не отрабатывает. Зы2 chmod +x для новых скриплов было выполнено? Chmod +x конечно сделано, причем не работает именно эти скрипты, которые маршруты добавляют .. маркирование трафика работает .. Quote Link to comment Share on other sites More sharing options...
r13 Posted August 7, 2023 Share Posted August 7, 2023 (edited) 1 час назад, coolmen0509 сказал: Chmod +x конечно сделано, причем не работает именно эти скрипты, которые маршруты добавляют .. маркирование трафика работает .. Такс, подправил скрипт, сократив количество проверок, попробуйте с ним. Edited August 7, 2023 by r13 Quote Link to comment Share on other sites More sharing options...
r13 Posted August 7, 2023 Share Posted August 7, 2023 Также можно упростить инструкцию и вместо создания маршрутов скриптами использовать нативные политики keenos, которые уже являются таблицами маршрутизации. Просто создаем политику и включаем в нее требуемый vpn туннель. Далее с помощью команды cli show ip policy смотрим связанный с политикой номер таблицы маршрутизации: Скрытый текст (config)> show ip policy policy, name = Policy1, description = VPN: mark: ffffd00 table4: 42 И используем эту таблицу в скрипте /opt/etc/init.d/S52ipset Скрытый текст #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin if [ "$1" = "start" ]; then ipset create bypass hash:ip ipset create bypass6 hash:ip family inet6 ip rule add fwmark 1001 table 42 ip -6 rule add fwmark 1001 table 42 fi в таком случае скрипты /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh и /opt/etc/ndm/ifstatechanged.d/011-bypass6-table.sh вообще не нужны. Эту функцию будет выполнять сама KeenOS, ну и бонусом будет резервирование/агрегация каналов предоставляемая политиками. 4 Quote Link to comment Share on other sites More sharing options...
Freedom Posted August 7, 2023 Share Posted August 7, 2023 Здравствуйте! Спасибо за обновлённые скрипты, всё заработало! Хочу сделать то же самое, но без AdGuardHome (он мне не нужен), чтобы было минимум лишних элементов, но для меня это пока сверх-сложная-задача. Чисто технически есть такая возможность? Вроде во встроенном в KeeneticOS DNS-сервере нет таких возможностей, чтобы добавлять резолвнутые ip-адреса в ipset. Как вариант (плохой), сделать cron, который раз в час будет резолвить все домены и добавлять ip-адреса в ipset, или даже в статические маршруты (не знаю как лучше) Quote Link to comment Share on other sites More sharing options...
vasek00 Posted August 7, 2023 Share Posted August 7, 2023 8 минут назад, Freedom сказал: Как вариант (плохой), сделать cron, который раз в час будет резолвить все домены и добавлять ip-адреса в ipset, или даже в статические маршруты (не знаю как лучше) Смотрите в сторону 1 Quote Link to comment Share on other sites More sharing options...
coolmen0509 Posted August 7, 2023 Share Posted August 7, 2023 10 часов назад, r13 сказал: Также можно упростить инструкцию и вместо создания маршрутов скриптами использовать нативные политики keenos, которые уже являются таблицами маршрутизации. Просто создаем политику и включаем в нее требуемый vpn туннель. Далее с помощью команды cli show ip policy смотрим связанный с политикой номер таблицы маршрутизации: Скрыть содержимое (config)> show ip policy policy, name = Policy1, description = VPN: mark: ffffd00 table4: 42 И используем эту таблицу в скрипте /opt/etc/init.d/S52ipset Скрыть содержимое #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin if [ "$1" = "start" ]; then ipset create bypass hash:ip ipset create bypass6 hash:ip family inet6 ip rule add fwmark 1001 table 42 ip -6 rule add fwmark 1001 table 42 fi в таком случае скрипты /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh и /opt/etc/ndm/ifstatechanged.d/011-bypass6-table.sh вообще не нужны. Эту функцию будет выполнять сама KeenOS, ну и бонусом будет резервирование/агрегация каналов предоставляемая политиками. Спасибо.ю сейчас попробую настроить. Как я понимаю скрипты /opt/etc/ndm/netfilter.d/011-bypass6.sh и /opt/etc/ndm/netfilter.d/019-bypass.sh тоже не нужны... Quote Link to comment Share on other sites More sharing options...
r13 Posted August 7, 2023 Share Posted August 7, 2023 28 минут назад, coolmen0509 сказал: Спасибо.ю сейчас попробую настроить. Как я понимаю скрипты /opt/etc/ndm/netfilter.d/011-bypass6.sh и /opt/etc/ndm/netfilter.d/019-bypass.sh тоже не нужны... Нет, нетфильтр остается, это маркировка трафика для перенаправления в нужную таблицу маршрутизации Quote Link to comment Share on other sites More sharing options...
coolmen0509 Posted August 7, 2023 Share Posted August 7, 2023 там ссылки на 1001е таблицы, тогда тоже нужно менять на те, что с политик? Quote Link to comment Share on other sites More sharing options...
r13 Posted August 7, 2023 Share Posted August 7, 2023 6 минут назад, coolmen0509 сказал: там ссылки на 1001е таблицы, тогда тоже нужно менять на те, что с политик? Нет там ссылка на маркировку, а привязка к таблице в первом скрипте: 42 минуты назад, coolmen0509 сказал: ip rule add fwmark 1001 table 42 Если маркировка 1001 то идти в таблицу 42. Если очень хочется можно везде сменить и маркировку тоже на номер таблицы, но это если хочется чтоб было красиво), на функционал не влияет. Quote Link to comment Share on other sites More sharing options...
coolmen0509 Posted August 7, 2023 Share Posted August 7, 2023 А понял, глупый вопрос конечно - как в политиках по умолчанию убрать ВПН соединение, или если только для интернета основного новую политику? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.