YouTube на роутере Netcraze

Как настроить YouTube на роутере Netcraze без туннеля

Полу­шу­точ­ная инструк­ция с серьёз­ным резуль­та­том: один раз настро­ил роу­тер, и смарт-ТВ, при­став­ки и теле­фо­ны пере­ста­ли бук­со­вать на видео, ниче­го не ста­вя на сами устройства.


Коротко: что получится

  • YouTube (и часть дру­гих «при­тор­ма­жи­ва­е­мых» сер­ви­сов) откры­ва­ет­ся напря­мую, без тун­не­лей и прок­си.
  • Рабо­та­ет на уровне роу­те­ра, поэто­му под­хо­дит для смарт-ТВ, при­ста­вок и кон­со­лей, на кото­рые софт не поставишь.
  • Обход вклю­ча­ет­ся толь­ко для выбран­ных устройств (через поли­ти­ку досту­па), осталь­ная сеть не затрагивается.
  • Спи­сок доме­нов обнов­ля­ет­ся сам, раз в неделю.
  • Настрой­ка зани­ма­ет око­ло часа, если Entware уже стоит.

Мой стенд: Netcraze (Keenetic) Hopper 4G+ (KN-3811), про­цес­сор aarch64, KeeneticOS 5.x, Entware на USB-нако­пи­те­ле. Интер­нет у меня шёл по Wi-Fi от внеш­не­го источ­ни­ка, на про­вод­ном под­клю­че­нии всё настра­и­ва­ет­ся так же.

Резуль­тат на прак­ти­ке: в онлайн-тесте доступ­но­сти 105 сер­ви­сов без обхо­да у меня откры­ва­лось 57, с обхо­дом 73. YouTube зара­бо­тал и в бра­у­зе­ре, и на ТВ. Циф­ры пла­ва­ют на ±10 меж­ду про­го­на­ми и зави­сят от про­вай­де­ра, так что счи­тай­те их ори­ен­ти­ром, а не гарантией.


Как это работает

Инстру­мент назы­ва­ет­ся nfqws (из про­ек­та zapret). Он не пря­чет тра­фик в тун­нель, а слег­ка «пор­тит» пер­вые паке­ты соеди­не­ния так, что­бы систе­ма филь­тра­ции (DPI) про­вай­де­ра не опо­зна­ла, куда вы идё­те, а сер­вер YouTube понял всё правильно.

Схе­ма простая:

Устройство → Роутер (nfqws правит первые пакеты) → Провайдер (DPI «не видит» запрещённого) → YouTube

При­ме­ня­ют­ся три приёма:

При­ём Что дела­ет
Split Режет пер­вый пакет с име­нем сай­та (TLS ClientHello) на части, DPI не может собрать имя целиком
Fake-паке­ты Перед насто­я­щим паке­том отправ­ля­ет «обман­ку» с без­обид­ным име­нем (напри­мер, www.google.com), кото­рую сер­вер отбро­сит, а DPI при­мет за чистую монету
QUIC fake То же для UDP/443 (YouTube часто ходит по QUIC)

Тех­ни­че­ски nfqws полу­ча­ет паке­ты через меха­низм NFQUEUE, кото­рый встро­ен в ядро роу­те­ра. Поэто­му нуж­ны два допол­ни­тель­ных ком­по­нен­та KeeneticOS (о них ниже).


Почему DPI это до сих пор пропускает

