- PVSM.RU - https://www.pvsm.ru -

Недавно попалась статья на Хабре — «Решаем проблему устаревания кэширующих серверов. Смотрим на телевизоре. Не VPN [1]» от автора @CyberexTech [2] проделал все шаги по ней, но с моим провайдером YouTube не заработал. Соответственно решил опробовать другие решения, одно из которых в итоге сработало, настроил его также через Raspberry Pi. В этой статье делюсь опытом настройки на случай, если решение от @CyberexTech [2] у вас не сработало.
Попробовал различные решения byedpi [3], zapret [4] и youtubeUnblock [5]. В итоге у моего провайдера сработало только последнее. Мотивация примерно такая же, как и у всех, хотелось настроить работу YouTube на телевизоре, чтобы моя бабуля могла смотреть ролики про зверушек.
Ясно, что на компьютере можно локально установить сервис, но как быть с телевизором. В прошивку телевизора с таким запросом не полезешь, значит нужно либо менять/добавлять роутер на ОС OpenWrt [6] и плясать с бубном, чтобы его настроить, либо добавить в сеть ещё одно звено, которое будет «портить» транзитный tcp трафик, благодаря чему возобновляется работа кэширующих серверов YouTube.
В моём случае я выбрал добавить ещё одно звено, тем более через него можно пропускать трафик не только с телевизора, но и с ПК и с телефона тоже, в общем с любого устройства, подключенного в домашнюю локальную сеть.
Для тестирования настоятельно рекомендую использовать VirtualBox [7], т.к. сразу может не получиться пробиться к кэширующим серверам YouTube. Для подобного сервиса вероятно подойдёт любой одноплатник независимо от его мощности, например RaspberryPi [8] или OrangePi [9], фактически любое устройство с Linux на борту, т.к. этот сервис просто не потребляет много ресурсов.
Первым делом необходимо зайти в файл /etc/sysctl.conf и раскоментировать там строчку net.ipv4.ip_forward=1, чтобы разрешить транзитный трафик через одноплатник.
vim /etc/sysctl.conf
Найти и раскомментировать
net.ipv4.ip_forward=1
Выполнить команду, чтобы применить настройки
sysctl -p
Теперь одноплатник будет проксировать интернет трафик, если подключиться к нему в качестве основного шлюза.
Необходимые пакеты для сборки и c/c++ компилятор
apt install gcc make autoconf automake pkg-config libtool
Заголовки ядра линукса
apt install linux-headers-$(uname -r)
Пакеты iptables и git
apt install iptables git
Клонируем репозиторий и заходим в папку с ним
git clone https://github.com/Waujito/youtubeUnblock.git
cd youtubeUnblock
В папке сервиса нам нужно найти и поменять содержимое файла youtubeUnblock.service, т.к. сервис изначально настроен на обработку ("порчу") tcp трафика на локальном ПК, то, чтобы он работал с транзитным трафиком, необходимо добавить новые правила iptables в ExecStartPre и ExecStop сервиса.
Полный изменённый код для файла youtubeUnblock.service:
[Unit]
Description=youtubeUnblock
[Service]
StandardError=journal
StandardOutput=journal
StandardInput=null
ExecStartPre=/bin/bash -c 'iptables -t mangle -A POSTROUTING -p tcp --dport 443 -j NFQUEUE --queue-num 537 --queue-bypass && iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass'
ExecStart=$(PREFIX)/bin/youtubeUnblock
ExecStop=/bin/bash -c 'iptables -t mangle -D POSTROUTING -p tcp --dport 443 -j NFQUEUE --queue-num 537 --queue-bypass && iptables -t mangle -D OUTPUT -p tcp -m tcp --dport 443 -m connbytes --connbytes-dir original --connbytes-mode packets --connbytes 0:19 -j NFQUEUE --queue-num 537 --queue-bypass'
[Install]
WantedBy=multi-user.target
Компилируем и устанавливаем сервис
make
make install
Добавляем сервис в автозагрузку
systemctl enable youtubeUnblock.service
Запускаем сервис
systemctl start youtubeUnblock.service
После этого можно смело перезагружать одноплатник, сервис поднимется на нём автоматически.
Теперь, когда сервис настроен и развёрнут на одноплатнике, всё, что нужно это настроить основной шлюз на телевизоре/ПК/телефоне
В качестве завершения просто повторю конец из статьи [1] @CyberexTech [2], надеюсь он не будет против :)
Для настройки использования нашего «кэширующего» сервера на смарт телевизоре LG, нам необходимо вручную прописать сетевую конфигурацию, как это сделать - показано ниже на картинке
В нашем случае, необходимо прописать в качестве шлюза IP адрес одноплатника, а в качестве DNS использовать адреса 8.8.8.8 и 8.8.4.4. И, само собой, IP адрес нашего «кэширующего» сервера (он же одноплатный компьютер) должен быть статическим - это легко делается с помощью роутера (привязка IP к MAC) или средствами самого одноплатника.
Итак, с помощью недорого одноплатника, нам удалось справиться с устареванием кэширующих серверов видеохостинга, теперь мы можем и дальше наслаждаться образовательным и развлекательным контентом,
Обратите внимание, что данная статья не популяризует и не склоняет пользователя к обходу блокировок. Здесь лишь описан частный технический случай, который является труднореализуемым со стороны обычного обывателя. Также автор статьи не несет ответственность за содержание сторонних репозиториев и возможные риски в последствии их использования.
Спасибо за внимание.
Автор: DimaFromMai
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/setevy-e-tehnologii/406823
Ссылки в тексте:
[1] Решаем проблему устаревания кэширующих серверов. Смотрим на телевизоре. Не VPN: https://habr.com/ru/articles/870254/
[2] @CyberexTech: https://www.pvsm.ru/users/cyberextech
[3] byedpi: https://github.com/hufrea/byedpi
[4] zapret: https://github.com/bol-van/zapret
[5] youtubeUnblock: https://github.com/Waujito/youtubeUnblock
[6] OpenWrt: https://github.com/openwrt/openwrt
[7] VirtualBox: https://www.virtualbox.org
[8] RaspberryPi: https://www.raspberrypi.com/
[9] OrangePi: http://www.orangepi.org/
[10] Источник: https://habr.com/ru/articles/871460/?utm_source=habrahabr&utm_medium=rss&utm_campaign=871460
Нажмите здесь для печати.