Установка youtubeUnblock на OpenWrt

Введение

В данной заметке установим youtubeUnblock на роутер с OpenWrt прошивкой.

Я буду использовать простенький Xiaomi Mi Router 4C c 16/64mb памяти, прошитый на стабильную версию OpenWrt 23.05.х, вы можете использовать любой другой роутер с стабильной прошивкой OpenWrt.


Подготовка

Для начала узнаем архитектуру нашего роутера, подключаемся по SSH к нашему роутеру и вводим команду:

opkg print-architecture

#Вывод команды
arch all 1
arch noarch 1
arch mipsel_24kc 10

У меня на Xiaomi Mi Router 4C архитектура mipsel_24kc, запоминаем свою и топаем в репозиторий youtubeUnblock, качаем в релизах два файла (названия могут изменится на новых релизах) или копируем на них ссылки, ПКМ на файл Копировать адрес ссылки и сохраняем себе в Notepad++):

  • luci-app-youtubeUnblock-x.x.x-xxxxxxx.ipk (ставится на все архитектуры)
  • youtubeUnblock-x.x.x-xxxxxxx-ВАША АРХИТЕКТУРА-openwrt-23.05.ipk (разный под каждую архитектуру, нашу архитектуру мы узнали командой opkg print-architecture в консоли OpenWrt)

Готово, когда у нас есть нужные файлы или ссылки (ПКМ на нужный файл и Копировать ссылку на Firefox) под нужную архитектуру идем дальше.


Установка youtubeUnblock на OpenWrt

1. Подключаемся по SSH к роутеру на OpenWrt и до устанавливаем нужные пакеты (у меня до ставился только kmod-nft-queue):

opkg update

opkg install kmod-nft-queue kmod-nf-conntrack
Установка youtubeUnblock на OpenWrt
Установка youtubeUnblock на OpenWrt

2. Добавляем правила nftables и переходим далее к установке самих пакетов:

nft add chain inet fw4 youtubeUnblock '{ type filter hook postrouting priority mangle - 1; policy accept; }'

nft add rule inet fw4 youtubeUnblock 'tcp dport 443 ct original packets < 20 counter queue num 537 bypass'

nft add rule inet fw4 youtubeUnblock 'meta l4proto udp ct original packets < 9 counter queue num 537 bypass'

nft insert rule inet fw4 output 'mark and 0x8000 == 0x8000 counter accept'

Установка youtubeUnblock через Luci

Заходим в веб интерфейс Luci, идем по пути SystemSoftware, жмем на Update lists…, дожидаемся обновления и жмакаем на Upload Package…, выбираем по очереди два наших файла которые скачали под нашу архитектуру (luci-app-youtubeUnblock-x.x.x-xxxxxxx.ipk и youtubeUnblock-x.x.x-xxxxxxx-ВАША АРХИТЕКТУРА-openwrt-23.05.ipk) жмем Upload и дожидаемся установки.

После установки у нас появится вкладка Services где можно будет ручками потыкать настройки youtubeUnblock, в случае если он не завелся сходу (у меня все завелось, единственное запретил quic в локальной сети и выключил везде IPv6.)

Если ни каких ошибок не было, то проверить что все работает можно командами в консоли ниже (перед этим установим curl командой – opkg update && opkg install curl), или просто запускаем Youtube:

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

curl -o/dev/null -k --connect-to ::google.com -k -L -H Host:\ mirror.gcr.io https://mirror.gcr.io/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa

Установка и загрузка youtubeUnblock на OpenWrt через консоль.

1. Подключаемся по SSH к роутеру на OpenWrt и вводим команды ниже:

Замените ссылку на второй файл своей архитектуры! Ниже будет пример для архитектуры mipsel_24kc, если у вас такая же, можете воспользоваться ссылками ниже.

wget https://github.com/Waujito/youtubeUnblock/releases/download/v1.0.0-rc3/luci-app-youtubeUnblock-1.0.0-37a517e.ipk -O /tmp/lyt.ipk && opkg install /tmp/lyt.ipk