Это обще­при­ня­тое тех­ни­че­ское объ­яс­не­ние, а не офи­ци­аль­ные дан­ные оборудования:

  1. DPI рабо­та­ет в пото­ке, а не как сер­вер. Обо­ру­до­ва­ние филь­тра­ции обра­ба­ты­ва­ет огром­ные объ­ё­мы тра­фи­ка и вынуж­де­но эко­но­мить: оно не пере­со­би­ра­ет пол­но­стью каж­дое TCP-соеди­не­ние так, как это дела­ет насто­я­щий сервер.
  2. Оно не зна­ет, что при­мет сер­вер. Фей­ко­вый пакет спе­ци­аль­но дела­ет­ся так, что­бы насто­я­щий сер­вер его отбро­сил (невер­ная кон­троль­ная сум­ма, осо­бые TCP-опции, нуж­ное зна­че­ние TTL). DPI же отли­чить «мусор» от «насто­я­ще­го» по одно­му паке­ту слож­нее и дороже.
  3. Пер­вый пакет реша­ет всё. Имя сай­та в HTTPS пере­да­ёт­ся в самом нача­ле соеди­не­ния. Если DPI не разо­брал его в этот момент, даль­ше тра­фик чаще все­го идёт беспрепятственно.

Отсю­да и чест­ные оговорки:

  • Это гон­ка воору­же­ний. Про­вай­де­ры и регу­ля­тор обнов­ля­ют обо­ру­до­ва­ние, поэто­му стра­те­гия, рабо­та­ю­щая сего­дня, зав­тра может пере­стать. Пара­мет­ры пери­о­ди­че­ски при­хо­дит­ся под­би­рать заново.
  • Резуль­тат зави­сит от про­вай­де­ра. У одно­го рабо­та­ет «из короб­ки», у дру­го­го нуж­на дру­гая стратегия.
  • Метод не помо­га­ет при бло­ки­ров­ке по IP-адре­су. Если про­вай­дер режет адре­са цели­ком, иска­жать паке­ты бес­по­лез­но: они про­сто не дохо­дят. При­мер: web.telegram.org после настрой­ки по-преж­не­му отве­чал ERR_CONNECTION_TIMED_OUT, что харак­тер­но имен­но для IP-бло­ки­ров­ки. Для тако­го нужен тун­нель (туннель/прокси), и это уже дру­гая статья.

Про акту­аль­ность про­ек­та. Исполь­зо­ван­ный здесь пакет nfqws-keenetic по заяв­ле­нию его авто­ров боль­ше не полу­ча­ет обнов­ле­ний, новые воз­мож­но­сти появ­ля­ют­ся в его пре­ем­ни­ке nfqws2-keenetic. Ста­тья опи­сы­ва­ет вер­сию 2.11.4, кото­рую я про­ве­рил на прак­ти­ке. При уста­нов­ке пре­ем­ни­ка коман­ды и име­на пере­мен­ных кон­фи­гу­ра­ции могут отли­чать­ся, све­ряй­тесь с README проекта.


Что понадобится

  • Роу­тер Netcraze/Keenetic с KeeneticOS 4.x или 5.x.
  • Уста­нов­лен­ный и рабо­та­ю­щий Entware (пакет­ный мене­джер OPKG). У меня он уже был уста­нов­лен и рабо­тал, отдель­но его настра­и­вать не пришлось.
  • SSH-кли­ент. Под­клю­че­ние к Entware: порт 222, поль­зо­ва­тель root, пароль по умол­ча­нию keenetic.
  • Все коман­ды ниже выпол­ня­ют­ся в сре­де Entware, а не в CLI само­го роутера.

Сколько места занимает

Сам nfqws кро­шеч­ный. Заме­ры на моём роутере:

Что Раз­мер
Бинар­ник /opt/usr/bin/nfqws 125 444 бай­та (око­ло 122 КБ)
Пап­ка /opt/etc/nfqws (кон­фиг, спис­ки, слу­жеб­ные файлы) 64 КБ
Ито­го­вый спи­сок user.list (1428 доменов) око­ло 19 КБ
Вся пап­ка /opt на накопителе 87,6 МБ (вклю­ча­ет и дру­гие уста­нов­лен­ные паке­ты, не толь­ко nfqws)
Нако­пи­тель целиком 7,0 ГБ, сво­бод­но 6,6 ГБ

Ито­го nfqws вме­сте с кон­фи­га­ми зани­ма­ет мень­ше мега­бай­та. Основ­ной объ­ём на нако­пи­те­ле при­хо­дит­ся на саму сре­ду Entware и дру­гие пакеты.

