qzeleza / kvas

vpn и shadowsocks клиент для роутеров keenetic
Other
308 stars 27 forks source link

Порядок включения AdGuard Home не соответствует описанию в Wiki #69

Closed cjmaxik closed 8 months ago

cjmaxik commented 10 months ago

Описание проблемы. При попытке включить AdGuard Home на свежей установке КВАС, после выполнения первичной настройки AGH остается отключенным.

Мои шаги, приведшие к ошибке/проблеме.

  1. Запустил команду kvas adguard on
  2. Перешел по ссылке из лога AGH для первичной настройки
  3. После первичной настройки (порты, пользователь) нажал Ctrl+C в терминале
  4. AGH завершает работу, работа команды КВАСа прекращается
  5. Команда kvas test показывает, что по-прежнему используется dnsmasq

Вывод терминала: https://pastebin.com/uamqD1Dj

Ожидания о поведении программы. После нажатия Ctrl+C должно произойти обновление и активация AGH.

Информация о роутере (пожалуйста, заполните следующую информацию):

cjmaxik commented 10 months ago

Прикладываю также вывод kvas debug после воспроизведения проблемы: https://pastebin.com/4HCFtQLX Уточню, что на шаге проверка наличия ip адресов хостов в таблице ipset процесс висит (не может отрезолвить ya.ru, dnscrypt-proxy не был запущен), помогает только Ctrc+C.

cjmaxik commented 10 months ago

Дополняю: выполнил обновление AGH через kvas adguard update, затем попробовал запустить kvas adguard on снова. КВАС отчитывается об успешной работе, однако AGH падает с фатальной ошибкой, прикладываю лог: https://pastebin.com/Q2MRAB7W

qzeleza commented 10 months ago

Приложите пожалуйста, содержимое файла /opt/etc/AdGuardHome/kvas.ipset

cjmaxik commented 10 months ago

Прикладываю: https://pastebin.com/SHcc8kkF

qzeleza commented 10 months ago

Попробуйте сейчас. В случае ошибки - сразу приложите пожалуйста "лог" ошибки.

cjmaxik commented 10 months ago

Ошибка та же самая

2023/09/19 10:07:47.535126 [fatal] dnsServer.Prepare: preparing ipset settings: initializing ipset: ipset: config line at idx 0: invalid value "- 2ip.ru/unblock\\n  - 4pda.ru/unblock\\n  - ads-twitter.com/unblock\\n  - browserleaks.com/unblock\\n  - cdnfacebook.com/unblock\\n  - cdninstagram.com/unblock\\n  - f.vision/unblock\\n  - facebook.com/unblock\\n  - fb.com/unblock\\n  - fbcdn.net/unblock\\n  - fbsbx.com/unblock\\n  - fburl.com/unblock\\n  - ig.me/unblock\\n  - instagram.com/unblock\\n  - kinozal.tv/unblock\\n  - licdn.com/unblock\\n  - linkedin.com/unblock\\n  - lnkd.in/unblock\\n  - meta.com/unblock\\n  - netflix.com/unblock\\n  - openwrt.org/unblock\\n  - quora.com/unblock\\n  - rutracker.org/unblock\\n  - t.co/unblock\\n  - twimg.com/unblock\\n  - twitter.co/unblock\\n  - twitter.com/unblock\\n  - twitteroauth.com/unblock\\n  - twttr.com/unblock\\n  - whatsapp.net/unblock": expected one slash
qzeleza commented 10 months ago

пробуем еще раз.

cjmaxik commented 10 months ago

Путь до ipset_file не заполняется в конфиге AGH:

  ipset: []
  ipset_file: ""
qzeleza commented 10 months ago

Можете предоставить доступ к устройству?

cjmaxik commented 10 months ago

Написал ЛС на форуме.

qzeleza commented 10 months ago

Переделал - проверьте пожалуйста.

cjmaxik commented 10 months ago