wget https://github.com/Waujito/youtubeUnblock/releases/download/v1.0.0-rc3/youtubeUnblock-1.0.0-37a517e-ВАША АРХИТЕКТУРА-openwrt-23.05.ipk -O /tmp/yt.ipk && opkg install /tmp/yt.ipk

wget https://github.com/Waujito/youtubeUnblock/releases/download/v1.0.0-rc5/luci-app-youtubeUnblock-1.0.0-5-bc345ed.ipk -O /tmp/lyt.ipk && opkg install /tmp/lyt.ipk

wget https://github.com/Waujito/youtubeUnblock/releases/download/v1.0.0-rc5/youtubeUnblock-1.0.0-5-bc345ed-mipsel_24kc-openwrt-23.05.ipk -O /tmp/yt.ipk && opkg install /tmp/yt.ipk

2. Если ни каких ошибок не было, то проверить что все работает можно командами в консоли ниже (перед этим установим curl командой – opkg update && opkg install curl), или просто запускаем Youtube:

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

curl -o/dev/null -k --connect-to ::google.com -k -L -H Host:\ mirror.gcr.io https://mirror.gcr.io/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa

Немного скриншотов самого youtubeUnblock ниже:


Заключение

В данной заметке разобрали как установить youtubeUnblock на роутер с стабильной прошивкой OpenWrt.

Что бы не потерять инструкцию рекомендую подписаться на мой личный блог-канал в Telegram в котором я делюсь в формате заметок своими знаниями и интересным из мира IT, спасибо за потраченное время на чтение и доброго времени суток!)

Так же вы можете отблагодарить автора материально:

Установка youtubeUnblock на OpenWrt