Про­ве­рить у себя мож­но так:

du -sh /opt
du -sh /opt/etc/nfqws
ls -l /opt/usr/bin/nfqws
df -h /opt

Можно ли поставить во встроенную память

По доку­мен­та­ции про­ек­та, Entware мож­но уста­но­вить как на встро­ен­ную память роу­те­ра, так и на USB-нако­пи­тель. Нюан­сы:

  • Под­держ­ка встро­ен­ной памя­ти зави­сит от моде­ли и про­шив­ки. Све­ряй­тесь с инструк­ци­ей Keenetic для ваше­го устрой­ства. У меня Entware сто­ит на USB, во встро­ен­ную память я его не ста­вил, поэто­му этот вари­ант лич­но не проверял.
  • Для само­го nfqws места нуж­но немно­го: мень­ше мега­бай­та, как вид­но из заме­ров выше. Если Entware у вас уже во встро­ен­ной памя­ти, nfqws туда поместится.
  • Нагруз­ка на флеш-память от nfqws мини­маль­на: запи­си ред­кие (обнов­ле­ние спис­ка раз в неде­лю, слу­жеб­ные фай­лы). Но если вклю­чить подроб­ное логи­ро­ва­ние, запи­сей ста­нет больше.
  • USB-нако­пи­тель прак­тич­нее: его мож­но заме­нить, если изно­сит­ся, и про­ще делать резерв­ные копии. Поэто­му я исполь­зую имен­но его.

Пошаговая установка

Шаг 1. Подготовка роутера (веб-панель)

Entware у меня уже был уста­нов­лен и рабо­тал, поэто­му я толь­ко доба­вил несколь­ко ком­по­нен­тов KeeneticOS. Если Entware ещё не сто­ит, сна­ча­ла уста­но­ви­те его по инструк­ции Keenetic.

  1. Систе­ма → Пара­мет­ры систе­мы → Изме­нить набор ком­по­нен­тов. Включите: 
    • «Моду­ли ядра под­си­сте­мы Netfilter»
    • «Пакет рас­ши­ре­ния Xtables-addons для Netfilter»

    После уста­нов­ки роу­тер перезагрузится.

  2. В раз­де­ле «Интер­нет-филь­тры» отклю­чи­те сто­рон­ние филь­тры (NextDNS, SkyDNS, Яндекс DNS и подоб­ные), ина­че они могут мешать.

Шаг 2. Резервная копия

Сохра­ни­те кон­фи­гу­ра­цию роу­те­ра (Систе­ма → Пара­мет­ры систе­мы, файл startup-config) и спи­сок паке­тов Entware:

mkdir -p /opt/backup
tar -czf /opt/backup/etc-backup.tar.gz /opt/etc
opkg list-installed > /opt/backup/opkg-packages.txt

Ско­пи­руй­те архив на ком­пью­тер: поте­ря­е­те пять минут, зато спо­кой­ный сон гарантирован.

Шаг 3. Определите архитектуру

opkg print-architecture

Нуж­ная стро­ка вида aarch64-3.10, mipsel-3.4 и так далее. Адрес репо­зи­то­рия зави­сит от архитектуры:

Архи­тек­ту­ра Адрес репо­зи­то­рия
aarch64 https://nfqws.github.io/nfqws-keenetic/aarch64
mipsel https://nfqws.github.io/nfqws-keenetic/mipsel
mips https://nfqws.github.io/nfqws-keenetic/mips

У мое­го Hopper 4G+ ока­за­лась aarch64, хотя я сна­ча­ла ожи­дал MIPS. Про­ве­ряй­те свой роу­тер коман­дой, а не пола­гай­тесь на назва­ние модели.

Шаг 4. Установка

opkg update
opkg install ca-certificates wget-ssl
mkdir -p /opt/etc/opkg
echo "src/gz nfqws-keenetic https://nfqws.github.io/nfqws-keenetic/aarch64" > /opt/etc/opkg/nfqws-keenetic.conf
opkg update
opkg install nfqws-keenetic