Проблема с kvas.ipset (#70) решена.

cjmaxik commented 10 months ago

Зря закрыли, изначальная проблема несоответствия мануалу осталась. По факту, AGH активируется после выполнения kvas adguard on два раза подряд.

qzeleza commented 10 months ago

поясните более подробно

cjmaxik commented 10 months ago

Как я и писал изначально, мануал требует нажатия Ctrl+C после первичной настройки AGH, после чего должно произойти обновление и активация AGH, но этого не происходит. Мы просто с вами попутно решили другую проблему :)

qzeleza commented 8 months ago

Проблему взял в работу, до конца недели выпущу исправление.

badigit commented 8 months ago

Может будет полезно, мой кейс неуспешного включения adguard и сопутствующие проблемы. Я бы разделил их на проблемы самого adguard, и проблемы кваса. Если говорить по квасу то коротко:

  1. Похоже что после "kvas adguard on", квас не-понял что установился adguard
  2. Сам процесс установки adguard немного странный, и заканчивается потоковым отображением логов adguard.
  3. После первичной настройки adguard, демон сам завершился, после чего сам собой запустился dnsmasq
  4. kvas test не видит установленный adguard
  5. После повторного kvas adguard on - тоже самое, с нюансами (kvas adguard on распознал установку, kvas test- нет. Обход не работает.)
  6. Повторный kvas adguard off - завершился с ошибкой установки dnscrypt-proxy2
  7. Попытки настройки adguard, ломают dnsmasq (пропадает скрипт, квас тест выдает ошибку)

По самому adguard:

  1. Могут быть непонятки с портом администрирования
  2. Нужно проверять дефолтные настройки DNS серверов

Подробнее процесс:

  1. Пишем kvas adguard on. Консоль подвисает примерно на минутку.

  2. Текст консоли как-бы еще раз предлагает ввести kvas adguard on image

  3. Вроде бы adguard установился, но по окончании установки переходит в режим tail -f логов самого adguard. Чтобы выйти надо жать Ctrl+C

  4. Переходим на страницу настройки adguard роутер:3000

  5. Adguard нам предлагает по дефолту веб интерфейс разместить на 80 порту, и не может это сделать) image

  6. Задаем ему руками 3000 порт. Его устраивает.

  7. Проводим установку - далее-далее. Успех. Заходим в веб интерфейс. Видим что статистика DNS по нулям.

  8. По логам в консоли видим что adguard сам собой завершился И больше сам не поднимается)

    
    2023/11/23 11:57:46.892636 [info] auth: user "admin" successfully logged in from ip 10.9.8.92
    2023/11/23 11:58:05.661492 [error] filtering: os.Chtimes(): chtimes /opt/bin/data/filters/1.txt: no such file or directory
    2023/11/23 11:58:05.662265 [error] filtering: updating filter from url "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": reading from url: Get "https://adguardteam                                                     .github.io/HostlistsRegistry/assets/filter_1.txt": resolving "adguardteam.github.io": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over udp: read ud                                                     p 192.168.100.5:52261->9.9.9.10:53: i/o timeout", "exchanging with 149.112.112.10:53 over udp: read udp 192.168.100.5:53714->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53                                                      over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: conn                                                     ect: network is unreachable"

2023/11/23 11:58:30.418455 [error] POST 10.9.8.1:3000 /control/version.json: getting version info from https://static.adtidy.org/adguardhome/release/version.json: updater: HTTP GET https://static.adtidy.org/adguar dhome/release/version.json: Get "https://static.adtidy.org/adguardhome/release/version.json": resolving "static.adtidy.org": all upstreams failed to exchange request: 4 errors: "exchanging with 149.112.112.10:53 o ver udp: read udp 192.168.100.5:56093->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10 ]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable", "exchanging with 9.9.9.10:53 over udp: read udp 192.168.100.5:49140->9.9.9.10:53: i/o timeout" 2023/11/23 11:58:55.675335 [error] filtering: os.Chtimes(): chtimes /opt/bin/data/filters/1.txt: no such file or directory 2023/11/23 11:58:55.675578 [error] filtering: updating filter from url "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": reading from url: Get "https://adguardteam.github.io/HostlistsRegistry/ assets/filter_1.txt": resolving "adguardteam.github.io": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over udp: read udp 192.168.100.5:54941->9.9.9.10:53: i/o timeout", "exchang ing with 149.112.112.10:53 over udp: read udp 192.168.100.5:58368->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachabl e", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable"

