Jump to content

Александр Рыжов

Moderators
  • Posts

    1,215
  • Joined

  • Last visited

  • Days Won

    25

Everything posted by Александр Рыжов

  1. Проверил тестовую сборку, уже терпимо. Не dnsmasq, конечно, и не dncsrypt-proxy v1, но жить можно. ~ # pmap -d `pidof dnsmasq` | grep mapped mapped: 4920K writeable/private: 2348K shared: 0K ~ # pmap -d `pidof dnscrypt-proxy` | grep mapped mapped: 4088K writeable/private: 344K shared: 0K ~ # pmap -d `pidof dnscrypt-proxy2` | grep mapped mapped: 665516K writeable/private: 19284K shared: 0K ЗЫ Среди новых Кинетиков с USB портом нет девайсов с <128MB RAM, так что ОК.
  2. @GarikH, а вот здесь уже вы можете озадачить роутер по прямому назначению.
  3. dnscrypt-proxy второй версии переписан на GO и стал требовать непомерных для embedded-устройств ресурсов. А жаль, потому что в нём появилась поддержка DoH. DNSsec на роутере — откровенный overkill. В этих условиях действительно видится выходом использование клиентов и серверов, удовлетворяющих драфту соответствующего RFC. Только боюсь, что нужно это будет полутора юзерам, вроде нас. Кроме этого, даже при использовании stubby из Entware, будет невозможно совмещать возможности прошивочного резолвера и установленного пакета без дурных кульбитов с iptables.
  4. Offtop: Что может сравниться с https://flibusta.is/opds ?:)
  5. Качать торренты на сетевой диск неоправданно совсем. Посмотрите этот способ установки торрент-клиента прямо на MBL.
  6. Чистые IPSec-туннели — это policy-based сущности, они не имеют какого-либо отдельного интерфейса, как другие VPN-соединения.
  7. Прошу добавить в книгу добрых дел возможность задания SRV/PTR/TXT--записей в прошивочную DNS-службу. В первую очередь это облегчает autodiscovery сетевых служб, находящихся в сети. К примеру, Apple-клиенты (в т.ч. мобильные) смогут определять Airprint или Airplay, Windows-клиенты — возможность сетевой печати, наличия домена или служб активации.
  8. Скорее надо создавать issue для проекта busybox. Если не лень, то можете проверить полноценную утилиту из пакета coreutils-df.
  9. Переподключение к интернету, если получен серый IP В некоторых регионах Ростелеком иногда выдаёт серый IP-адрес, что может в ряде случаев вас не устраивать. Можно решить эту проблему не прибегая к установке Entware силами Zapier'а, который в отличие от IFTTT настраивается более гибко. В частности, между блоками «триггер» и «действие» можно вставлять собственные фильтры. В отличие от предыдущих примеров, где роутер лишь воспринимал воздействие от внешнего сервиса, в этом роутер будет выступать и источником события и приёмником события. Перед началом работы с сервисом присвойте роутеру доменное имя, оканчивающееся на keenetic.link или keenetic.pro и разрешите доступ к роутеру по HTTP через облако. Далее привожу по шагам создание необходимого Zap'а, номера скриншотов под катом соответвуют пунктам списка: После регистрации на сервисе создайте новый Zap и выберите в качестве триггера Webhooks by Zapier, действие Catch Hook и нажмите «Continue», На следующем экране введите имя единственного поля, значение которого будет нас интересовать — «ip» и нажмите «Continue», Скопируйте в буфер обмена или текстовой файл предложенный URL вида https://hooks.zapier.com/hooks/catch/3453280/оерdfc/ , при обращении к которому будет срабатывать рецепт, затем нажмите кн. «Ok, I did it», На следующем шаге сервис будет ждать пока вы не протестируете этот URL, просто вставьте его в адресную строку новой вкладки вашего браузера, допишите в конце URL'а «?ip=123» и нажмите Enter. Появится сообщение о том, что URL успешно протестирован и станет доступна кн.«Continue», Добавьте фильтр, нажав «+» на диаграмме рецепта и выбрав «filter», Выберите тип фильтра only if continue, затем «Save+Continue», Задайте параметры фильтра, выбрав из выпадающего списка Querystring ip, условие Text starts with и впишите в оставшееся поле значение «100.». Если серые адреса вашего провайдера отличаются от 100.x.y.z, то впишите подходящее значение. Далее нажимайте «Test&Continue». Вы получите сообщение о том, что тестовый вызов URL не содержал искомое значение (в примере выше в свободной вкладке мы дописывали ip=123, так и должно быть), просто нажимайте «Continue», Будет предложено выбрать приложение-действие, выбирайте снова Webhooks by Zapier и вариант Custom Request, Заполните детали запроса, в частности: — Method: Post, — URL: https://rci.giga.keenetic.pro/rci/ , — Data: [{"interface":{"ISP":{"up":{"no":true}}}},{"interface":{"ISP":{"up":{"no":false}}}}] — Basic Auth: rci|rcipassword, г — Headers: пара значений Content-Type и application/json В следующем окне будет возможность проверить правильность введённых параметров, нажмите «Send Test to Webhooks by Zapier» Если всё сделали правильно, то сервис сможет подключиться к роутеру и выполнить разовое переподключение к интернету. Будет выдано сообщение об успешном выполнении запроса и кнопка «Finish». На последнем шаге будет предложено присвоить имя для созданного рецепта. Вернитесь в веб-интерфейс роутера и на вкладке Доменное имя > DDNS выберите «Сервис: Другой» и вставьте в поле «Адрес сервиса» значение https://hooks.zapier.com/hooks/catch/3453280/оерdfc/?ip=${ip} , это тот URL, что вы копировали в буфер обмена или текстовой файл при создании рецепта. К концу сохранённого URL надо самостоятельно дописать хвост «?ip=${ip}» по образцу. Всё! Контролировать работу рецепта можно вкладки Task History. В ней будет видно какие IP-адреса кинетик сообщал сервису и отвечал ли сервис кинетику, если адрес был серым. В случае, если от провайдера был получен серый IP, Zapier скомандует роутеру переподключиться к интернету. Ограничений на число переподключений здесь нет, а через некоторое время Zapier захочет денег. Пожалуйста это учтите.
  10. Немного не так. Оно на писано на C# с использованием .NET Core platform. Но даже если я портирую mono для запуска такого приложения, то летать оно будет низенько-низенько. Или вообще никак.
  11. Отключение вайфая, когда ухожу из дома Для этого рецепта используется геолокация в смартфоне, так что придётся установить приложение IFTTT, проверял работу только для Android Создайте новый аплет, выбрав в качестве блока «THIS» сервис Location, триггер «You enter an area», В параметрах триггера укажите на карте точку, где работает ваш кинетик и радиус территории, при покидании которой вайфай будет выключаться В качестве «that» выберите сервис Webhooks, выберите его единственное действие «Make a web request». Параметры действия следующие: • URL: https://rci:rcipassword@rci.giga.keenetic.pro/rci/ , • Method: POST • Content type: application/json • Body: [{"interface":{"WifiMaster0/AccessPoint0":{"up":{"no":true} } } },{"interface":{"WifiMaster1/AccessPoint0":{"up":{"no":true} } } }] Пример Body приведён для двух диапазонного роутера, у кого диапазон один, Body будет выглядить как [{"interface":{"WifiMaster0/AccessPoint0":{"up":{"no":false} } } }] Нажмите «finish» Готово! Для включения вайфая по возвращению домой надо будет создать аналогичный рецепт, триггером которого будет ваше вхождение в зону действия роутера, а команда на включение (поле Body в web request): {"interface":{"WifiMaster0/AccessPoint0":{"up":{"no":false} } } },{"interface":{"WifiMaster1/AccessPoint0":{"up":{"no":false} } } }]
  12. Обновление прошивки после публикации changelog'а на этом форуме В соседней теме тов. @ndm публикует изменения, вошедшие в прошивку 2.12. Роутер новую прошивку получает, но для того, чтобы изменения вступили в силу, его надо перегрузить. Отслеживать изменения веб-страниц IFTTT не умеет, однако есть способ превратить тему форума в RSS-поток, с которым он работать может. Создайте новый аплет, выбрав в качестве блока «THIS» сервис RSS feed, выберите триггер «New feed item matches», Параметры триггера: • Keyword or simple phrase: 2.12 • Feed URL: http://feed43.com/5528146701453366.xml В качестве «that» выберите сервис Webhooks, выберите его единственное действие «Make a web request». Параметры действия следующие: • URL: https://rci:rcipassword@rci.giga.keenetic.pro/rci/components/commit , • Method: POST • Content type: application/json • Body: {} Нажмите «finish» Готово!
  13. Переход на резервный канал с помощью Telegram Создайте новый апплет, выбрав в качестве «this» сервис Telegram, триггер «New message with key phrase to @IFTTT». В качестве ключевой фразы «выключи основной канал», в шаблоне ответа «готово!» после чего нажмите «create trigger». В качестве «that» выберите сервис Webhooks, выберите его единственное действие «Make a web request». Параметры действия следующие: • URL: https://rci:rcipassword@rci.giga.keenetic.pro/rci/ , • Method: POST • Content type: application/json • Body: [{"interface":{"ISP":{"up":{"no":true} } } }] Нажмите «finish» Цифры в списке выше соответвуют шагам создания апплета на сайте IFTTT, соответствующие скриншоты по номерам прикреплены ко вложению. Для перехода обратно с резервного на основной канал придётся создать аналогичный рецепт, изменив только ключевую фразу, которую вы будете посылать телеграм-боту IFTTT на «включи основной канал», а параметр Body запроса на [{"interface":{"ISP":{"up":{"no":false} } } }]
  14. Для пользователей кинетиков звёзды сошлись удачно: набор применяемых в роутере технологий прямо явно намекает на то, что управление роутером может быть автоматизировано. Здесь как раз к месту будет сервис IFTTT.com, позволяющий создавать рецепты из готовых блоков «IF» (событие), «THEN» (действие). За шесть лет развития число доступных блоков перевалило за 500, а число пользовательских рецептов за 20 млн. Пока роутер мало что может предложить для блока «IF», но вот рулить роутером можно в полный рост, т.к. есть весь необходимый набор технологий: Можно организовать удалённый доступ к роутеру по доменному имени даже за серым IP, чуть ниже описано как это сделать, Есть универсальный RESTful интерфейс, позволяющий выполнять любые доступные команды простым POST HTTP-запросом. Если лень копаться в документации, то нужный запрос можно подсмотреть в режиме разработчкика, нажав при открытом веб-интерфейсе в браузере F12. Есть basic-авторизация, позволяющая защитить веб-интерфейс от непрошенных вмешательств. На IFTTT в качестве действия «THEN» надо будет выбрать сервис Webhooks, умеющий отправлять POST-запросы кинетику в JSON-формате, что нам, собственно и требуется для управления. Чтобы организовать удалённый доступ к роутеру из интернета, для прошивок 2.12.B.0.0-1 и позже необходимо: Завести доменное имя KeenDNS, например giga.keenetic.pro, Ниже в разделе «Доступ к веб-приложениям домашней сети» назначить доменное имя четвёртого уровня, например, rci.giga.keeneitc.pro с параметрами «Этот интернет центр», порт TCP79, галка «разрешить доступ». Таким образом, обращения на rci.giga.keeneitc.pro начнут проксироваться на REST API 127.0.0.1:79, где авторизации нет. Включить авторизацию для этого проксирования из CLI: ip http proxy rci auth Завести в WebUI пользователя (например rci), присвоить ему пароль (например, rcipassword) и тэг «HTTP Proxy», Получить SSL-сертификат для домена rci.giga.keeneitc.pro, в дальнейшем он будет обновляться прошивкой автомагически: ip http ssl acme get rci.giga.keenetic.pro Всё. Теперь можно вызывать REST API как и раньше, обращаясь на адрес: https://rci:rcipassword@rci.giga.keenetic.pro/rci/ В конфиге должно получиться что-то похожее на user rci password md5 94b8062cc4e362d45872b22a7c38ede2 password nt 0384e45875e61d6f7d50d934587d1ab1e7 tag http-proxy ! ... ip http proxy rci upstream http 127.0.0.1 79 domain ndns allow public ! ... Эти шаги необходимы для реализации любого из решений, описанных далее.
  15. Так это разовая работа, с которой большой брат справится на порядок быстрее.
  16. Последний раз я такую просьбу слышал лет пять назад или раньше. Зачем, если не секрет?
  17. Да. Нужно лишь завести IPv6 ipset'ы и сделать аналогичные шаги как и для IPv4. Можно, но при рабочим IPv6 не стоило бы. Да.
  18. DNS-O-Matic provides you a free and easy way to announce your dynamic IP changes to multiple services with a single update. Using DNS-O-Matic allows you to pick and choose what Dynamic DNS services you want to notify, all from one easy to use interface. This is helpful if Keenetic does not support your Dynamic DNS provider directly. Create a DNS-O-Matic account Configure it to start sending the updates with your preferred Dynamic DNS provider In the Keenetic Web interface, open Domain Name » DDNS and configure a custom profile: Service: Another DDNS service provider URL: https://updates.dnsomatic.com/nic/update Domain name: (DDNS domain name that is configured in DNS-O-Matic, such as example.ddns.net) User name: (DNS-O-Matic user name) Password: (DNS-O-Matic password) Automatically detect my IP address: uncheck For connections: select your connection Click "Save". Check that your current IP address is shown in https://dnsomatic.com/ account status.
  19. There is a quick and easy solution to deploy traffic accounting on your Keenetic. The external USB storage is required. The same storage can be used for the other Keenetic applications at the same time. What is darkstat Darkstat is a traffic accounting software that allows you to monitor the activity of all network hosts in your home network. How to install Create the "install" directory on a USB drive, and put the attached file in there Make sure you have installed the Open Package support Connect the USB drive to the Keenetic Enable OPKG, select your USB drive and save settings. How to use Open http://my.keenetic.net:667 in your browser. How to remove Unmount your USB disk from the Applications menu Remove "etc" and "bin" directories darkstat_mipsel.tgz
  20. How to remove ads from web pages and Android apps. Before: After: Installation Install necessary packages: opkg install dnsmasq-full iptables ndmq Create a netfilter hook /opt/etc/ndm/netfilter.d/010-intercept-dns.sh: #!/bin/sh [ "$table" != "nat" ] && exit 0 lan_ip=$(ndmq -p 'show interface Bridge0' -P address) iptables -t nat -I PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination $lan_ip:65053 iptables -t nat -I PREROUTING -p tcp -m tcp --dport 53 -j DNAT --to-destination $lan_ip:65053 Make it executable: chmod +x /opt/etc/ndm/netfilter.d/010-intercept-dns.sh Add the following lines to the /opt/etc/dnsmasq.conf: no-resolv server=77.88.8.88#1253 server=77.88.8.2#1253 port=65053 Download your favorite blacklist to /opt/etc/hosts. For example: wget -O /opt/etc/hosts http://winhelp2002.mvps.org/hosts.txt Done! Reboot your router for the changes to take effect. Troubleshooting Make sure you have not configured custom DNS servers in the Internet Connection properties. Flush your operating system DNS cache (in Windows — ipconfig /flushdns) Close and open your web browser. Notes
  21. Chat with your Keenetic CLI via Telegram like a pro!:) Install necessary Entware packages: opkg install bash curl dtach Download the bash-script, which serving as Telegram bot: curl --output /opt/bin/bashbot.sh --insecure https://raw.githubusercontent.com/ryzhovau/telegram-bot-bash/master/opt/bin/bashbot.sh curl --output /opt/bin/JSON.sh --insecure https://raw.githubusercontent.com/ryzhovau/telegram-bot-bash/master/opt/bin/JSON.sh curl --output /opt/etc/init.d/S51bashbot --insecure https://raw.githubusercontent.com/ryzhovau/telegram-bot-bash/master/opt/etc/init.d/S51bashbot chmod +x /opt/bin/bashbot.sh chmod +x /opt/bin/JSON.sh chmod +x /opt/etc/init.d/S51bashbot Ask @BotFather to create a new boot and remember auth token for it. Write down this token to TOKEN='' string at /opt/bin/bashbot.sh. Replace following string in /opt/bin/bashbot.sh *) msg="$MESSAGE";; to *) msg=$(ndmq -p "$MESSAGE" -x);; Start bot buy typing /opt/etc/init.d/S51bashbot start. This bot will start automatically on every boot. Please, keep in mind security question like authorisation, which is outside of this How-To. This is just proof-of-concept, which you can edit for your needs. Bot log can be found at /opt/var/log/bashbot.log.
  22. You may use Debian 8.11 "Jessie" , Debian 9.13 "Stretch" , Debian 10.13 "Buster" , Debian 11.9 "Bullseye" or Debian 12.5 "Bookworm" right on your Keenetic router. http://files.keenopt.ru/ is a good example of working Debian on Keenetic Giga III. ! Dropping mips architecture ! Debian 12.3 image release delayed Requirements USB-port on router, Ext2/Ext3/Ext4 formatted flash drive or HDD. You may use EaseUS Partition Master free on Windows to format USB drive. Installation Connect USB drive and get access to it via FTP or SAMBA, Make install folder on USB drive, Put debian-jessie-8_11-mipsel.tar.gz or debian-stretch-9_13-mipsel.tar.gz or debian-buster-10.13-mipsel.tar.gz or debian-bullseye-11.9-mipsel.tar.gz or debian-bookworm-12.5-mipsel.tar.gz file to Install folder, ( for KN-2011 or KN-2111 - debian-jessie-8_11-mips.tar.gz or debian-stretch-9_13-mips.tar.gz or debian-buster-10.13-mips.tar.gz ), ( for KN-2710 - debian-buster-10.13-aarch64.tar.gz or debian-bullseye-11.9-aarch64.tar.gz or debian-bookworm-12.5-aarch64.tar.gz) Open OPKG page, pick your USB drive and hit "Apply". Give your Keenetic a couple of minutes to unpack necessary files, you''ll see following syslog messages if all went fine: [I] Jul 19 13:24:28 ndm: Opkg::Manager: disk is set to: fb4e34d1-3cab-fd19-b96d-4bb3a2d5ec84: [I] Jul 19 13:24:28 ndm: Opkg::Manager: init script reset to default: /opt/etc/initrc. [I] Jul 19 13:24:28 ndm: kernel: EXT4-fs (sda1): re-mounted. Opts: (null) [I] Jul 19 13:24:28 ndm: Opkg::Manager: /tmp/mnt/FIT8GB/ mounted to /tmp/mnt/FIT8GB/. [I] Jul 19 13:24:28 ndm: Opkg::Manager: /tmp/mnt/FIT8GB/ mounted to /opt/. [I] Jul 19 13:24:28 npkg: inflating "debian-keenetic.tar.gz". [I] Jul 19 13:24:28 ndm: Core::ConfigurationSaver: saving configuration... [I] Jul 19 13:26:10 ndm: Opkg::Manager: /tmp/mnt/FIT8GB/ initialized. [I] Jul 19 13:26:10 ndm: Core::ConfigurationSaver: configuration saved. [I] Jul 19 10:26:10 root: Starting Debian services... [W] Jul 19 13:26:11 ndm: kernel: Algorithmics/MIPS FPU Emulator v1.5 [I] Jul 19 13:26:11 ndm: Opkg::Manager: /opt/etc/initrc: Starting OpenBSD Secure Shell server: sshd. [I] Jul 19 13:26:11 ndm: Opkg::Manager: /opt/etc/initrc: Done. [I] Jul 19 10:26:11 sshd[448]: Server listening on 0.0.0.0 port 22. [I] Jul 19 10:26:11 sshd[448]: Server listening on :: port 22. Using Debian Use following SSH credentials to get access to Debian environment: host: my.keenetic.net, port: 222 user name: root, password: debian. This is it, you've got 10000+ available packages from one of greatest linux community! For 64MB RAM devices is highly recommended to turn on Swap-file. Details You see chroot-environment after SSH logon, there's only minimal Busubox outside of it and /opt/etc/initrc script to fire up sandbox, this script starts necessary Debian services on boot and gracefully shut them down on reboot or unmount USB drive: [I] Jul 19 10:28:36 root: Stopping Debian services... [I] Jul 19 10:28:36 sshd[448]: Received signal 15; terminating. [I] Jul 19 13:28:36 ndm: Opkg::Manager: /opt/etc/initrc: Stopping OpenBSD Secure Shell server: sshd. [I] Jul 19 13:28:36 ndm: Opkg::Manager: /opt/etc/initrc: Done. [I] Jul 19 13:28:36 ndm: Opkg::Manager: disk unmounted. Also, you'll find /chroot-services.list file, where you can put new services which should be started on boot, please use one name per string, service names can be taken from /etc/init.d. Good luck!
×
×
  • Create New...