В чет­вёр­той стро­ке aarch64 заме­ни­те на вашу архи­тек­ту­ру. Уста­нов­щик сам опре­де­лит интер­фейс про­вай­де­ра и запу­стит служ­бу. Пра­ви­ла, кото­рые она созда­ёт, пока ниче­го не обра­ба­ты­ва­ют: сле­ду­ю­щий шаг обязателен.

Шаг 5. Политика доступа (самое важное)

По умол­ча­нию обход при­ме­ня­ет­ся толь­ко к устрой­ствам из поли­ти­ки с име­нем nfqws. Без неё не зара­бо­та­ет ничего.

  1. При­о­ри­те­ты под­клю­че­ний → Поли­ти­ки досту­па в интер­нет → Доба­вить поли­ти­ку, имя ров­но nfqws.
  2. Обя­за­тель­но отметь­те в поли­ти­ке под­клю­че­ние к интер­не­ту (кабель, Wi-Fi-кли­ент, модем) и поставь­те его первым.
  3. Пере­не­си­те в поли­ти­ку нуж­ные устрой­ства: ТВ, при­став­ку, свой ПК для проверки.

Граб­ли, на кото­рые насту­пил я: поли­ти­ку создал и устрой­ства доба­вил, а канал в ней отме­тить забыл. Итог: у устройств из поли­ти­ки про­пал интер­нет пол­но­стью. Если «всё сло­ма­лось» после это­го шага, пер­вым делом про­верь­те галоч­ку на подключении.

Осталь­ная сеть оста­ёт­ся нетро­ну­той. Если нуж­но наобо­рот («обход для всех, кро­ме несколь­ких устройств»), в кон­фи­ге есть пара­метр POLICY_EXCLUDE=1.

Шаг 6. Проверка

ps | grep nfqws | grep -v grep
iptables -t mangle -S | grep 200

В пер­вой коман­де дол­жен быть про­цесс nfqws, во вто­рой пра­ви­ла с --queue-num 200. Затем открой­те YouTube на устрой­стве из политики.

Шаг 7. Выбор режима

В кон­фи­ге /opt/etc/nfqws/nfqws.conf стро­ка NFQWS_EXTRA_ARGS зада­ёт режим:

Режим Зна­че­ние Что дела­ет
list $MODE_LIST Толь­ко доме­ны из user.list. Реко­мен­ду­е­мый для повсе­днев­ной работы
auto $MODE_AUTO Спи­сок плюс авто­ма­ти­че­ское обна­ру­же­ние бло­ки­ро­вок (по умолчанию)
all $MODE_ALL Весь тра­фик, кро­ме exclude.list. Боль­ше нагруз­ка, выше риск побоч­ных эффектов

Что­бы пере­клю­чать­ся одной командой:

cat > /opt/bin/nfqws-mode << 'EOF'
#!/bin/sh
CONF="/opt/etc/nfqws/nfqws.conf"
case "$1" in
  list) VAL='$MODE_LIST' ;;
  all)  VAL='$MODE_ALL'  ;;
  auto) VAL='$MODE_AUTO' ;;
  *) echo "Использование: nfqws-mode list|all|auto"; exit 1 ;;
esac
sed -i "s|^NFQWS_EXTRA_ARGS=.*|NFQWS_EXTRA_ARGS="$VAL"|" "$CONF"
/opt/etc/init.d/S51nfqws restart
echo "Режим: $1"
EOF
chmod +x /opt/bin/nfqws-mode

Исполь­зо­ва­ние: nfqws-mode list, nfqws-mode auto, nfqws-mode all. Управ­ле­ние служ­бой: /opt/etc/init.d/S51nfqws start|stop|restart|status.

Я оста­вил режим list: когда спи­сок из репо­зи­то­рия загру­жен, авто­опре­де­ле­ние бло­ки­ро­вок избыточно.