2023/11/23 11:59:10.427063 [error] POST 10.9.8.1:3000 /control/version.json: getting version info from https://static.adtidy.org/adguardhome/release/version.json: updater: HTTP GET https://static.adtidy.org/adguar dhome/release/version.json: Get "https://static.adtidy.org/adguardhome/release/version.json": resolving "static.adtidy.org": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over ud p: read udp 192.168.100.5:58195->9.9.9.10:53: i/o timeout", "exchanging with 149.112.112.10:53 over udp: read udp 192.168.100.5:52960->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all diale rs failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable" ^C2023/11/23 11:59:29.350044 [info] Received signal "interrupt" 2023/11/23 11:59:29.350201 [info] stopping AdGuard Home 2023/11/23 11:59:29.350275 [info] stopping http server... 2023/11/23 11:59:34.351726 [error] shutting down http server "0.0.0.0:3000": context deadline exceeded 2023/11/23 11:59:34.351905 [info] stopped http server 2023/11/23 11:59:50.436433 [error] POST 10.9.8.1:3000 /control/version.json: getting version info from https://static.adtidy.org/adguardhome/release/version.json: updater: HTTP GET https://static.adtidy.org/adguar dhome/release/version.json: Get "https://static.adtidy.org/adguardhome/release/version.json": resolving "static.adtidy.org": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over ud p: read udp 192.168.100.5:55631->9.9.9.10:53: i/o timeout", "exchanging with 149.112.112.10:53 over udp: read udp 192.168.100.5:55599->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all diale rs failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable" 2023/11/23 11:59:55.688440 [info] dnsproxy: stopping dns proxy server 2023/11/23 11:59:55.689477 [error] filtering: os.Chtimes(): chtimes /opt/bin/data/filters/1.txt: no such file or directory 2023/11/23 11:59:55.689824 [error] filtering: updating filter from url "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": reading from url: Get "https://adguardteam.github.io/HostlistsRegistry/ assets/filter_1.txt": resolving "adguardteam.github.io": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over udp: read udp 192.168.100.5:58532->9.9.9.10:53: i/o timeout", "exchang ing with 149.112.112.10:53 over udp: read udp 192.168.100.5:55525->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachabl e", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable"

2023/11/23 11:59:55.690774 [info] dnsproxy: stopped dns proxy server 2023/11/23 11:59:55.869764 [info] stopped

11. Делаем /opt/apps/kvas/etc/init.d/S99adguard start видим ошибку в строке iptables, остальное успешно.

~ # /opt/apps/kvas/etc/init.d/S99adguard start Производим сброс пакета КВАС в исходное состояние.

Удаляем все ранее созданные таблицы для утилит ipset и ip ГОТОВО Создаем все необходимые таблицы для утилит ipset и ip ГОТОВО Создаем таблицу маршрутизации ID#1001 для 'IKE0'. ГОТОВО Очищаем все ранее созданные iptables правила для VPN. ОШИБКА Обнуляем приоритет таблицы ID#1001 ГОТОВО Устанавливаем приоритет таблицы ID#1001 в значение 1778 ГОТОВО Создаем iptables правила для VPN соединения. ГОТОВО Заполняем ipset таблицу данными из списка разблокировки. ГОТОВО Заполняем dnsmasq таблицу данными из списка разблокировки. ГОТОВО Перезапускаем сервис dnsmasq ГОТОВО Синхронизируем дату роутера с сервером времени. ГОТОВО Производим перезапуск подключения к интернету ГОТОВО Перезапускаем AdGuardHome ГОТОВО

12. Adguard стартует. Но вместо админки опять показывает страницу первичной конфигурации + ошибку на ней - не может занять :53 порт, потому что он занят dnsmasq.

~ # netstat -ntlup | grep :53 tcp 0 0 0.0.0.0:53 0.0.0.0: LISTEN 23679/dnsmasq tcp 0 0 :::53 ::: LISTEN 23679/dnsmasq

