Waujito / youtubeUnblock

Bypasses Deep Packet Inspection (DPI) systems that rely on SNI
GNU General Public License v3.0
791 stars 62 forks source link

Entware Keenetic - перестает работать через минуту после запуска. #134

Open bencheg opened 1 month ago

bencheg commented 1 month ago

Установил в entware на Keenetic Ultra.

Добавил в S91youtubeUnblock в ARGS="--segdelay=100 --frag-sni-reverse=0".

Перезапускаю службу, проверяю тестом:

curl -o/dev/null -k --connect-to ::google.com -k -L -H Host:\ mirror.gcr.io https://test.googlevideo.com/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa Скорость отличная, youtube на всех устройствах работает, но через пару минут перестает.

Опять проверяю тестом - по нулям, пока не перезапустишь службу. Как только делаю S91youtubeUnblock restart - все начинает работать как ни в чем не бывало.

Проверяю запущена ли служба через S91youtubeUnblock status - служба running.

Подскажите, куда копать?

Версия v1.0.0-rc1 (youtubeUnblock-0.3.2-2d1b58b-aarch64-3.10-entware.tar.gz)

Waujito commented 1 month ago

Дубликат #111?

bencheg commented 1 month ago

По симптомам похоже, да.

Но, если я правильно прочитал, это было исправлено в последнем релизе? Или я не так понял?

Waujito commented 1 month ago

По симптомам похоже, да.

Но, если я правильно прочитал, это было исправлено в последнем релизе? Или я не так понял?

Пишут, что всё еще не работает, надо дальше разбираться

CavumSubarachnoidale commented 1 month ago

@bencheg там в тикете есть решение, но надо немного руками поработать.

Di1Ly commented 1 month ago

Установил на роутер ASUS с ENTWARE, заработало, ~~но через какое-то время отваливается. Статус - stoped Перезапуск решает проблему, но потом опять останавливается.~~ Корень проблемы нашел, при закрытии консоли скрип останавливает процесс .... Как я понял, я не первый, кто боролся с этим на прошивке ASUS MERLIN С TPWS таких проблем не было.... Использовать demonize?

Заметил, что iptables -t mangle -nvL Множится строка при каждом запуске..... Нужные модули ядра у меня встроены перезапустить я их не могу вроде .... Куда копать?

Chain FORWARD (policy ACCEPT 40 packets, 9242 bytes)

 pkts bytes target     prot opt in     out     source               destination

 163K   32M NFQUEUE    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 connbytes 0:19 connbytes mode packets connbytes direction original NFQUEUE num 537 bypass

    0     0 NFQUEUE    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 connbytes 0:19 connbytes mode packets connbytes direction original NFQUEUE num 537 bypass

    0     0 NFQUEUE    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 connbytes 0:19 connbytes mode packets connbytes direction original NFQUEUE num 537 bypass

    0     0 NFQUEUE    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443 connbytes 0:19 connbytes mode packets connbytes direction original NFQUEUE num 537 bypass
alex-kabin commented 1 month ago

На Entware нужно поправить функцию _iptables() в файле /opt/etc/init.d/S91youtubeUnblock

_iptables()
{
    ARG="$@"    
    CMD=$1 # iptables or ip6tables
    ACTION=$2 # -I, -A, -D
        shift; shift;
    RULE="$@"

    $CMD -C $RULE 2>/dev/null

    exists=$(( ! $? ))

    if [[ $ACTION == "-A" ]] || [[ $ACTION == "-I" ]]
    then
        if [ $exists -eq 0 ]; then
            $ARG || exit 1
        fi
    else # -D
        if [ $exists -ne 0 ]; then
            $ARG
        fi
    fi
}

shell в entware не поддерживает массивы, поэтому оригинальная версия работает не совсем корректно - множатся записи в iptables.

alex-kabin commented 1 month ago

для восстановления периодически пропадающих правил в iptables добавил файл /opt/etc/ndm/netfilter.d/000-youtubeUnblock.sh c содержимым

#!/bin/sh
[ "$type" == "ip6tables" ] && exit 0 &>/dev/null
[ "$table" != "mangle" ] && exit 0 &>/dev/null
/opt/etc/init.d/S91youtubeUnblock firewall-stop &>/dev/null
/opt/etc/init.d/S91youtubeUnblock firewall-load &>/dev/null
Waujito commented 1 month ago

На Entware нужно поправить функцию _iptables() в файле /opt/etc/init.d/S91youtubeUnblock

_iptables()
{
  ARG="$@"    
  CMD=$1 # iptables or ip6tables
  ACTION=$2 # -I, -A, -D
        shift; shift;
  RULE="$@"

  $CMD -C $RULE 2>/dev/null

  exists=$(( ! $? ))

  if [[ $ACTION == "-A" ]] || [[ $ACTION == "-I" ]]
  then
      if [ $exists -eq 0 ]; then
          $ARG || exit 1
      fi
  else # -D
      if [ $exists -ne 0 ]; then
          $ARG
      fi
  fi
}

shell в entware не поддерживает массивы, поэтому оригинальная версия работает не совсем корректно - множатся записи в iptables.

Спасибо! Не хотите PR открыть с этими изменениями?)

И я думаю можно оставить ваш netfilter ndm, хоть это и не совсем корректно с точки зрения iptables ip6tables

Waujito commented 1 month ago

Обновил конфиги, надеюсь, проблема ушла. https://github.com/Waujito/youtubeUnblock/actions/runs/11201897622

bencheg commented 1 month ago

в файле /opt/etc/init.d/S91youtubeUnblock

Подскажи, пожалуйста, как их установить? Релиза не было же?