Шаг 8. Автообновление списков

В ком­плек­те уже есть спи­сок из несколь­ких сотен доме­нов. Что­бы он не уста­ре­вал, я под­тя­ги­ваю акту­аль­ные спис­ки из откры­то­го репо­зи­то­рия itdoginfo/allow-domains (общий спи­сок Russia/inside-raw.lst и отдель­ный Services/youtube.lst) и объ­еди­няю с соб­ствен­ны­ми доменами.

Три фай­ла и их роли:

Файл Роль
custom.list Ваши доме­ны. Редак­ти­руй­те этот файл, а не user.list
remove.list Доме­ны, кото­рые все­гда вычи­ща­ют­ся из ито­го­во­го спис­ка (необя­за­тель­но)
user.list Ито­го­вый спи­сок, кото­рый чита­ет nfqws. Соби­ра­ет­ся скрип­том, руч­ные прав­ки в нём про­па­да­ют при обновлении

Уста­нов­ка зави­си­мо­стей и скрипт:

opkg install cron curl
touch /opt/etc/nfqws/remove.list
cat > /opt/etc/nfqws/update_lists.sh << 'EOF'
#!/bin/sh
export PATH=/opt/bin:/opt/sbin:/usr/bin:/usr/sbin:/bin:/sbin
DIR="/opt/etc/nfqws"
CUSTOM="$DIR/custom.list"      # ваши домены, редактируйте ЭТОТ файл
REMOVE="$DIR/remove.list"      # домены, которые всегда вычищаются из итога
TMP="/tmp/remote.list"

# >>> СЮДА ПРОПИСЫВАЮТСЯ АДРЕСА СПИСКОВ (по одному на строку) <<<
URLS="
https://raw.githubusercontent.com/itdoginfo/allow-domains/main/Russia/inside-raw.lst
https://raw.githubusercontent.com/itdoginfo/allow-domains/main/Services/youtube.lst
"

# Первый запуск: сохраняем текущий user.list как ваш личный
if [ ! -f "$CUSTOM" ]; then
    cp "$DIR/user.list" "$CUSTOM"
    printf '%sn' youtube.com googlevideo.com ytimg.com ggpht.com youtu.be >> "$CUSTOM"
fi

: > "$TMP"
for U in $URLS; do
    if ! curl -fsSL --max-time 60 "$U" >> "$TMP"; then
        logger -t nfqws-update "Ошибка загрузки $U, список не изменён"
        rm -f "$TMP"
        exit 1
    fi
    echo >> "$TMP"
done

# Объединяем, оставляем только строки, похожие на домены, убираем дубли
cat "$TMP" "$CUSTOM" | tr -d 'r' 
  | grep -E '^[A-Za-z0-9._-]+.[A-Za-z]{2,}$' | sort -u > "$DIR/user.list.new"

# Вычищаем домены из remove.list
if [ -s "$REMOVE" ]; then
    grep -vxFf "$REMOVE" "$DIR/user.list.new" > "$DIR/user.list.tmp"
    mv "$DIR/user.list.tmp" "$DIR/user.list.new"
fi

# Защита: не подменяем рабочий список, если результат подозрительно мал
if [ "$(wc -l < "$DIR/user.list.new")" -lt 100 ]; then
    logger -t nfqws-update "Итоговый список слишком мал, отмена"
    rm -f "$DIR/user.list.new" "$TMP"
    exit 1
fi

mv "$DIR/user.list.new" "$DIR/user.list"
rm -f "$TMP"
/opt/etc/init.d/S51nfqws restart
logger -t nfqws-update "Списки обновлены"
EOF
chmod +x /opt/etc/nfqws/update_lists.sh

Руч­ной запуск и проверка:

/opt/etc/nfqws/update_lists.sh
wc -l /opt/etc/nfqws/user.list

У меня после запус­ка в ито­го­вом спис­ке ока­за­лось 1428 доменов.

Рас­пи­са­ние: раз в неде­лю, суб­бо­та, 05:00 (по часам роутера):