13. Завершаем /opt/etc/init.d/S56dnsmasq stop

14. Пробуем опять выполнить конфигурацию adguard в вебморде. 
Опять не успешно, потому что порт для веб-интерфейса 3000 занят (очень странно, ведь его занял сам adguard), ок меняем порт на 1234. Завершаем конфигурацию, входим в панель.

15. Статистика не показывается (нули), плюс видим что adguard не может скачать правила фильтрации. В логе адгуарда ошибки такие же как в первый раз. Но в этот раз он сам-собой не завершается.

2023/11/23 12:09:43.768182 [info] auth: user "admin" successfully logged in from ip 10.9.8.92 2023/11/23 12:10:08.441979 [error] filtering: os.Chtimes(): chtimes /opt/etc/AdGuardHome/data/filters/1.txt: no such file or directory 2023/11/23 12:10:08.442235 [error] filtering: updating filter from url "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": reading from url: Get "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": resolving "adguardteam.github.io": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over udp: read udp 192.168.100.5:53351->9.9.9.10:53: i/o timeout", "exchanging with 149.112.112.10:53 over udp: read udp 192.168.100.5:57564->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable"

2023/11/23 12:10:58.454440 [error] filtering: os.Chtimes(): chtimes /opt/etc/AdGuardHome/data/filters/1.txt: no such file or directory 2023/11/23 12:10:58.454711 [error] filtering: updating filter from url "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": reading from url: Get "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": resolving "adguardteam.github.io": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over udp: read udp 192.168.100.5:50045->9.9.9.10:53: i/o timeout", "exchanging with 149.112.112.10:53 over udp: read udp 192.168.100.5:55920->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable"

2023/11/23 12:11:58.466562 [error] filtering: os.Chtimes(): chtimes /opt/etc/AdGuardHome/data/filters/1.txt: no such file or directory 2023/11/23 12:11:58.466837 [error] filtering: updating filter from url "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": reading from url: Get "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": resolving "adguardteam.github.io": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over udp: read udp 192.168.100.5:57233->9.9.9.10:53: i/o timeout", "exchanging with 149.112.112.10:53 over udp: read udp 192.168.100.5:57833->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable"

2023/11/23 12:12:47.871826 [error] POST 10.9.8.1:1234 /control/filtering/refresh: filters update procedure is already running 2023/11/23 12:13:18.480882 [error] filtering: os.Chtimes(): chtimes /opt/etc/AdGuardHome/data/filters/1.txt: no such file or directory 2023/11/23 12:13:18.481149 [error] filtering: updating filter from url "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": reading from url: Get "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": resolving "adguardteam.github.io": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over udp: read udp 192.168.100.5:50098->9.9.9.10:53: i/o timeout", "exchanging with 149.112.112.10:53 over udp: read udp 192.168.100.5:57022->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable"

2023/11/23 12:15:18.494430 [error] filtering: os.Chtimes(): chtimes /opt/etc/AdGuardHome/data/filters/1.txt: no such file or directory 2023/11/23 12:15:18.494709 [error] filtering: updating filter from url "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": reading from url: Get "https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt": resolving "adguardteam.github.io": all upstreams failed to exchange request: 4 errors: "exchanging with 9.9.9.10:53 over udp: read udp 192.168.100.5:60090->9.9.9.10:53: i/o timeout", "exchanging with 149.112.112.10:53 over udp: read udp 192.168.100.5:52417->149.112.112.10:53: i/o timeout", "dialing [2620:fe::10]:53 over udp: all dialers failed: dial udp [2620:fe::10]:53: connect: network is unreachable", "dialing [2620:fe::fe:10]:53 over udp: all dialers failed: dial udp [2620:fe::fe:10]:53: connect: network is unreachable"


16. Заходим в настройки adguard и удаляем дефолтные ipv6 dns сервера, также в моём случае пришлось удалить не доступны сервера 149.112.112.10 и 9.9.9.10. Оставил 8.8.8.8 и 1.1.1.1
17. Сохраняем, видим что статистика пошла, запросы пошли, правила обновились, но обход блокировок все еще не работает

