Jump to content

Zeleza

Forum Members
  • Posts

    41
  • Joined

  • Last visited

Everything posted by Zeleza

  1. Продукт действительно выпускается под лицензией, однако исходники есть в открытом доступе. Вот выписка из лицензионного соглашения: Может кто знакомый с юридическими терминами может мне перевести на русский язык, что означает пункт 3.4? О каких правах авторского права идет речь и можно ли менять код продукта по своему усмотрению?
  2. Привет всем, Нашел в сети вот такой вот вариант доработанного Asterisk с очень приличным "web лицом". Сейчас называется MIKOPBX, ранее был известен под названием Askozia. Работает из коробки. Появилась идея запустить его на keenetic. Подскажите люди добрые, возможно ли это и если да, то как собрать данный дистрибутив под keenetic, чтобы запускался, как Asterisk под keenetic, с отдельного USB-стика или может уже есть подобные сборки?
  3. Уважаемые гуру Прошу поделиться Вашим опытом. Являюсь полным новичоком в сборке пакетов и хочу решить следующую задачу: - собрать пакет ipk для кинетика, который состоит ТОЛЬКО из набора различных bash скриптов и дополнительных файлов (конфиги, текстовые данные). Подскажите пожалуйста, куда копать? Собирать все так же как описано на первой странице этого топика?
  4. Может кому пригодится: #-------------------------------------------------------------------------------------------------- # # Функция проверяет подключен ли модуль 'Keenetic Plus DECT' # к устройству и функционален ли он в полном объеме? # Возвращает 0 - в случае, если все Ок и # -1, если - нет # #-------------------------------------------------------------------------------------------------- function is_dect_ok(){ local result=-1 local dect_state_text='DECT service is running' local dect_online local dect_online_text=online local cli_command='show nvox status' local data_tree='//response/status' dect_online=$(ndmq -p "$cli_command" -P status/details | grep "$dect_online_text" | cut -d'=' -f5) dect_state=$(ndmq -p "$cli_command" -P status/state) # Проверяем модуль подключен ли к сети [[ "$dect_online" == "$dect_online_text" ]] && dect_online=0 # Проверяем ли запущен ли сервис [[ "$dect_state" == "$dect_state_text" ]] && dect_state=0 # Подводим общий итог [[ $dect_online -eq 0 && $dect_state -eq 0 ]] && result=0 echo "$result" }
  5. @Le ecureuil Премного Вам благодарен. Однако в документации по CLI не нашел данной команды. Смотрел в этой доке по CLI. Это то, что нужно, еще раз благодарю Вас. )
  6. Единственное что приходит на ум, если в CLI действительно нет команд на эту тему, это проверять на наличие error в текстах системного лога: usb_code=$(dmesg | grep 'Keenetic Plus DECT' | cut -d':' -f1 | tail -1) dmesg | grep "$usb_code" | grep error Гуру подскажите пожалуйста, в том ли направлении двигаюсь?
  7. Про цифру ответ нашел - он не совсем очевиден оказался при представленной Вами последовательности. Правильный вариант был бы следующим: lsof -p $(pgrep nvox)
  8. @vasek00 Благодарю Вас. Напомните пожалуйста, где лежит конфигурации файл? Только не получается по lsusb получить результат как у Вас. Мой вариант вывода: bash-5.1# lsusb Bus 002 Device 002: ID 174c:ХХХХ Bus 001 Device 001: ID 1d6b:ХХХХ Bus 002 Device 001: ID 1d6b:ХХХХ Bus 001 Device 003: ID 0586:ХХХХ Команда ниже не понятна. lsof -p 1695 Откуда появилась данная цифра? Поясните пожалуйста. В любом случае, даже при полной работоспособности этих команд, как определить, что модуль в порядке и работоспособен?
  9. Друзья, доброго всем дня Будет ли у Вас возможность помочь мне с вопросом обозначенным в теме - речь идет о том, чтобы такая возможность была обеспечена посредством команд CLI или entware? Из доступных вариантов вижу только вариант с проверкой системного лога и списка запущенных процессов, не уверен, что это на 100% гарантирует ответ на вопрос "подключен ли модуль DECT к роутеру" и функционирует ли он полностью? dmesg | grep 'Keenetic Plus DECT' ps | grep nvox | tail -1 Может будут другие варианты? В CLI ничего на эту тему не смог найти, как и на самом форуме. Возможно плохо искал. Если будет возможность дайте пожалуйста ссылку на источник, если сможете найти ответ на этот вопрос в полном объеме.
  10. AdGuardHome 106.3 при всех включенных в настройках опций "безопасной навигации" и "родительского контроля" Полет пока нормальный. Видимо, что-то улучшили.
  11. Благодарю Вас. Похоже Вы правы.
  12. Версия AdGuard Home v0.106.2 все те же "тормоза" - сильно тормозит работу роутера.
  13. Здравствуйте, Подскажите пожалуйста, указанные Вами сайты открываются ли нет? Судя по логу - у Вас все работает корректно.
  14. Здравствуйте, Возможно ошибка кроется здесь: IF_TYPE=Wireguard1 (файл /opt/etc/ndm/ifstatechanged.d/100-add_antizapret_route.sh), правильно будет указывать просто тип туннеля без его идентификатора (номера). Другими словами необходимо написать IF_TYPE=Wireguard, вместо IF_TYPE=Wireguard1
  15. Ошибка , скорее всего, кроется здесь: ovpn_br0 Link encap:Ethernet HWaddr 06:CF:D6:FA:8C:62 inet addr:10.8.0.2 Bcast:10.8.0.255 Mask:255.255.255.0 IP_ROUTE=10.8.0.1 INFACE=ovpn_br0 ifconfig показывает другой getway, отличный от указанного Вами. Необходимо прописать IP_ROUTE=10.8.0.2, вместо IP_ROUTE=10.8.0.1 Но это лишь предположение, возможно ошибка кроется еще в чем то.
  16. Здравствуйте, Смею предположить, что не в ту сторону я Вас направил. Подскажите, мне мил человек, остальные сайты из Вашего списка - открываются хорошо? Только этот сайт - rutracer, у Вас вызывает сложности с его открытием или это единственный сайт в Вашем списке разблокировки? В случае, если остальные сайты открываются без проблем, то код ниже должен решить Вашу проблему. Решение оказывается было на поверхности, и в предыдущем коде оно было, только по невнимательности пропустил его. Теперь нет необходимости использовать и dig и lookup одновременно, просто ждем в цикле результата от dig, пока его не получим . Тогда полный код файла /opt/bin/unblock_vpn.sh, будет выглядеть следующим образом #!/bin/sh sep="-----------------------------------------------------" log_mess="================== UNBLOCK SERVICE ==================" echo $log_mess DNS= IP_ROUTE="$(ip rule list | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')" INFACE="$(ifconfig | grep "$IP_ROUTE" -B1 | head -1 |cut -d " " -f1)" cut_local() { grep -vE 'localhost|^0\.|^127\.|^10\.|^172\.16\.|^192\.168\.|^::|^fc..:|^fd..:|^fe..:' } function get_ip(){ local host=$1 until address="$(dig A +short $host @localhost -p 53 | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | cut_local )" \ && [ -n "$address" ] > /dev/null 2>&1; do sleep 5; done echo "$address" } log_mess="Interface is $INFACE and gateway is $IP_ROUTE" echo $log_mess echo $sep ip route flush table 1000 while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue cidr=$(echo $line | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}') if [ -n "$cidr" ]; then ip route add table 1000 $cidr via "$IP_ROUTE" dev "$INFACE" 2>/dev/null log_mess="Add $cidr NET to static route to unblock" echo $log_mess logger $log_mess continue fi addr=$(echo $line | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}') [[ -z "$address" ]] && address="$(get_ip "$line")" if [ -n "$addr" ]; then for ip_host in $addr do ip route add table 1000 $ip_host via "$IP_ROUTE" dev "$INFACE" 2>/dev/null log_mess="Add $ip_host HOST to static route to unblock $line site" echo $log_mess logger $log_mess continue done fi done < /opt/etc/unblock-vpn.txt echo $sep log="$(ip route show table 1000 | wc -l) ips added to route table 1000" echo $log logger $log log_mess="=====================================================" echo $log_mess
  17. Доброго дня Пришлите пожалуйста вывод этих команд IF_TYPE=Wireguard NFACE="$(ndmq -p 'show interface' -x | grep "$IF_TYPE*" -A5 | grep "<link>up" -B1 | head -1 |cut -d">" -f2 | cut -d"<" -f1)" echo "IF_TYPE=$IF_TYPE" echo "NFACE=$NFACE"
  18. Доброго дня Что выдают команды ? ip rule list ip route show route ip route show table 1000
  19. Благодарю Вас. Этот вариант хорош, когда есть только один тунель. У меня их два, но ТОЛЬКО из них один "поднятый". Потому приходится городить огород )) С другой стороны наверное лучше всего оставить один из них и второй удалить (мне был необходим для тестов по скорости ) Тогда все вопросы уйдут и код упроститься. Пожалуй так и сделаю. В unblock_vpn.sh решил использовать оба варианта при поиске IP адресов для сайтов - сначала быстрый с dig и если неудача, то тогда с nslookup. 100-add_unblock_route.sh unblock_vpn.sh
  20. Благодарю Вас. То что нужно). Доработанный скрипт ниже. Полностью на автомате сделать не получилось, так как скрипту нужно понимать с каким именно типом туннеля имеем дело, потому выбираем необходимый тип туннеля в переменной IF_TYPE, а остальные варианты комментируем. Доработанный скрипт /opt/etc/ndm/ifstatechanged.d/100-add_antizapret_route.sh #!/bin/sh IF_TYPE=OpenVPN #IF_TYPE=VPNL2TP #IF_TYPE=IKE #IF_TYPE=Wireguard NFACE="$(ndmq -p 'show interface' -x | grep "$IF_TYPE*" -A5 | grep "<link>up" -B1 | head -1 |cut -d">" -f2 | cut -d"<" -f1)" [ "$1" == "hook" ] || exit 0 [ "$change" == "link" ] || exit 0 [ "$id" == "$NFACE" ] || exit 0 case ${id}-${change}-${connected}-${link}-${up} in "$NFACE"-link-no-down-down) ip route flush table 1000 ip rule del iif br0 table 1000 priority 1777 2>/dev/null ;; "$NFACE"-link-yes-up-up) ip rule add iif br0 table 1000 priority 1777 2>/dev/null /opt/bin/unblock_vpn.sh & ;; esac exit 0 Так же, привожу здесь чуть доработанный /opt/bin/unblock_vpn.sh, вариант с использованием dig (он все же побыстрее работает) #!/bin/sh sep="-----------------------------------------------------" log_mess="================== UNBLOCK SERVICE ==================" echo $log_mess DNS= IP_ROUTE="$(ip rule list | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')" INFACE="$(ifconfig | grep "$IP_ROUTE" -B1 | head -1 |cut -d " " -f1)" cut_local() { grep -vE 'localhost|^0\.|^127\.|^10\.|^172\.16\.|^192\.168\.|^::|^fc..:|^fd..:|^fe..:' } log_mess="Interface is $INFACE and gateway is $IP_ROUTE" echo $log_mess echo $sep until ADDRS=$(dig +short google.com @localhost -p 53) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done ip route flush table 1000 while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue cidr=$(echo $line | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}') if [ ! -z "$cidr" ]; then ip route add table 1000 $cidr via "$IP_ROUTE" dev "$INFACE" 2>/dev/null log_mess="Add $cidr NET to static route to unblock" echo $log_mess logger $log_mess continue fi addr=$(echo $line | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}') if [ -z "$addr" ]; then addr=$(dig A +short $line @localhost -p 53 | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | cut_local ) fi if [ ! -z "$addr" ]; then for ip_host in $addr do ip route add table 1000 $ip_host via "$IP_ROUTE" dev "$INFACE" 2>/dev/null log_mess="Add $ip_host HOST to static route to unblock $line site" echo $log_mess logger $log_mess continue done fi done < /opt/etc/unblock-vpn.txt echo $sep log="$(ip route show table 1000 | wc -l) ips added to route table 1000" echo $log logger $log log_mess="=====================================================" echo $log_mess
  21. Все здравствуйте) Во первых, позвольте поблагодарить авторов за труды - очень полезные скрипты в наше время. Благодарю Вас. Теперь, пару слов о собственном опыте установки данных скриптов. Основные затруднения были вызваны тем, что не было понимания какой конкретно адрес шлюза вставлять необходимо и какое название интерфейса вписывать. Задача моя тем более усложнялась, что я выбрал вариант туннеля c IKEV2. Так же, проблема возникала при добавлении "хостов" или имен сайтов в файл /opt/etc/unblock-vpn.txt - их адреса просто не добавлялись в таблицу 1000 (возможно я что-то делал не так). Ниже привожу немного усовершенствованный скрипт /opt/bin/unblock_vpn.sh, созданный исключительно на основе двух предыдущих (еще раз благодарность авторам) Усовершенствования следующие: Автоматическая подстановка адреса шлюза и названия интерфейса туннеля (нет необходимости в ручную что-либо подставлять). Вывод дополнительной отладочной информации в консоль и в файл лога самого устройства В файл /opt/etc/unblock-vpn.txt можно добавлять IP адреса, например 37.252.15.56 (было ранее) Целые сегменты сети, например 91.108.16.0/22 (было ранее) Имена хостов/сайтов, например kinogo.by (ранее не всегда в таблицу прописывались их адреса). Ограничения скрипта следующие: Подстановка IP адреса шлюза и названия интерфейса туннеля будут работать корректно ТОЛЬКО в случае, если было поднято не более одного VPN туннеля, адрес, которого отображается при исполнении команды ip rule list Сам скрипт исполняется с небольшой задержкой из-за возврата к предыдущему варианту поиска IP адресов для названия сайтов при помощи команды nslookup, вместо dig. В связи с использованием команды nslookup иногда у меня появлялась ошибка "nslookup: can't resolve 'XXXX.XX': Temporary failure in name resolution". Лечил перезагрузкой устройства. Доработанный код скрипта /opt/bin/unblock_vpn.sh: #!/bin/sh log_mess="========== The route table 1000 is being filled in ============" echo $log_mess IP_ROUTE="$(ip rule list | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')" INFACE="$(ifconfig | grep "$IP_ROUTE" -B1 | head -1 |cut -d " " -f1)" log_mess="Interface is $INFACE and gateway is $IP_ROUTE" echo $log_mess until ADDRS=$(dig +short google.com @localhost -p 53) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done ip route flush table 1000 while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue cidr=$(echo $line | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}/[0-9]{1,2}') if [ ! -z "$cidr" ]; then ip route add table 1000 $cidr via "$IP_ROUTE" dev "$INFACE" 2>/dev/null log_mess="Add $cidr NET to static route to unblock" echo $log_mess logger $log_mess continue fi addr=$(echo $line | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}') if [ -z "$addr" ]; then addr=$(nslookup "$line" | grep -Ev 127.0.0.1 | awk '/Addr/ {print $3}' | grep -Ev ":" ) fi if [ ! -z "$addr" ]; then for ip_host in $addr do ip route add table 1000 $ip_host via "$IP_ROUTE" dev "$INFACE" 2>/dev/null log_mess="Add $ip_host HOST to static route to unblock $line site" echo $log_mess logger $log_mess continue done fi done < /opt/etc/unblock-vpn.txt echo "---------------------------------------------------" log="$(ip route show table 1000 | wc -l) ips added to route table 1000" echo $log logger $log log_mess="========== The route table is filled in ============" echo $log_mess Скрипт /opt/etc/ndm/ifstatechanged.d/100-add_antizapret_route.sh не менял, так как не ведаю пока, как автоматом получить название интерфейса туннеля из CLI в Entware. Если такая возможность существует - прошу знающих людей поделиться. Возможно есть и иные варианты.
×
×
  • Create New...