Dorik1972

Forum Members
  • Content count

    69
  • Joined

  • Last visited

  • Days Won

    1

Dorik1972 last won the day on February 15

Dorik1972 had the most liked content!

Community Reputation

36 Excellent

2 Followers

About Dorik1972

  • Rank
    Advanced Member

Converted

  • Location
    Киев

Equipment

  • Keenetic
    Extra, Giga II, Ultra II
  1. Можно и кнопкой )) А можно и по tftpd ему "впихнуть" прошивку для надеги .... НО! Комарады опосля сброса в "заводские" и пернастройки с "нуля" kernel panic больше не ловил ... Зато в 100% случаев из 100 поймал другую неприятность связанную с использованием сервиса DDNS. Трабла наблюдается только на Ultra II и только на текущей "крайней" 2.10.А.3 . Итак : 1) На страничке web-интефейса "Интернет"=>"DDNS" - заполняем свои учетные данные (я и спользую www.noip.com) 2) На страничке "Система"=>"Параметры" - тыцяем "гапочку" на "Доступ к веб-конфигуратору через Интернет:" - порт оставляем по умолчанию - 80-ый 3) Перегружаем (чисто для "самоуспокоения").... пытаемся ломануться на ВАСЯ.ddns.net - И НИФИГА )))) До этого все работало "как часики" ... и продолжает работать что на Giga II что на Extra .... 4) Идем на страничку "Безопасность"=>"Трансляция сетевых адресов (NAT)" ... Руцями рисуем правило проброса из-вне на 192.168.1.1:80 - И ВУАЛЯ ... все теперь работает .... Вроде как раньше при наличии "гапочки" на доступ ... сие правило добавлялось автоматом ? или ? Дальше веселее .... имея БЕЛЫЙ IP (при условии что гапочка разрешения доступа к веб-конфигуратору "ON")..... идем на страничку "Приложения"=>"KeenDNS" - заполняем ВАСЯ.mykeenetic.net .. и говорим - ПРЯМОЙ ДОСТУП (IP-то белый) ... тут же получаем предупреждение что "Прямой доступ невозможен с серым IP-адресом. Используйте режим «Через облако» или приобретите у провайдера белый IP-адрес." что нифига "не белый" .... Если проигнорить предупреждение то без правила проброса 80-ого порта работать НЕ БУДЕТ ..... А через "облако" - "как часы" ... В общем проверьте плиззз .... сдается мне что я не "уникальный" в описанной мной ситуации .....
  2. Первое "падение" Jun 24 20:42:29 Keenetic_Ultra kernel: AP 5GHz: run channel auto-switch Jun 24 20:42:39 192.168.2.1 ndm: kernel: ACS result: primary channel 36, 80 MHz spectrum min dirty (with CCA) = 0 Jun 24 20:42:40 192.168.2.1 wmond: WifiMaster1/AccessPoint0: (MT76x2) BSS(rai0) channel switched to 36. Jun 24 20:45:58 192.168.2.1 ndm: Process: "ARP ping check" has been killed. Jun 24 20:46:37 192.168.2.1 ndm: kernel: AP 2.4GHz: run channel auto-switch Jun 24 20:46:43 192.168.2.1 ndm: kernel: 6>C eut rmr hne ,4 H pcrmmndry(ihCA 4 Jun 24 20:46:43 192.168.2.1 wmond: WifiMaster0/AccessPoint0: (MT76x2) BSS(ra0) channel switched to 1. Jun 24 20:46:48 192.168.2.1 ndm: kernel: INFO: rcu_sched self-detected stall on CPU { 0} (t=15000 jiffies) Jun 24 20:46:48 192.168.2.1 ndm: kernel: Call Trace: Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<802d9120>] dump_stack+0x8/0x34 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<8007af9c>] __rcu_pending+0x1e0/0x544 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<8007bee4>] rcu_check_callbacks+0x118/0x180 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<80035b40>] update_process_times+0x48/0x74 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<80067a6c>] tick_sched_timer+0x7c/0x34c Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<8004c308>] __run_hrtimer.isra.5+0x68/0x138 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<8004cdc4>] hrtimer_interrupt+0x1b4/0x4dc Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<800119f0>] c0_compare_interrupt+0x64/0x90 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<800742ac>] handle_irq_event_percpu+0x70/0x1fc Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<80077eec>] handle_percpu_irq+0x8c/0xbc Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<80073908>] generic_handle_irq+0x3c/0x54 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<8000cb4c>] do_IRQ+0x18/0x2c Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<8000af70>] ret_from_irq+0x0/0x4 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<8014d8d4>] prio_tree_remove+0x18/0x13c Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<800a2360>] unlink_file_vma+0x44/0x80 Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<8009c3f4>] free_pgtables+0xac/0x16c Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<800a4bc8>] exit_mmap+0x108/0x14c Jun 24 20:46:48 192.168.2.1 ndm: kernel: [<80025a90>] mmput+0x44/0x130 Jun 24 20:46:48 192.168.2.1 ndm: kernel: Jun 24 20:49:48 192.168.2.1 ndm: kernel: INFO: rcu_sched self-detected stall on CPU { 0} (t=60003 jiffies) Jun 24 20:49:48 192.168.2.1 ndm: kernel: Call Trace: Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<802d9120>] dump_stack+0x8/0x34 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8007af9c>] __rcu_pending+0x1e0/0x544 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8007bee4>] rcu_check_callbacks+0x118/0x180 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<80035b40>] update_process_times+0x48/0x74 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<80067a6c>] tick_sched_timer+0x7c/0x34c Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8004c308>] __run_hrtimer.isra.5+0x68/0x138 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8004cdc4>] hrtimer_interrupt+0x1b4/0x4dc Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<800119f0>] c0_compare_interrupt+0x64/0x90 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<800742ac>] handle_irq_event_percpu+0x70/0x1fc Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<80077eec>] handle_percpu_irq+0x8c/0xbc Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<80073908>] generic_handle_irq+0x3c/0x54 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8000cb4c>] do_IRQ+0x18/0x2c Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8000af70>] ret_from_irq+0x0/0x4 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8014d634>] get_index.isra.0.part.1+0x4/0x2c Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8014d970>] prio_tree_remove+0xb4/0x13c Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<800a2360>] unlink_file_vma+0x44/0x80 Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<8009c3f4>] free_pgtables+0xac/0x16c Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<800a4bc8>] exit_mmap+0x108/0x14c Jun 24 20:49:48 192.168.2.1 ndm: kernel: [<80025a90>] mmput+0x44/0x130 Jun 24 20:49:48 192.168.2.1 ndm: kernel: Второе "падение" - точно такое же ... Пока что сбросил в "заводские" и перенастроил все с "нуля" .... Мало ли "криво" прошивка лягла ... еще раз помрет - сброшу и селф-тест и собственно лог ...
  3. НЕТ. На USB 3.0 "навешен" HDD c Etnware 3x .
  4. Завтра до 13-00 по MSK сделаю . Не на "базе" .... после перегруза по питанию пару часов "живет нормальной" жизнью )) Так что self-test - не проблема. Заметил что пациент "перед смертью" переставал откликаться на 80-ом порту. Чрез DDNS напрочь не хотел давать доступ. При этом IP пингуется и в "рабочем кабинете" на no-ip рефрешится из web-интерфейса Ultra II. Тест "из вне" говорит что 80 порт открыт. Перешел на XXXX.mykeenetic.net - не дает "прямого доступа" , только через облако. Хотя IP - "белый". Через "облако" - работало ... но и в итоге "помер" . Провайдеру "мозг вынес" , клянется что изменений НОЛЬ .... за 2-ое суток просмотрели лог подключений - ошибок нет. Было одно "мусорное" подключение когда вместо родного IP была попытка подключения роутера с IP 78.47.125.180 . Подозреваю что это XXXX.mykeenetic.net в момент попытки "прямого доступа" - по времени в аккурат совпало с перенастройкой с DDNS на mykeenetic.net) . От прова - тоже пинговался, пока не "помер". IP- неизменен на протяжении 5-ти лет . p.s. Мобильное приложение My.Keenetic (android) - показывает что роутер в сети но при попытке войти - "Подключение отклонено Интернет-центром, не включен модуль удаленного доступа" . При этом "родной" IP - не пингуется ......
  5. Сделать смогу завтра так как не дома. Поймал с утра ... дважды. В третий раз , судя по всему, "помер" уже на удаленке . Физически не доступен на данный момент". Ping-чекер не задействован. К сожалению писал "по памяти".
  6. Поймал ТОЧНО такйю же "неприятность" после перехода на своей Ultra II на 2.10.A.3.0-0 .... Спасает только ребут по питанию ... Работает недолго 2-3 часа .. и снова ... бегом к роутеру "штепсель" выдергивать ..... Как побороть неприятность ?
  7. 2.10.A.2.0-0 В прошлый раз "не доглядели" в это раз "подзабыли" Отображение состояния IPSec VPN в web-интерфйесе не поправили. Не критично но .... так для порядку
  8. Прежде всего СПС ! Разрабам за великолепный продукт А теперь немного картинок. Имеем связку Zyxel Ultra II и Giga II (Дом-Дача ...Классика )после обновления IPSec прекрасно работает но! На "Системный монитор"->"IPSec VPN" подключение не отображается ну никак ..... Это лог полключения "клиента" Giga II ("клиент") + лог Ultra II ("сервер") + "Состояние подключения" (одинаково на обоих устройствах)
  9. Я в курсе .... тестировалось раздельно ..... это потом уже в качестве эксперимента - virtual ip ... Но чудо таки свершилось ... после 100500 перегрузок "сервера" и "клиента" , и НИЧЕГО не меняя в настройках соединения, все ожило ..... Продолжаю наблюдать .....
  10. Я пробовал как IP так и e-mail и FQDN .... собственно это , если следовать "классике" не особо важно ... Главное чтобы совпадало на обоих устройствах ... Да и какое отношение имеет идентификатор к неработающей "связке" MacOS и Сервер IPsec Virtual IP ? Тут скорее всего дело в Apr 30 09:11:48ipsec07[IKE] linked key for crypto map '(unnamed)' is not found, still searching Apr 30 09:11:48ipsec07[IKE] no shared key found for 'UltraII-IP'[UltraII-IP] - '(null)'[GigaII-IP] Apr 30 09:11:48ipsec07[IKE] no shared key found for UltraII-IP - GigaII-IP Одинаково "грустно" в обоих случаях .... ибо до этого момента - все ОК, судя по логам .....
  11. Имеем связку Клиент - Giga II ("белый" IP) 2.09.A.6.0-3 "Сервер" - Ultra II ("белый" IP) 2.09.A.7.0-0 Все настроено согласно "предписаний" - https://help.keenetic.net/hc/ru/articles/214471405-Организация-туннеля-IPSec-VPN-между-двумя-интернет-центрами-Keenetic-Ultra-II-и-Giga-III "связка" никак не вяжется ни при каких "танцах с бубном" .... Фаза1 и Фаза2 настроены "один в один" , ключ PSK совпадает и проверялся 100раз , IKE v1 или v2 - безрезультатно ...... Посоветуте "таблетку" .... ибо все пропало ! в логе на Ultra II -> Apr 30 09:11:48ipsec08[IKE] received DPD vendor ID Apr 30 09:11:48ipsec08[IKE] received FRAGMENTATION vendor ID Apr 30 09:11:48ipsec08[IKE] received NAT-T (RFC 3947) vendor ID Apr 30 09:11:48ipsec08[IKE] received draft-ietf-ipsec-nat-t-ike-02\n vendor ID Apr 30 09:11:48ipsec08[IKE] GigaII-IP is initiating a Main Mode IKE_SA Apr 30 09:11:48ipsec08[CFG] received proposals: IKE:DES_CBC/HMAC_MD5_96/PRF_HMAC_MD5/MODP_768/# Apr 30 09:11:48ipsec08[CFG] configured proposals: IKE:DES_CBC/HMAC_MD5_96/PRF_HMAC_MD5/MODP_768/# Apr 30 09:11:48ipsec08[CFG] selected proposal: IKE:DES_CBC/HMAC_MD5_96/PRF_HMAC_MD5/MODP_768/# Apr 30 09:11:48ipsec08[IKE] sending DPD vendor ID Apr 30 09:11:48ipsec08[IKE] sending FRAGMENTATION vendor ID Apr 30 09:11:48ipsec08[IKE] sending NAT-T (RFC 3947) vendor ID Apr 30 09:11:48ipsec07[IKE] linked key for crypto map '(unnamed)' is not found, still searching Apr 30 09:11:48ipsec07[IKE] no shared key found for 'UltraII-IP'[UltraII-IP] - '(null)'[GigaII-IP] Apr 30 09:11:48ipsec07[IKE] no shared key found for UltraII-IP - GigaII-IP В web-интерфейсе GigaII при попытке редактирования пропадают адреса -> Дальше - еще больше ))) Создаем на Ultra II - Сервер IPsec Virtual IP Подключаемся с компа (MacOS) Apr 30 09:39:17ipsec13[IKE] received NAT-T (RFC 3947) vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike-08 vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike-07 vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike-06 vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike-05 vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike-04 vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike-03 vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike-02 vendor ID Apr 30 09:39:17ipsec13[IKE] received draft-ietf-ipsec-nat-t-ike-02\n vendor ID Apr 30 09:39:17ipsec13[IKE] received XAuth vendor ID Apr 30 09:39:17ipsec13[IKE] received Cisco Unity vendor ID Apr 30 09:39:17ipsec13[IKE] received FRAGMENTATION vendor ID Apr 30 09:39:17ipsec13[IKE] received DPD vendor ID Apr 30 09:39:17ipsec13[IKE] GigaII-IP is initiating a Main Mode IKE_SA Apr 30 09:39:17ipsec13[CFG] received proposals: IKE:AES_CBC=256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048/#, IKE:AES_CBC=256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_2048/#, IKE:AES_CBC=256/HMAC_MD5_96/PRF_HMAC_MD5/MODP_2048/#, IKE:AES_CBC=256/HMAC_SHA2_512_256/PRF_HMAC_SHA2_512/MODP_2048/#, IKE:AES_CBC=256/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_1536/#, IKE:AES_CBC=256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1536/#, IKE:AES_CBC=256/HMAC_MD5_96/PRF_HMAC_MD5/MODP_1536/#, IKE:AES_CBC=256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024/#, IKE:AES_CBC=256/HMAC_MD5_96/PRF_HMAC_MD5/MODP_1024/#, IKE:AES_CBC=128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024/#, IKE:AES_CBC=128/HMAC_MD5_96/PRF_HMAC_MD5/MODP_1024/#, IKE:3DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024/#, IKE:3DES_CBC/HMAC_MD5_96/PRF_HMAC_MD5/MODP_1024/#, IKE:DES_CBC/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024/#, IKE:DES_CBC/HMAC_MD5_96/PRF_HMAC_MD5/MODP_1024/# Apr 30 09:39:17ipsec13[CFG] configured proposals: IKE:AES_CBC=128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024/# Apr 30 09:39:17ipsec13[CFG] selected proposal: IKE:AES_CBC=128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024/# Apr 30 09:39:17ipsec13[IKE] sending XAuth vendor ID Apr 30 09:39:17ipsec13[IKE] sending DPD vendor ID Apr 30 09:39:17ipsec13[IKE] sending Cisco Unity vendor ID Apr 30 09:39:17ipsec13[IKE] sending FRAGMENTATION vendor ID Apr 30 09:39:17ipsec13[IKE] sending NAT-T (RFC 3947) vendor ID Apr 30 09:39:17ipsec14[IKE] remote host is behind NAT Apr 30 09:39:17ipsec14[IKE] linked key for crypto map '(unnamed)' is not found, still searching Apr 30 09:39:17ipsec14[IKE] no shared key found for 'mykeenetic.net'[UltraII-IP] - '(null)'[GigaII-IP] Apr 30 09:39:17ipsec14[IKE] no shared key found for ULtraII-IP - GigaII-IP И как теперь удаленно добираться в локальную сеть ? Заранее благодарен за помощь в решении описанных проблем ....
  12. Если речь идет о edem, ott и т.д. - ДА там ссылка уже готовая.... В данном конкретном случае и в случае с acestream engine, для которого. тоже скриптик имеется, необходимо "формирование" плейлиста по шаблону под себя . Но это уже "разговор" из другой темы и не данного форума. Жму руку! p.s. Тут такое ... если пользователям сия инфа бесполезна .... УДАЛЮ ТЕМУ .... через недельку ! ОК? А вот если будут "Like"-и ... оставлю.
  13. легко ... думаю "страждущие" и "нуждающиеся" сам под себя "подковыряют" готовое решение. Все же проще чем "с нуля" самому писать ... или ?
  14. Спс за замечание .... заголовок заменю ... на "Автоматизация раздачи плейлиста для noxbit по расписанию" ? или предложите название темы. Думаю она представляет интерес "как готовое решение"
  15. Есть огромная надежда что в скором времени стартанет и заработает сборка noxbit для MIPSel -> http://mytalks.ru/index.php?topic=6459.0 Описываю полный процес автоматизации использования noxbit движка на обычном бытовом роутере с Entware3x на борту... Кое что сам наваял, кое-что раньше успел создать Alex(c) для малинки и я "маленько" адаптировал opkg install crone lighttpd lighttpd-mod-alias lighttpd-mod-compress curl 1) crone - используем для выполнения скрипта "заливки" плейлиста из своего рабочего кабинета раз в сутки, чаще просто нету смысла, например каждые 5.00 утра (в contab - 01 5 * * * root /opt/bin/run-parts /opt/etc/cron.daily) ... В crone.daily создаем файлик noxbit_ttv права 755 ! #!/opt/bin/sh prefix="/opt" PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin M3U_DIR="$prefix/home/ttv-list" NOX_M3U="$M3U_DIR/NoxLive-TTV.m3u" NOX_DIR="$prefix/tmp" NOX_FILE="$NOX_DIR/ttv-m3u/noxbit.m3u" NOX_FILE_GZ="$NOX_FILE.gz" ## Ссылка из вашего личного кабинета на "Скачать в виде полноценного статичного файла" ## В настройках плейлиста ОБЯЗАТЕЛЬНО поставить гапочку напротив "Категории каналов тегами #EXTGRP в m3u" NOX_LIST_URL="http://asproxy.net/n/blablablabla" ## IP Вашего роутера или устройства на котором установлен noxbit URL_IP="192.168.1.1" STAT_OLD= if [ -z "$NOX_LIST_URL" ]; then echo "Error! Unknown playlist address Noxbit." exit fi mkdir -p $NOX_DIR/ttv-m3u if [ -f "$NOX_FILE_GZ" ]; then STAT_OLD=`stat $NOX_FILE_GZ | grep 'Modify:'` fi curl -s --connect-timeout 5 --max-time 20 -R -z "$NOX_FILE_GZ"-o "$NOX_FILE_GZ" -H "Accept-Encoding: gzip" "$NOX_LIST_URL" if [ ! -f "$NOX_FILE_GZ" ]; then echo "Error! Could not load Noxbit playlist." exit fi STAT_NEW=`stat $NOX_FILE_GZ | grep 'Modify:'` if [ "$STAT_OLD" == "$STAT_NEW" ]; then echo "Done! You already actual playlist." exit fi gunzip -c "$NOX_FILE_GZ" > "$NOX_FILE" mkdir -p $M3U_DIR echo '#EXTM3U url-tvg="http://1ttvapi.top/ttv.xmltv.xml.gz"' > $NOX_M3U cat $NOX_FILE | while read -r LINE ; do echo $LINE | grep '^#EXTINF' > /dev/null 2>&1 if [ $? -eq 0 ]; then CH_LOGO=`echo $LINE | awk '{print $2}' | sed 's/,.*//; s/tvg-logo=//; s/[ \t]*$//'` CH_NAME=`echo $LINE | awk -F\\, '{print $2}' | sed 's/(на модерации)//; s/^[ \t]*//; s/[ \t]*$//'` CH_CAT= CH_CID= continue fi echo $LINE | grep '^#EXTGRP' > /dev/null 2>&1 if [ $? -eq 0 ]; then CH_CAT=`echo $LINE | awk -F\\: '{print $2}' | sed 's/^[ \t]*//; s/[ \t]*$//'` CH_CID= continue fi echo $LINE | grep '^http' > /dev/null 2>&1 if [ $? -eq 0 ]; then CH_CID=`echo $LINE | awk -F\\= '{print $2}' | sed 's/^[ \t]*//; s/[ \t]*$//'` fi if [ -n "$CH_LOGO" -a -n "$CH_NAME" -a -n "$CH_CAT" -a -n "$CH_CID" ]; then echo "#EXTINF:-1 group-title=\"$CH_CAT\" tvg-name=\"$CH_NAME\" tvg-logo=$CH_LOGO,$CH_NAME" >> $NOX_M3U echo "http://${URL_IP}:6689/stream?cid=${CH_CID}" >> $NOX_M3U CH_LOGO= CH_NAME= CH_CAT= CH_CID= fi done rm -rf $NOX_FILE echo "Done! Playlist created." exit Итог "сей песни" плейлист в формате m3u со всякими "плюшками" в /opt/home/ttv-list/NoxLive-TTV.m3u В скрипте есть поддержка хедеров If-Modified-Since и Last-Modified , которые пока что не поддерживаются для ссылки на плейлист noxbit в личном кабинете TTV.... И это в корне НЕВЕРНО, думаю что соответствующий департамент по "шурику" подправит.... чтобы не "задалбывать" скачивая одно и то же до "посинения" ... Просто уверен что многие поставят скачивание не раз в сутки .. а каждую минуту для надежности ))) и попадут в БАН ! .... А вот если добавить поддержку If-Modified-Since и Last-Modified .... то долбите дятлы ! ДЛОБИТЕ !!!! + Если соответствующий "департамент" поднатужится и все таки включит JSON формат для плейлистов noxbit , то в скрипте можно будет использовать утилитку jq и "разгребаться" будет за несколько секунд, а так "ковыряем" текстовый файл ... время обработки сек 30-40 .... 2) lighttpd - будем использовать как "маленький и шустрый" локальный вебсерверок для раздачи плейлиста всем устройствам домашней сети + можно соседу, дабы окупить затраты на электричество потребляемое роутером. Редактируем lighttpd.conf вот так (я постарался максимально прокомментировать по тексту конфига что для чего) #Перечисляем модули, которые будет пожгружать при старте lighttpd server.modules += ( "mod_compress", "mod_alias", ) #Документ рут по умолчанию server.document-root = "/opt/home/www" server.upload-dirs = ( "/opt/var/cache/lighttpd/compress/uploads" ) alias.url += ( "/playlist" => "/opt/home/ttv-list", ) #Описываем лог файл куда будут писаться ошибки server.errorlog = "/opt/var/log/lighttpd/error.log" #Файл для записи обработанных запросов mod_accesslog #accesslog.filename = "/opt/var/log/lighttpd/access.log" #accesslog.format = "%h %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" #PID файл server.pid-file = "/opt/var/run/lighttpd.pid" #Пользователь и группа от имени которых работает lightttpd #server.username = "http" #server.groupname = "www-data" #Метод обработки запросов #server.event-handler = "freebsd-kqueue" #Имена файлов, которые будут отдаваться по умолчанию, если имя файла не задано в запросе index-file.names = ( "index.php", "index.html", "index.htm", "default.htm", "index.lighttpd.html" ) #Расширения файлов которые надо отдавать на обработку FastCGI процессам #static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) #Запрещенные для отдачи имена файлов mod_access #url.access-deny = ( "~", ".inc" ) # mod_compres compress.cache-dir = "/opt/var/cache/lighttpd/compress/" compress.allowed-encodings = ("bzip2", "gzip", "deflate") compress.filetype = ("application/javascript", "audio/mpegurl", "text/css", "text/html", "text/plain" ) ### Options that are useful but not always necessary: #server.chroot = "/" #Принимаем запросы на заданном порту server.port = 81 #IP адрес на котором принимаем запросы server.bind = "192.168.1.1" #Идентификатор сервера server.tag = "lighttpd" #server.errorlog-use-syslog = "enable" #server.network-backend = "write" ### Use IPv6 if available #include_shell "/opt/share/lighttpd/use-ipv6.pl" dir-listing.encoding = "utf-8" server.dir-listing = "enable" include "/opt/etc/lighttpd/mime.conf" include_shell "cat /opt/etc/lighttpd/conf.d/*.conf" Тут кое-что "выключено"-заREMлено... если Вам надо снимите '#' нужных вам "фичах" Итог "сей песни" ... работающий web-серверок который по ссылке http://192.168.1.1:81/playlist/NoxLive-TTV.m3u будет отдавать вам плейлист для всех ваших девайсов дома Поскольку в lighttpd я включил поддержку компресии ... то в crone.daily нужно добавить еще один скриптик, который будет подчищать за lighttpd . В crone.daily создаем файлик lighttpd_clean права 755! #!/opt/bin/sh prefix="/opt" PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin cache=/opt/var/cache/lighttpd if test -d "$cache/compress"; then find $cache/compress -depth -type f -atime +0 -print0 | xargs -0 -r rm fi if test -d "$cache/uploads"; then find $cache/uploads -depth -type f -atime +0 -print0 | xargs -0 -r rm fi Перегружаем роутер ... ну или стартуем "руцями" crone и lighttpd и наслаждаемся ::) При желании lighttpd.conf можно дополнить и "припудрить" паролированием доступа, геолокацией, и т.д. как говориться книга Вам в помощь -> https://redmine.lighttpd.net/projects/lighttpd p.s. Дання "лабораторка" тестировалась и прекрасно фунциклирует на Zyxel Keenetic Ultra II c Entware3x .... Критику и дополнения - ПРИЕМЛЮ )