Введение
В данной заметке установим 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

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, идем по пути System–Software, жмем на 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, спасибо за потраченное время на чтение и доброго времени суток!)
Так же вы можете отблагодарить автора материально:

Огроменное спасибо Вам, добрый человек, за эту статью! Вы сделали мой день. Настроил на роутере с OpenWRT и теперь не нежен VPN чтобы смотреть ютуб на телевизоре и планшетах.
Приветствую, Евгений
Рад что пригодилось)
Денис, нужна ваша подсказка. Я застрял на этапе добавления правил 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
Привет! Не работает и постоянно отбивает ошибку
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 ютуб бегает)
Модель 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, я же не знаю что вы делали и по какой инструкции)