mkdir -p /opt/var/spool/cron/crontabs
echo "0 5 * * 6 /opt/etc/nfqws/update_lists.sh" >> /opt/var/spool/cron/crontabs/root
/opt/etc/init.d/S10cron restart

Адрес репо­зи­то­рия со спис­ка­ми про­пи­сы­ва­ет­ся в бло­ке URLS в нача­ле скрип­та. Перед исполь­зо­ва­ни­ем любо­го сто­рон­не­го спис­ка про­верь­те, что он отда­ёт чистый текст: curl -s АДРЕС | head.

Ловуш­ка: в сбор­ке роу­те­ра может не ока­зать­ся коман­ды logread, поэто­му «уви­деть в жур­на­ле» обнов­ле­ние не полу­чит­ся. Надёж­ный спо­соб про­вер­ки: ls -l /opt/etc/nfqws/user.list, вре­мя изме­не­ния фай­ла долж­но сов­пасть с запус­ком по рас­пи­са­нию. У меня это сра­бо­та­ло в первую же суб­бо­ту в 05:00. Часо­вой пояс роу­те­ра может отли­чать­ся от ваше­го, сверь­те коман­дой date.

Шаг 9. Автозапуск после перезагрузки

Ниче­го настра­и­вать не нуж­но: Entware сам запус­ка­ет скрип­ты из /opt/etc/init.d/ (там лежит S51nfqws), а скрипт /opt/etc/ndm/netfilter.d/100-nfqws.sh пере­со­зда­ёт пра­ви­ла, когда KeeneticOS пере­стра­и­ва­ет firewall.

Но про­ве­рить сто­ит. Пере­за­гру­зи­те роу­тер (reboot), подо­жди­те пару минут и выполните:

ps | grep -E "nfqws|crond" | grep -v grep
iptables -t mangle -S | grep 200

Долж­ны быть про­цес­сы nfqws и crond (один crond, если их два, зада­ния будут сра­ба­ты­вать два­жды) и пра­ви­ла --queue-num 200.

Заод­но про­верь­те, что обнов­ле­ние рабо­та­ет в «голом» окру­же­нии, как это дела­ет cron:

env -i /bin/sh /opt/etc/nfqws/update_lists.sh
ps | grep nfqws | grep -v grep

Если номер про­цес­са nfqws изме­нил­ся, скрипт отра­бо­тал и служ­бу перезапустил.


Как измерить результат честно

  1. Оста­но­ви­те обход: /opt/etc/init.d/S51nfqws stop.
  2. Запу­сти­те онлайн-тест доступ­но­сти сер­ви­сов на устрой­стве из поли­ти­ки, запи­ши­те число.
  3. Вклю­чи­те обрат­но: /opt/etc/init.d/S51nfqws start, повто­ри­те тест.

Раз­ни­ца и есть поль­за мето­да на вашем кана­ле. Делай­те по 2-3 про­го­на в каж­дом режи­ме: резуль­та­ты меж­ду про­го­на­ми «пла­ва­ют» на ±10 сай­тов, пото­му что тест огра­ни­чен по вре­ме­ни, а погра­нич­ные сай­ты то успе­ва­ют отве­тить, то нет. Шири­на кана­ла тут ни при чём, про­вер­ка пере­да­ёт кило­бай­ты. Сай­ты, кото­рые недо­ступ­ны во всех про­го­нах, надёж­но «не лечат­ся» обхо­дом. Верить сто­ит откры­тию в бра­у­зе­ре, а не счёт­чи­ку теста.

У меня: 57 сер­ви­сов без обхо­да, 73 с обхо­дом (из 105).


Подводные камни