10 комментариев к “Установка youtubeUnblock на OpenWrt”

  1. Огроменное спасибо Вам, добрый человек, за эту статью! Вы сделали мой день. Настроил на роутере с OpenWRT и теперь не нежен VPN чтобы смотреть ютуб на телевизоре и планшетах.

    Ответить
  2. Денис, нужна ваша подсказка. Я застрял на этапе добавления правил nftable:

    root@OpenWrt:~# nft add chain inet fw4 youtubeUnblock ‘{ type filter hook postrouting priority mangle – 1; policy accept; }’
    -ash: nft: not found

    Вот такое отвечает. Подскажите, если не сложно, как добавить правила.

    Ответить
    • Приветствую, Кирилл
      У вас скорее всего версия Openwrt до 22, там используется iptables вместо nftables, для iptables команды ниже:

      iptables -t mangle -N YOUTUBEUNBLOCK
      iptables -t mangle -A YOUTUBEUNBLOCK -p tcp –dport 443 -m connbytes –connbytes-dir original –connbytes-mode packets –connbytes 0:19 -j NFQUEUE –queue-num 537 –queue-bypass
      iptables -t mangle -A YOUTUBEUNBLOCK -p udp -m connbytes –connbytes-dir original –connbytes-mode packets –connbytes 0:8 -j NFQUEUE –queue-num 537 –queue-bypass
      iptables -t mangle -A POSTROUTING -j YOUTUBEUNBLOCK
      iptables -I OUTPUT -m mark –mark 32768/32768 -j ACCEPT

      ip6tables -t mangle -N YOUTUBEUNBLOCK
      ip6tables -t mangle -A YOUTUBEUNBLOCK -p tcp –dport 443 -m connbytes –connbytes-dir original –connbytes-mode packets –connbytes 0:19 -j NFQUEUE –queue-num 537 –queue-bypass
      ip6tables -t mangle -A YOUTUBEUNBLOCK -p udp -m connbytes –connbytes-dir original –connbytes-mode packets –connbytes 0:8 -j NFQUEUE –queue-num 537 –queue-bypass
      ip6tables -t mangle -A POSTROUTING -j YOUTUBEUNBLOCK
      ip6tables -I OUTPUT -m mark –mark 32768/32768 -j ACCEPT

      Ответить
  3. Привет! Не работает и постоянно отбивает ошибку
    WARNING! Client Hello packet is too big and may cause issues!

    Ответить
    • Приветствую, Павел
      Попробуйте в консоли проверить последними двумя командами, Current Speed не должно быть 0:

      opkg update

      opkg install curl

      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

      curl -o/dev/null -k --connect-to ::google.com -k -L -H Host:\ mirror.gcr.io https://mirror.gcr.io/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa

      Ответить
      • % Total % Received % Xferd Average Speed Time Time Time Current
        Dload Upload Total Spent Left Speed
        100 1144 100 1144 0 0 1576 0 –:–:– –:–:– –:–:– 1648
        13 664M 13 90.1M 0 0 9.8M 0 0:01:07 0:00:09 0:00:58 10.8M

        % Total % Received % Xferd Average Speed Time Time Time Current
        Dload Upload Total Spent Left Speed
        100 1144 100 1144 0 0 1977 0 –:–:– –:–:– –:–:– 1989
        10 664M 10 69.1M 0 0 10.3M 0 0:01:04 0:00:06 0:00:58 11.6M

        Скорость дает, но вот Youtube совсем не грузит.
        Есть личные прокси Vless. Может легче их через Openwrt протянуть? К сожалению не владею точными знаниями, но может подскажете что-нибудь?

        Ответить
        • Ну слишком мало вводных, какой роутер, версия прошивки, основной или нет и тд.

          Попробуйте QUIC отключить для все сети:
          uci add firewall rule
          uci set firewall.@rule[-1].name='Drop QUIC'
          uci set firewall.@rule[-1].src='lan'
          uci set firewall.@rule[-1].dest='*'
          uci set firewall.@rule[-1].proto='udp'
          uci set firewall.@rule[-1].dest_port='443'
          uci set firewall.@rule[-1].target='DROP'
          uci commit firewall
          /etc/init.d/firewall restart

          Можно попробовать и ipv6 так же отключить:
          uci set 'network.lan.ipv6=0'
          uci set 'network.wan.ipv6=0'
          uci set 'dhcp.lan.dhcpv6=disabled'
          uci -q delete dhcp.lan.dhcpv6
          uci -q delete dhcp.lan.ra
          uci set network.lan.delegate="0"
          uci -q delete network.globals.ula_prefix
          /etc/init.d/odhcpd disable
          /etc/init.d/odhcpd stop
          uci commit
          /etc/init.d/network restart
          sysctl -w net.ipv6.conf.all.disable_ipv6=1
          echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
          sysctl -w net.ipv6.conf.default.disable_ipv6=1
          sysctl -w net.ipv6.conf.lo.disable_ipv6=1

          Если не поможет задайте вопрос разработчику, так как по вашему выводу curl ютуб бегает)

          Ответить
  4. Модель ASUS RT-AX53U
    Архитектура MediaTek MT7621 ver:1 eco:3
    Целевая платформа ramips/mt7621 (mipsel_24kc Архитектура)
    Версия прошивки OpenWrt 23.05.5 r24106-10cc5fcd00 / LuCI openwrt-23.05 branch git-25.035.63319-73ae2e2
    Section @rule[3] (Allow-DHCPv6) is disabled, ignoring section
    Section @rule[5] (Allow-ICMPv6-Input) is disabled, ignoring section
    Section @rule[6] (Allow-ICMPv6-Forward) is disabled, ignoring section
    Section @forwarding[1] option ‘dest’ specifies invalid value ‘sign_box’
    Section @forwarding[1] skipped due to invalid options
    Section @forwarding[2] option ‘dest’ specifies invalid value ‘sign_box’
    Section @forwarding[2] skipped due to invalid options
    Section @forwarding[3] option ‘dest’ specifies invalid value ‘sign_box’
    Section @forwarding[3] skipped due to invalid options
    Section @forwarding[4] option ‘dest’ specifies invalid value ‘sign_box’
    Section @forwarding[4] skipped due to invalid options
    Automatically including ‘/usr/share/nftables.d/ruleset-post/537-youtubeUnblock.nft’
    Не подскажите как исправить?)

    ipv6 везде отключал и руками, и по Вашему гайду

    Ответить
    • Как будто что-то напутали в настройках sing-box в firewall, я же не знаю что вы делали и по какой инструкции)

      Ответить

Оставьте комментарий