Jump to content

Zeleza

Forum Members
  • Posts

    761
  • Joined

  • Days Won

    79

Everything posted by Zeleza

  1. Доброго дня, Хорошо, подумаю)
  2. Доброго вечера, Поясните пожалуйста, более детально, что имеете в виду и как Вы видите данную реализацию в квасе.
  3. Доброго всем дня, Собранная информация из разных источников позволяет сделать следующие выводы, относительно вопроса, связанного с НЕ открытием некоторых сайтов: Наличие установленного AdGuard Home и его неверная настройка в квасе. Проблемы с правилами iptables и с настройками DNS. Сайты, которые не открываются могут находиться в списках блокировщика рекламы. Правда это относится к тем, кто установил его командой kvas ads on и скачал данные из источников. Относительно крайних двух вопросов - завтра выложу бету кваса, в которой эти проблемы решаются и их можно быстро диагностировать по команде kvas debug.
  4. Доброго дня Рад был бы помочь, ни никто видимо не читает предыдущих сообщений в теме, чтобы помочь как минимум самому себе.
  5. Доброго утра, kvas debug "в личку"
  6. Чуть модернизировал скрипт - преобразовал в функцию (все "в одном флаконе"). Однако при работе с включёнными уже vpn интерфейсами (у которых долгое время соединения, например openvpn), приходится ставить на паузу минимум в 2 секунды. Может кто из опыта подскажет, как побороть данный недуг? HOOK_INFACE_FILE=/opt/etc/ndm/ifstatechanged.d/100-get-entware-inface INFACE_NAMES_FILE=/opt/etc/inface_equals URL_REQUEST='localhost:79/rci/interface' # ------------------------------------------------------------------------------------------ # # Получаем список соотвествия имен интерфейсов CLI keenetic = Entware # Список забираем из /opt/etc/inface_equals в формате: # <ID интерфейса в CLI>|<ID интерфейса в entware>|<Описание интерфейса в CLI> # # ------------------------------------------------------------------------------------------ get_interface_name_list(){ # если нет файла по отлавливанию хука if ! [ -f "${HOOK_INFACE_FILE}" ]; then # создаем файл cat <<EOF > "${HOOK_INFACE_FILE}" #!/bin/sh ! [ -f "${INFACE_NAMES_FILE}" ] && touch "${INFACE_NAMES_FILE}" [ -z "\$(grep "\${id}" "${INFACE_NAMES_FILE}")" ] && echo "\${id}|\${system_name}" >> "${INFACE_NAMES_FILE}" exit 0 EOF chmod +x "${HOOK_INFACE_FILE}" fi # обозначаем список типов обрабатываемых интерфейсов types_inface="openvpn|wireguard|ike|sstp|pppoe|l2tp|cdcethernet" # получаем список ID интерфейсов в наличии на роутере через пробел inface_list=$(curl -s "${URL_REQUEST}" \ | grep '"id"' \ | grep -Ei "${types_inface}" \ | cut -d':' -f2 \ | tr -d ' ",' \ | tr '\n' ' '\ ) # проходимся по каждому интерфейсу for inface_entware in ${inface_list}; do # получаем текущее состояние инф-са для возвращения его к исходному состоянию state=$(curl -s "${URL_REQUEST}" \ | grep -i "${inface_entware}" -A7 \ | grep -Ei 'state' \ | cut -d: -f2 | tr -d ' ",'\ ) # в зависимости от состояния - включаем и выключаем или выключаем и включаем интерфейс # для того, чтобы сработал наш хук в файле /opt/etc/ndm/ifstatechanged.d/100-save-inface_entware if [ "${state}" = 'up' ]; then curl -s -d '{"down":"true"}' "${URL_REQUEST}/${inface_entware}" &>/dev/null else curl -s -d '{"up":"true"}' "${URL_REQUEST}/${inface_entware}" &>/dev/null fi # Пауза мин. в 2 сек. для получения результата в соединениях, которые не сразу подключаются (как пример OpenVPN) sleep 2 curl -s -d "{\"${state}\":\"true\"}" "${URL_REQUEST}/${inface_entware}" &>/dev/null # получаем описание интерфейса description=$(curl -s "${URL_REQUEST}" \ | grep '"id"' -A7 \ | grep -i "${inface_entware}" -A4 \ | grep -Ei 'description' \ | cut -d: -f2 | tr -d ' ",' \ | sed 's|\/|\\/|g'\ ) # вставляем описание в файл /opt/etc/infaces_names sed -i 's/\('"${inface_entware}"'.*\)/\1|'"${description}"'/' "${INFACE_NAMES_FILE}" done rm -f "${HOOK_INFACE_FILE}" cat "${INFACE_NAMES_FILE}" }
  7. Доброго дня Новости Минцфиры: Возможно проблема связана именно с этим фактом.
  8. Доброго утра, Нет опыта в этом направлении, но полагаю, что если эта возможность реализуема в скриптах, то проблем нет. У Вас есть ссылка на вариант реализации или на сам алгоритм реализации этого функционала?
  9. Нашел "костыль", нужно просто перегрузить роутер, и все соединения срабатывают и получаем список С другой стороны так же нашел вариант включения хука: curl -s -d '{"up":"true"}' "localhost:79/rci/interface/OpenVPN0" Сам скрипт для получения соответствия интерфейсов через обработку "хука": ~ # cat /opt/etc/ndm/ifstatechanged.d/100-save-inface #!/bin/sh # если файла с именами нет - создаем if ! [ -f /opt/etc/infaces_names ]; then touch /opt/etc/infaces_names; fi # если интефейса еще нет в списке, то добавляем его if [ -z "$(grep "${id}" /opt/etc/infaces_names)" ]; then echo "${id}|${system_name}" >> /opt/etc/infaces_names # пишем в лог, по необходимости logger "${id} -> ${system_name}" fi exit 0 помним про права: chmod +x /opt/etc/ndm/ifstatechanged.d/100-save-inface S.P. Памяти ради, публикую скрипт для получения соответствия интерфейсов без перезагрузки роутера. Он работает в купе со скриптом по обработке "хука" выше: #!/bin/sh # очищаем файл с именами интерфейсов rm /opt/etc/infaces_names # обозначаем список типов обрабатываемых интерфейсов types_inface="openvpn|wireguard|ike|sstp|pppoe|l2tp|cdcethernet" # получаем список ID интерфейсов в наличии на роутере через пробел inface_list=$(curl -s localhost:79/rci/show/interface | grep '"id"' | grep -Ei "${types_inface}" | cut -d':' -f2 | tr -d ' ",' | tr '\n' ' ') # проходимся по каждому интерфейсу for inface in ${inface_list}; do # получаем текущее состояние инф-са для возвращения его к исходному состоянию state=$(curl -s localhost:79/rci/show/interface | grep -i "${inface}" -A7| grep -Ei 'state' | cut -d: -f2 | tr -d ' ",') # в зависимости от состояния - включем и выключаем или выключаем и включаем интерфейс # для того, чтобы сработал наш хук в файле /opt/etc/ndm/ifstatechanged.d/100-save-inface if [ "${state}" = 'up' ]; then curl -s -d '{"down":"true"}' "localhost:79/rci/interface/${inface}" &>/dev/null else curl -s -d '{"up":"true"}' "localhost:79/rci/interface/${inface}" &>/dev/null fi curl -s -d "{\"${state}\":\"true\"}" "localhost:79/rci/interface/${inface}" &>/dev/null # получаем описание интерфейса description=$(curl -s localhost:79/rci/show/interface | grep -i "${inface}" -A3 | grep -Ei 'description' | cut -d: -f2 | tr -d ' ",' | sed 's|\/|\//|g') # вставляем описание в файл /opt/etc/infaces_names sed -i 's/\('"${inface}"'.*\)/\1|'"${description}"'/' /opt/etc/infaces_names done cat /opt/etc/infaces_names На выходе получаем файл /opt/etc/infaces_names в формате: <ID интерфейса в CLI>|<ID интерфейса в entware>|<Описание интерфейса в CLI>
  10. Доброго утра, Благодарю Вас, почти то, что нужно) Остается придумать, как в процессе установки пакета запустить сами хуки для включения интерфейсов или смены их IP, или только вручную? P.S. Пробую curl -s "localhost:79/rci/interface/connect/via/OpenVPN0" - не поднимается и хук не срабатывает. Пробую curl -s "localhost:79/rci/interface/openvpn/connect/via/OpenVPN0" - тоже самое. Как запустить?
  11. Доброго утра, Не пробывал, но возможно поможет эта информация и вот здесь.
  12. Простите, не понял, как Ваш комментарии может помочь в решении вопроса по теме?
  13. Доброго дня, Благодарю Вас, только не совсем Вас понял. Если речь идет о том, чтобы сопоставить mac адреса в обоих вариантах, то это возможно только для openvpn, а как быть с wireguard например?
  14. Доброго дня Указать конечно можно, но теряется смысл установки dnscrypt-proxy2. Конфигурацию можно посмотреть в /opt/etc/dnscrypt-proxy.toml. Тут не совсем понял вопроса по поводу сегментов - прошу уточните пожалуйста, какие именно сегменты и из чего состоят. Попробовал у себя этот же сайт - все добавилось, проблем не наблюдаю, в kvas debug все штатно. Попробуйте запустить обновление еще раз - unblock_update
  15. Доброго всем дня Вышла накладка и был опубликован пакет без реализации выше-указанного изменения. Исправляюсь. Прошу всех обновить пакет по той же ссылке для кого это изменение стоит в приоритете. Прошу прощения за недоразумение.
  16. Всем доброго дня, Прошу людей умудренных опытом подсказать как связать соответствие данных по имеющимся интерфейсам в системе. Для получения данных о текущих VPN (и не только) интерфейсах используем API от keenetic: curl -s "localhost:79/rci/show/interface" Где можем получить данные по ID, типу интерфейса и его названию и пр. В entware получить информацию о текущих интерфейсах можно ip a ifconfig Так вот вопрос возник следующий - как связать эти данные? Как сопоставить названия интерфейсов? Например, как определить автоматически, что название tunl0 соответствует OpenVPN0 и т.п.?
  17. Доброго всем утра, В таком случае, предлагаю проголосовать за данное предложение. Прошу ставить "лайки" данному сообщению, в случае поддержки предложения по созданию страницы в WUI для настроек КВАСА.
  18. Пробуем kvas_0.9-10_all.ipk: Вышли из беты - убрали ряд недочетов в коде, связанных с формой подачи информации. Изменен порядок добавления доменных имен, сейчас, если Вы хотите добавить доменное имя и все его имена выше третьего уровня, то при добавлении ставим звездочку впереди (без точки) : kvas add *domen.com, в этом случае включается режим работы с регулярными выражениями, если добавить, как раньше kvas add domen.com, то режим wildcard не включится. Исправление недочетов с импортом и экспортом доменных имен.
  19. Доброго дня, Судя по всему мы с Вами о разной памяти ведем речь. Как я понял, Вы устанавливали opkg на встроенную память, а не на флешку? И как понимаю у Вас нет USB хаба?
  20. Доброго дня, Не имею опыта работы с 3.8 Бета, работаю только на стабильной ветке. А какие возникли проблемы с работой пакета, кроме выше указанной на 3.8?
  21. Доброго утра, Вы устанавливали на Giga и не поместилось в память? В чем это проявилось? Вы ничего не путаете?
  22. Доброго дня Конечно можно, все достижимо. Надо ли?
  23. Доброго утра всем, Тогда полагаю, что отказываться от dnsmasq пока рано.)
×
×
  • Create New...