18. Делаем kvas test. А он внезапно вообще тестирует dnsmasq и пытается его перезапустить

~ # kvas test

Состояние службы dnsmasq ОСТАНОВЛЕНА Перезапускаем еще раз dnsmasq ОШИБКА

Запустите диагностику командой kvas debug ~ #


Делаем adguard test. Получаем "отлуп"

~ # kvas adguard test

Сейчас функции DNS сервера, шифрования DNS трафика и функции блокировки рекламы исполняет связка [dnsmasq + dnscrypt_proxy2 + adblock], заменяющая AdGuard Home. Единовременно Квас может работать только с одной из этих связок. Для перехода на AdGuard Home запустите команду kvas adguard on


19. Делаем kvas debug

~ # kvas debug

КВАС версии 1.1.5

Текущая дата и время Thu Nov 23 12:19:54 +06 2023


Информация о роутере

Страна: RU Модель: KN-1010 Страна_: EA Тип архитектуры: mipsel

Текущее VPN соединение: homedi ikev2 (IKE0) ОТКЛЮЧЕНО УСТАНОВЛЕН список разблокировки ПО УМОЛЧАНИЮ. Шифрование DNS трафика (dnscrypt-proxy2) ВКЛЮЧЕНО. Блокировка рекламы НЕ УСТАНОВЛЕНА..

Установка завершена: 19/11/2023 17:38:44

Список ошибок из системного журнала

Состояние службы dnsmasq по команде /opt/etc/init.d/S56dnsmasq status ОСТАНОВЛЕНА

dnsmasq: failed to create listening socket for port 53: Address already in use

[] Проблемы при выделении адресов для аренды DHCP ~ #


Видим что квас не-понял что установлен адгуард, и пытается работать с dnsmasq.

16. Пробуем выключить adguard - kvas adguard off - Успешно.

17. Заработал резолвер dnsmasq. Обход блокировок не работает
18. Делаем kvas test. Обход начинает работать
20. Делаем опять kvas adguard on.

~ # kvas adguard on

Был обнаружен и восстановлен архивный файл конфигурации AdGuard Home. Панель управления находится по адресу: http://10.9.8.1:1234

AdGuard Home установлен в качестве основного DNS сервера ГОТОВО


21. Резолвер adh заработал, обход блокировок нет.
22. Делаем kvas test. Он опять ищет dnsmasq + не находит скрипты

~ # kvas test

Состояние службы dnsmasq /opt/bin/kvas: line 80: /opt/etc/init.d/S56dnsmasq: not found ОСТАНОВЛЕНА Перезапускаем еще раз dnsmasq ОШИБКА

Запустите диагностику командой kvas debug

23. Отключаем adguard  ( kvas adguard off ) до новых коммитов)
При выключении ошибка установки dnscrypt

~ # kvas adguard off

AdGuard Home в качестве DNS сервера удален УСПЕШНО Устанавливаем пакет dnscrypt-proxy2... /opt/bin/kvas: line 1631: /opt/etc/init.d/S09dnscrypt-proxy2: not found Настраиваем dnscrypt-proxy2... ГОТОВО


Повторим команду

~ # kvas adguard off

AdGuard Home в качестве DNS сервера удален УСПЕШНО Настраиваем dnscrypt-proxy2... ГОТОВО

~ #


24. Выполним kvas test. Видим что dnsmasq не работает и пропал скрипт для него...

~ # kvas test

Состояние службы dnsmasq /opt/bin/kvas: line 80: /opt/etc/init.d/S56dnsmasq: not found ОСТАНОВЛЕНА Перезапускаем еще раз dnsmasq ОШИБКА

qzeleza commented 8 months ago

Прошу дать обратную связь по крайней версии пакета. Воспроизводима ли ошибка?

badigit commented 8 months ago

На мой взгляд, ошибки обсуждаемые тут решены

qzeleza commented 8 months ago

Доработал код 1.1.5-final Если ошибка появится - повторно откройте тикет. Сейчас его закрываю.