Симп­том При­чи­на Что делать
После созда­ния поли­ти­ки у устройств нет интернета В поли­ти­ке не отме­че­но подключение Отметь­те канал в поли­ти­ке и поставь­те первым
Ниче­го не изме­ни­лось после установки Устрой­ство не добав­ле­но в поли­ти­ку nfqws или поли­ти­ки нет Создай­те поли­ти­ку, пере­не­си­те устрой­ства, пере­за­пу­сти­те службу
Интер­фейс про­вай­де­ра опре­де­лил­ся как apcli0 Интер­нет идёт по Wi-Fi-кли­ен­ту, это нормально Менять не нуж­но. При несколь­ких кана­лах впи­ши­те интер­фей­сы через про­бел в ISP_INTERFACE
Сайт не откры­ва­ет­ся (ERR_CONNECTION_TIMED_OUT) Бло­ки­ров­ка по IP, а не по имени nfqws не помо­жет, нужен туннель
logread: not found В сбор­ке нет этой команды Про­ве­ряй­те вре­мя фай­ла user.list
Зада­ния cron выпол­ня­ют­ся дважды Запу­ще­но два экзем­пля­ра crond Оставь­те один скрипт запус­ка cron
Спи­сок пере­стал обновляться Недо­сту­пен адрес репозитория Скрипт оста­вит ста­рый спи­сок, про­верь­те адрес через curl -s АДРЕС | head

Режим all вклю­чай­те послед­ним и толь­ко при необ­хо­ди­мо­сти: он нагру­жа­ет про­цес­сор и может ломать часть сер­ви­сов (бан­ки, игры).


Откат

Уста­нов­ка пол­но­стью обратима:

/opt/etc/init.d/S51nfqws stop
opkg remove --autoremove nfqws-keenetic

Оста­нов­ка уби­ра­ет пра­ви­ла iptables, а уда­ле­ние паке­та сни­ма­ет служ­бу. Зада­ние в cron уда­ли­те из /opt/var/spool/cron/crontabs/root. Настрой­ки роу­те­ра вер­нёт сохра­нён­ный на шаге 2 файл startup-config.


Вопросы и ответы

Подой­дёт ли для смарт-ТВ и консолей?
Да, это глав­ный плюс мето­да. Обход рабо­та­ет на роу­те­ре, на самом устрой­стве ниче­го ста­вить не нуж­но. Доста­точ­но доба­вить его в поли­ти­ку nfqws.

Силь­но ли гре­ет­ся и нагру­жа­ет­ся роутер?
На ARM-про­цес­со­рах нагруз­ка неболь­шая в режи­ме list. Режим all созда­ёт замет­но боль­шую нагрузку.

Будет ли рабо­тать завтра?
Это гон­ка воору­же­ний: пока рабо­та­ет, но гаран­тий нет. Полез­но пери­о­ди­че­ски обнов­лять пакет (opkg update && opkg upgrade nfqws-keenetic) и сле­дить за проектом.

Это туннель?
Нет. Тра­фик идёт напря­мую, без тун­не­ля, сме­на IP-адре­са не про­ис­хо­дит. Поэто­му метод не обхо­дит бло­ки­ров­ки по IP и гео-огра­ни­че­ния, зато не режет ско­рость и не тре­бу­ет соб­ствен­но­го сервера.


Итог

Что Резуль­тат
Вре­мя настройки око­ло часа при гото­вом Entware
Что полу­чил YouTube на любых устрой­ствах в сети без туннель и без соф­та на устройствах
Зани­ма­ет места мень­ше 1 МБ (бинар­ник 122 КБ, кон­фи­ги и спис­ки 64 КБ)
Обслу­жи­ва­ние спи­сок обнов­ля­ет­ся сам раз в неделю
Глав­ное ограничение не помо­га­ет при бло­ки­ров­ке по IP-адресам
Глав­ный риск DPI обнов­ля­ют­ся, стра­те­гию при­дёт­ся ино­гда под­би­рать заново

Для кли­ен­тов, кото­рым важ­но, что­бы YouTube на теле­ви­зо­ре про­сто рабо­тал, это быст­рый и рабо­чий метод. Для все­го осталь­но­го, что забло­ки­ро­ва­но по IP, нужен туннель.


Ссылки