Alex T
-
Posts
7 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Downloads
Blogs
Events
Posts posted by Alex T
-
-
5 минут назад, zako сказал:
то нужно по аналогии поменять так
1. Да.
2.Проще даже скопировать блок для первого vpn и подправить _1 на _2 в переменных, и номер таблицы.
Если уж править пример, то гораздо важнее поправить создаваемые правила iptables, в случае shadowsocks там идёт не пометка пакетов, а переадресация их на порт прокси. А для WG нужно будет --set-mark 1002. (ну или ваша таблица)
Скрытый текст[ -n "$(ip link list | grep $VPN_NAME_1)" ] && в данном случае, одно из условий, выполнение которого требуется, чтобы добавить правила, а именно - что в списке интерфейсов вообще есть подстрока, которую мы обозначили переменной $VPN_NAME_1 (ну или _2)
[ -n - вот это вот, проверка на то, что команда вернула непустой ответ
[ -z - поверка на пустой
Все три условия просто уменьшают шанс лишнего добавления или задвоения правил. Чтобы скрипт не тратил время на попытки добавить правила на несуществующий VPN и не сыпал ошибками в логи.
Самое важное условие здесь [ -z "$(iptables-save | grep $SET_NAME_2)" ] - оно разрешает добавить правила, только если ЕЩЁ нет правил работающих с нашим $SET_NAME_2
При этом, как часто бывает в "наколеночных" скриптах, такое условие, может мешать, если уже существуют правила не укладывающиеся в логику скрипта. Или есть наборы, имена которых входят друг в друга(например set_1 и set_12)
- 1
-
В 26.04.2024 в 15:36, zako сказал:
Подскажите, пожалуйста, алгоритм действий. Куда нужно поместить эти файлы, нужно ли их распаковывать и как запустить Makefile.
Там просто набор дубликатов скриптов исходного решения с чуть подправленными именами. Если очень хочется, можно просто положить рядом с оригинальными.
Как мне кажется, не оптимальный вариант, проще прописать несколько вариантов ВПН сразу в исходные скрипты и запускать по копии ipset-dns на своём порту для каждого.На коленке набросал для маршрутов через мои WG и ss-redir, вроде работает, но прошу отнестись с осторожностью:
Скрытый тексттупо задваиваем конфиг
cat /opt/etc/bypass.conf
DNS_1=1.1.1.1 SET_NAME_1=bypass_1 VPN_NAME_1=nwg0 VPN_SUBNET_1=172.16.0.2/24 DNS_2=8.8.8.8 SET_NAME_2=bypass_2 VPN_NAME_2=br0 VPN_OUTPORT_2=1082
поднимаем два экземпляра ipset-dns, каждый по своему ipset
cat /opt/etc/init.d/S52ipset-dns
#!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /opt/etc/bypass.conf if [ "$1" = "start" ]; then ipset create $SET_NAME_1 hash:ip timeout 86400 ipset add $SET_NAME_1 $DNS_1 ip rule add fwmark 1001 table 1001 ipset-dns $SET_NAME_1 $SET_NAME_1 0.0.0.0:5353 $DNS_1 # ipset create $SET_NAME_2 hash:ip timeout 86400 ipset add $SET_NAME_2 $DNS_2 ip rule add fwmark 1002 table 1002 ipset-dns $SET_NAME_2 $SET_NAME_2 0.0.0.0:5454 $DNS_2 fi
Добавляем маршруты при переподнятии интерфейса. На самом деле маршруты для ss-redir в этом примере не будут пересоздаваться, т.к. это прокси, а не интерфейс, и это надо привязывать или к процессу или к факту соединения, но для примера сойдёт, т.к. маршруты добавятся при старте роутера.
cat /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh
#!/bin/sh . /opt/etc/bypass.conf [ "$1" == "hook" ] || exit 0 [ "${connected}-${link}-${up}" == "yes-up-up" ] || exit 0 # do not need route to ss, usinng proxy instead [ "$system_name" == "br0" ] && exit 0 if [ "$system_name" == "$VPN_NAME_1" ] && [ -n "$(ipset --quiet list $SET_NAME_1)" ] && [ -z "$(ip route list table 1001)" ]; then ip route add default dev $system_name table 1001 fi if [ "$system_name" == "$VPN_NAME_2" ] && [ -n "$(ipset --quiet list $SET_NAME_2)" ] && [ -z "$(ip route list table 1002)" ]; then ip route add default dev $system_name table 1002 fi
и создаём правила, если их нет
cat /opt/etc/ndm/netfilter.d/010-bypass-netfilter.sh
#!/bin/sh . /opt/etc/bypass.conf [ "$type" == "ip6tables" ] && exit [ "$table" != "mangle" ] && exit if [ -n "$(ip link list | grep $VPN_NAME_1)" ] && [ -n "$(ipset --quiet list $SET_NAME_1)" ] && [ -z "$(iptables-save | grep $SET_NAME_1)" ]; then iptables -w -t mangle -A PREROUTING ! -s $VPN_SUBNET_1 -m conntrack --ctstate NEW -m set --match-set $SET_NAME_1 dst -j CONNMARK --set-mark 1001 iptables -w -t mangle -A PREROUTING ! -s $VPN_SUBNET_1 -m set --match-set $SET_NAME_1 dst -j CONNMARK --restore-mark fi # Shadowsocks if [ -n "$(ipset --quiet list $SET_NAME_2)" ] && [ -z "$(iptables-save | grep $SET_NAME_2)" ]; then iptables -I PREROUTING -w -t nat -i $VPN_NAME_2 -p tcp -m set --match-set $SET_NAME_2 dst -j REDIRECT --to-port $VPN_OUTPORT_2 iptables -I PREROUTING -w -t nat -i $VPN_NAME_2 -p udp -m set --match-set $SET_NAME_2 dst -j REDIRECT --to-port $VPN_OUTPORT_2 fi
- 1
-
4 часа назад, Freedom сказал:
Объясните пожалуйста, в чём разница между mipsel и mipsle версиями?
Нету никакой разницы, есть единая архитектура MIPS. Сами железки могут работать с любым порядком байтов и little-endian и big-endian. Выбирает система. Обзывать конкретные сборки приложений могут как mipsle, так и mipsel, кому как привычно.
Есть небольшая разница в сборках - то, что на сайте адгарда, собирают авторы, под некоторую универсальную среду. Через какое-то время, люди, которые поддерживают entware, собирают на основе этого же кода пакет для entware.
4 часа назад, Freedom сказал:Я так понимаю пакеты, устанвленные через Entware, нужно обновлять только через Entware. Но в репозитории Entware лежит сильно старая версия AdGuardHome, так что это не вариант.
Можно, при желании, ставить руками с гита авторов, но Вы, скорее всего, не обновили состав пакетов.
Выполните opkg update, а затем opkg list| grep adguardhome-go
у вас должно появиться adguardhome-go - v0.107.21-1, что на три минорных версии и месяц отстаёт от разработчика
- 2
-
А умеет ли адгард перечитывать файл с ipset без перезапуска?
/opt/etc/init.d/S99adguardhome reconfigure посылает SIGHUP, но похоже, он перечитывает там только adguardhome.conf
-
Я идиот же. Мне не нужно пока рулить клиентами на адгарде.
Отключил dns-override, поднял ь adguard на другом порту, и указал его как DNS-прокси.
В итоге клиенты ходят на родной DNS роутера за локальными записями, а за внешними он их отправляет в адгард.
Но на будущее интересно, можно ли настроить напрямую. -
Вопрос по адресам, которые раздаёт DHCP кинетика.
Можно ли adguard научить их отдавать? Подбирая из /var/ndnproxymain.conf или иным образом.
Догадываюсь, что если отключить DHCP роутера и включить на адгарде, то оно заработает. Но DHCP хотелось бы оставить на самом роутере.
Сейчас адреса успешно добавляются в /var/ndnproxymain.conf штатным образомСкрытый текст#cat var/ndnproxymain.conf rpc_port = 54321 rpc_ttl = 10000 rpc_wait = 10000 timeout = 7000 proceed = 500 stat_file = /var/ndnproxymain.stat stat_time = 10000 static_a = my.keenetic.net 78.47.125.180 static_a = DS210 192.168.20.20 norebind_ctl = on norebind_ip4net = 10.1.30.1:24 norebind_ip4net = 192.168.20.1:24 norebind_ip4net = 255.255.255.255:32 set-profile-ip 127.0.0.1 0 set-profile-ip ::1 0 rpc_only = on
на DNS отвечает adguard
# netstat -ntulp | grep AdGuard tcp 0 0 192.168.20.1:53 0.0.0.0:* LISTEN 1459/AdGuardHome tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1459/AdGuardHome tcp 0 0 192.168.20.1:3001 0.0.0.0:* LISTEN 1459/AdGuardHome udp 0 0 192.168.20.1:53 0.0.0.0:* 1459/AdGuardHome udp 0 0 127.0.0.1:53 0.0.0.0:* 1459/AdGuardHome
в конфиге которого всё типично
dns: bind_hosts: - 127.0.0.1 - 192.168.20.1 port: 53 private_networks: [] use_private_ptr_resolvers: true local_ptr_upstreams: []
Клиенты умудряются пинговать друг друга
Не уверен, откуда их подтягивает ping - из объявлений avahi?
>ipconfig /flushdns Настройка протокола IP для Windows Кэш сопоставителя DNS успешно очищен. >ping -a ds210 Обмен пакетами с DS210.local [192.168.20.20] с 32 байтами данных: Ответ от 192.168.20.20: число байт=32 время<1мс TTL=64
По nslookup (на клиенте) адгард их не возвращает
nslookup ds210 ╤хЁтхЁ: UnKnown Address: 192.168.20.1 *** UnKnown не удалось найти ds210: Non-existent domain nslookup DS210.local ╤хЁтхЁ: UnKnown Address: 192.168.20.1 *** UnKnown не удалось найти DS210.local: Non-existent domain
AdGuardHome
in Каталог готовых решений Opkg
Posted
В свежих версиях разрешили комментарии в файле ipset оставлять
Comments in ipset_file · Issue #5345 · AdguardTeam/AdGuardHome · GitHub