Не так давно всех потрясла новость об устаревании оборудования популярного видеохостинга, в результате чего сервис перестал нормально работать и началось замедление. Сначала в замедлении сервиса пытались обвинить Роскомнадзор, но до сих пор нет внятных нормативно-правовых актов (поправьте меня в комментариях, если я ошибаюсь), которые бы позволяли данному органу применять методы блокировки в отношении сервиса. Я не верю, что государственный орган может нарушать закон, поэтому будем исправлять проблему самостоятельно и поднимем свой «кэширующий» сервер.

В качестве нашего «кэширующего» сервера будем использовать дешевый одноплатный компьютер MangoPi MQ-Quad (или другой аналогичный), стоимостью не более $29.

Одноплатный компьютер MangoPi MQ-Quad
Одноплатный компьютер MangoPi MQ-Quad

Перед дальнейшими действиями необходимо установить операционную систему не ниже Debian 11 и настроить подключение платы к вашей Wi-Fi сети.

Установка программного обеспечения

Для установки ПО нам необходимо подключиться по SSH к нашему одноплатнику, и для обновления выполним следующую команду:

sudo apt-get update && apt-get upgrade

Для работы нашего «кэширующего» сервера необходимо включить IP-Forwarding.

Редактируем файл /etc/sysctl.conf

sudo nano /etc/sysctl.conf

Найдем и раскомментируем строку

net.ipv4.ip_forward=1

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

sudo sysctl -p

Для работы нашего «кэширующего» сервера понадобится прокси сервер, будем использовать RedSocks.

Установка и настройка redsocks

sudo apt-get install redsocks

Отредактируем конфигурационный файл

sudo nano /etc/redsocks.conf

До следующего содержания:

base {
    log_debug = off;
    log_info = on;
    log = "file:/var/log/redsocks.log";
    daemon = on;
    redirector = iptables;
}

redsocks {
    local_ip = 0.0.0.0;
    local_port = 12345;
    ip = 127.0.0.1;   
    port = 1080;    
    type = socks5;
}

Далее нам нужно настроить iptables для правильной работы нашего «кэширующего» сервера

sudo iptables -A FORWARD -i end0 -o end0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o end0 -j MASQUERADE
sudo iptables -t nat -N REDSOCKS
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
sudo iptables -t nat -A PREROUTING -i end0 -p tcp -j REDSOCKS

Где end0 - это сетевой интерфейс, с помощью которого подключена ваша плата к сети. Узнать имена доступных интерфейсов можно с помощью команд

ip a или ifconfig

Добавляем правила iptables для автозагрузки при запуске системы

Сохранение текущих правил iptables в файл iptables.rules. Создаем файл и ограничиваем к нему доступ:

sudo touch /etc/iptables.rules
sudo chmod 640 /etc/iptables.rules

Сохраняем текущие правила iptables в файл

sudo iptables-save | sudo tee /etc/iptables.rules

Автозагрузка сохраненных правил. В /etc/network/if-pre-up.d/ создаём файл iptables, со следующим содержимым:

#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0

Делаем созданный сценарий исполнимым

sudo chmod +x  /etc/network/if-pre-up.d/iptables

Создаем основной сервис, без которого наш «кэширующий» сервер не заработает. Создаем под другим пользователем, например orangepi. Входим под пользователем orangepi и клонируем репозиторий:

git clone https://github.com/hufrea/byedpi

Переходим в папку с репозиторием и собираем

сd byedpi
make

Далее необходимо создать сервис для автозагрузки:

nano /etc/systemd/system/byedpi_orange_pi.service

И сохраняем следующее содержимое

[Unit]
Description=dpi port 1080
After=network.target

[Service]
WorkingDirectory=/home/orangepi/byedpi
User=orangepi
Group=orangepi
ExecStart=/home/orangepi/byedpi/ciadpi -d1 -o25+s --auto=torst

[Install]
WantedBy=multi-user.target

Добавляем скрипт в автозагрузку

systemctl enable byedpi_orange_pi

Перезагружаем систему

sudo shutdown -r now

Настройка телевизора (на примере Web OS LG)

Для настройки использования нашего «кэширующего» сервера на смарт телевизоре LG, нам необходимо в ручную прописать сетевую конфигурацию, как это сделать - показано ниже на картинке

Конфигурация сетевого подключения. Взято с форума LG.
Конфигурация сетевого подключения. Взято с форума LG.

В нашем случае, необходимо прописать в качестве шлюза IP адрес одноплатника, а в качестве DNS использовать адреса 8.8.8.8 и 8.8.4.4. И, само собой, IP адрес нашего «кэширующего» сервера (он же одноплатный компьютер) должен быть статическим - это легко делается с помощью роутера (привязка IP к MAC) или средствами самого одноплатника.

Итоги

Итак, с помощью недорого одноплатника, нам удалось справиться с устареванием кэширующих серверов видеохостинга, теперь мы можем и дальше наслаждаться образовательным и развлекательным контентом,

Обратите внимание, что данная статья не популяризует и не склоняет пользователя к обходу блокировок. Здесь лишь описан частный технический случай, который является труднореализуемым со стороны обычного обывателя. Также автор статьи не несет ответственность за содержание сторонних репозиториев и возможные риски в последствии их использования.

Комментарии (73)


  1. ildarz
    27.12.2024 08:15

    Насколько такой сервер стабилен, требуется ли периодическая ручная переконфигурация алгоритма кэширования с подбором новых параметров?


    1. CyberexTech Автор
      27.12.2024 08:15

      Уже работает третий месяц, пока алгоритм кэширования не менял)


  1. Ranger21
    27.12.2024 08:15

    Вариант с keenetic и хорошим opkg пакетом лучше и работает для всей сети без необходимости конфигурировать клиентов, и работает с QUIC


    1. gotch
      27.12.2024 08:15

      Keenetic с USB-портом или довольно свежая модель. Не такая большая выборка.


    1. nolirpaf
      27.12.2024 08:15

      Напишите, пожалуйста, какой opkg пакет нужен, ну и какой keenetic подойдёт. Спасибо.


      1. Ranger21
        27.12.2024 08:15

        Любой новый кинетик (не zyxel) с юсб портом и вот это

        https://github.com/Anonym-tsk/nfqws-keenetic


        1. Popadanec
          27.12.2024 08:15

          Не помню точно, но вроде со старыми кинетиками, которые ещё с логотипом zyxel, проблема с определением флешки решаемая(не со всеми). Но сам не проверял, т.к. есть более свежий кинетик, на котором всё работает. Старый кинетик zyxel тоже есть, когда нибудь руки до него дойдут, но это не точно.


        1. gotch
          27.12.2024 08:15

          Когда читал эту статью , думал, что можно и без USB, но посмотрел внимательно список, в нем, видимо, только USB модели. Жалко, придется распаковать EEEPC 701 )


          1. Jumper_In
            27.12.2024 08:15

            Купил себе кинетика без USB, уже намаялся с инструкциями как на его внутрянку закинуть OPKG, видимо пойду менять на USB-шный


        1. MicrofCorp
          27.12.2024 08:15

          У меня на zyxel keenetic ultra стоит tpws и никаких проблем. Только что quic нету


    1. SargeT
      27.12.2024 08:15

      Сразу же погуглил... Вы говорите про https://habr.com/ru/articles/834826/?

      UPD: Я буду обновлять комментарии перед отправкой.


  1. Nuflyn
    27.12.2024 08:15

    Вначале статьи сарказм уровень бог)


    1. Survtur
      27.12.2024 08:15

      Это не сарказм, автор правду написал /s


    1. TyraSkrini
      27.12.2024 08:15

      Я даже сразу не понял ))


      1. gotch
        27.12.2024 08:15

        Наш российский новояз пополнился новым оборотом.

        Недавно вышли из строя кеширующие серверы Viber, кеш WhatsApp под вопросом. У Instagram скорее всего устарел кеш ip-адресов, поэтому индивидуальные средства на него не действуют.


        1. tutitututu
          27.12.2024 08:15

          РКН закукожил состарил сервера Google и Viber, сервера WhatsApp ожидают очереди на устаревание.


          1. Vitimbo
            27.12.2024 08:15

            Отсюда наша родина диктует свою непреклонную волю всему остальному мировому сообществу

            - из офиса РКН


  1. vova_sam
    27.12.2024 08:15

    на роутере универсальное решение.


    1. PereslavlFoto
      27.12.2024 08:15

      Но только если роутер позволяет запускать такое решение. Увы, не у всякого роутера достаточно памяти.


      1. Popadanec
        27.12.2024 08:15

        Если это бюджетная и/или древняя железка, не поддерживающая современную OpenWRT.


      1. M_AJ
        27.12.2024 08:15

        Описанное в статье решение подходит тоже в основном тем у кого уже есть железка, на которой это можно запустить. Потому что если ее нужно покупать, то тут стоит в том числе рассмотреть и вариант покупки нового роутера, который можно прошить под OpenWRT. На Озоне такие можно найти по цене в районе 3-4 тыс. рублей, это сравнимо с одноплатниками, только роутер будет еще с поддержкой Wi-Fi AX


  1. gotch
    27.12.2024 08:15

    Так значит можно просто на домашнем ноутбуке с Windows и кеширующим сервером Google включить роутинг, задать адрес ноутбука роутером на телеке и всё заработает. :-)


    1. CyberexTech Автор
      27.12.2024 08:15

      Да, главное не забыть установить важный сервис)


      1. gotch
        27.12.2024 08:15

        Посмотрел на GoodbyeDPI, этот альтернативный GGC видимо не может работать с транзитным трафиком, вероятно zapret для windows - тоже.


  1. microArt
    27.12.2024 08:15

    Спасибо Вам за статью, сохранила. (Такое надо сразу сохранять).

    Скажите, а каким видите будущее своего замечательного устройства после того, как РКН примет приказ об отслеживании идентификаторов пользовательского оборудования? Не придется ли его отключать?

    Спрашиваю потому, что у меня тоже настроен кэширующий сервер Гугла, работающий на схожем физическом принципе. (На нем настроены z***** и squid, больше ничего нет). Только я уже смирилась с тем, что в феврале скорее всего его придется отключить - как раз из-за этого. Трафик не шифруется, провайдеру и РКН все видно, что куда идет. Зато Ютуб работает.


    1. larasage
      27.12.2024 08:15

      Вроде как только о пытающихся заходить на заблокированные сайты должны будут провайдеры отправлять информацию в РКН. Ютуба в списке заблокированных нет.


    1. CyberexTech Автор
      27.12.2024 08:15

      Скажите, а каким видите будущее своего замечательного устройства 

      Пока, как и у многих, горизонт планирования 10 минут.


    1. JBFW
      27.12.2024 08:15

      Устранение этой проблемы лежит вне плоскости IT-технологий.
      Будут отслеживать - что ж, пусть отслеживают.

      Этак они завтра захотят отслеживать кто в небо посмотрел, по уличным камерам - так что, не смотреть что ли?


      1. Per_Ardua
        27.12.2024 08:15

        Ну почему же, можно смотреть. Только сначала нужно будет талончик приобрести.


        1. Robastik
          27.12.2024 08:15

          Оптимистичненько.

          Не исключено, что после третьего посещения сайтов из списка РКН все пользователи IP автоматом будут попадать в список иноагентов/экстремистов/террористов. /не сарказм


  1. saibaneko
    27.12.2024 08:15

    Стоило бы сделать примечание, что ciadpi -d1 -o25+s --auto=torst это не панацея, и как раз нахождение этих золотых параметров отдельный квест.


  1. razduplyator228
    27.12.2024 08:15

    Ну весьма годное решение, но как будто 6in4 выгодней смотрится)


    1. ZlobniyShurik
      27.12.2024 08:15

      У 6in4 есть подводные камни.
      Во-первых, ютуб начинает блочить часть роликов из-за проблем с определением географического расположения клиента. Во-вторых, как оказалось, ещё попадаются TV, что умеют исключительно IPv4.

      Но так, да, работает.


    1. JBFW
      27.12.2024 08:15

      и как это настроить, сидя за двумя натами с динамическим белым IP где-то там?

      Без стёба, не получилось.


    1. nitro80
      27.12.2024 08:15

      Если нравится постоянно капчу разгадывать


  1. An_private
    27.12.2024 08:15

    Покопался у себя в развалах, нашёл Raspberry PI 3B. Потянет?


    1. CyberexTech Автор
      27.12.2024 08:15

      Должно


      1. nitro80
        27.12.2024 08:15

        А ведь в каждой современной ОС можно запустить виртуальную машину. И железо отдельное наверно тогда не понадобится


        1. CyberexTech Автор
          27.12.2024 08:15

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


  1. AuToMaton
    27.12.2024 08:15

    Почему мне кажется что у одноплатника должно быть два сетевых интерфейса и место ему - между вводом в квартиру и маршрутизатором? Потому, что когда-то вся моя сеть состояла из Мак Мини и мобильных устройств? Потому, что мне думается что к этому всё равно придётся придти перед тем как отнимут и Линукс?


    1. microArt
      27.12.2024 08:15

      "как отнимут и Линукс?"

      Как отнимут? Кто отнимет?


    1. CyberexTech Автор
      27.12.2024 08:15

      Не обязательно. Тут немного другие задачи).


    1. kaseiiro
      27.12.2024 08:15

      Пожалуй, слабоват. А так-то да, в качестве домашнего маршрутизатора с кешированием другие «фруктовые» платы вполне.


  1. Barnaby
    27.12.2024 08:15

    Если приставка на андроиде, можно использовать кэширующий прокси для андроида и обойтись без одноплатника https://github.com/romanvht/ByeDPIAndroid (+ в него встроен скрипт для поиска оптимальных настроек сервера)


    1. nalivay
      27.12.2024 08:15

      У меня на ростелекоме этот прокси так и не смог подобрать нужный алгоритм кэширования... :)

      Юзаю кэширующий сервер на все андроид и эпол гаджеты в локальной сети, на основе старого виндовс "ноута" с разбитым экраном и пассивным охлаждением, с алгоритмом z....t внутри.


  1. cupespresso
    27.12.2024 08:15

    Метод кеширования "-d1 -o25+s --auto=torst" может не заработать и его нужно подбирать индивидуально. Я делаю так. Скачиваю приложение на андроид (на гитхабе от romanvht) для подбора метода кеширования. Подключаюсь к своему провайдеру и в настройках приложения ищу функцию "подбор команд". Запускаю и выбираю наиболее подходящий метод кэширования.


  1. Wizard_of_light
    27.12.2024 08:15

    2014: "Ха-ха, не могут же они запретить ***!"

    2024: *** - нецензурное слово, удалено по требованию законодательства.

    Как приличная лягушка заявляю, что уже не только сварился, но и изрядно подгорел.


  1. JBFW
    27.12.2024 08:15

    Спасибо автору, теперь я тоже починил старые поломанные сервера Гугля )

    В качестве одноплатника - один из ТВ-боксов, X96q, 1/8 Gb, 32битный ARM.
    Работает вроде...


    1. CyberexTech Автор
      27.12.2024 08:15

      Пожалуйста. Я рад, что моя статья вам помогла.


  1. jackgrebe
    27.12.2024 08:15

    автору ++ за стиль и тематику.
    а можно мне что-нибудь кэширующее и работающее для OpenWrt ?
    мой сервер на базе ТП-Линк Арчер превратился в тыкву, все *Pi для меня темный лес.

    ps: удалось справиться с «устареванием» '', нашего «кэширующего» сервера '' - по-моему кавычки внутри совершенно лишние, если автор не против попросим его убрать ?


    1. CyberexTech Автор
      27.12.2024 08:15

      кавычки внутри совершенно лишние, если автор не против попросим его убрать ?

      Готово)


      1. jackgrebe
        27.12.2024 08:15

        следствие из законов Мерфи^W подлости в приложении к пониманию текста: если есть хотя бы тень возможности чтобы меня поняли неправильно, то обязательно меня поймут неправильно.

        я имел в виду: вообще все саркастические кавычки убрать.

        с самого начала: "поднимем свой «кэширующий» сервер", "В качестве нашего «кэширующего» сервера будем" и далее по тексту до конца.

        ps: статью буду рекомендовать как образец "как писать о том о чем писать низзя".


    1. JBFW
      27.12.2024 08:15

      Возьмите вот такую тв-приставку (точно такую, см. на картинку - узор на корпусе - вид и цвет пульта ДУ, за другие подобные с тем же названием, Z8, не скажу, а ссылку на товар давать вроде нельзя)

      Зайдите сюда: https://github.com/NickAlilovic/build/releases/tag/v20240716

      Запишите на SD-карту, загрузите, ответьте на вопросы, установите на emmc

      armbian-install

      Получится 64-битная машинка с 4 GB RAM, 32 Gb "диском", и Армбианом (Дебианом)
      Делается с минимальными усилиями, для ремонта серверов более чем достаточно.


      1. xenon
        27.12.2024 08:15

        Вариант с приставкой мне нравится. Сам использую tox1 и tox3. Они рутятся просто искаропки настоящий Android и легко ставится амнезия и-или другие важные программы. (ну там... свиньями в птиц пулять, ну вы понимаете)


  1. xaoc80
    27.12.2024 08:15

    Здравствуйте! А такой способ сработает, чтобы смотреть сервис на ноутбуке с Linux, если прямо на нем поднять виртуалку или докер с настройками, как у вас? Или там есть какие-то другие способы. PS сейчас использую впн


    1. CyberexTech Автор
      27.12.2024 08:15

      Способ сработает на любом Linux, Ubuntu, Debian, Armbian, etc. Если на ноутбуке уже установлен Linux, то можно без виртуализации. После всех описанных манипуляций, просто пропишите системный прокси socks5 с адресом 127.0.0.1 на порту 1080.


    1. pvzh
      27.12.2024 08:15

      Доброго дня! На Линукс ПК оно вообще на изи. Достаточно уточнить, что вежливое прощание с Гитхаба намеренно оформленно в виде Сокс-прокси, чтобы не ломать вообще всю сетевую подсистему. К тому же оно уже собрано и лежит в релизах, конпелять не обязательно. Более того, это один портабельный бинарь, можно запускать не напостоянку службой, а закинуть в ~/.local/bin и просто в терминале открыть на нужное время. Ну а куда натянуть Сокс это уже дело десятое, в Лисе отдельная настройка, в Хромых – или в системе целиком или через параметр командной строки, для особо чопорных особ типа wget есть `apt install tsocks`.


  1. vvbob
    27.12.2024 08:15

    Гуглу надо поучиться - как почти даром делать кеширующиеи очень эффективно работающие сервера!


  1. AdVv
    27.12.2024 08:15

    Уважаемый автор, не вполне понятно зачем вы заворачиваете трафик в прозрачный прокси, разве нет инструментов под Linux по типу GoodbyeDPI, который просто модифицируют пакеты на лету ?


    1. CyberexTech Автор
      27.12.2024 08:15

      Чтобы наш «кэширующий» сервер мог работать как шлюз, а не просто прокси сервером. Это нужно для просмотра видеосервиса на смарт телевизоре и других устройствах, где нет возможности настройки Socks5.


  1. DmitryOlkhovoi
    27.12.2024 08:15

    у меня вот час назад без впн на ростелекоме ютуб заработал


    1. Robastik
      27.12.2024 08:15

      Это хабраэффект, ведь кеширующие сервера общими усилиями починили


  1. cck7777
    27.12.2024 08:15

    Есть такое выражение "Эзопов язык". Думаю, был бы Эзоп сейчас жив, автор легко мог бы его на "баттл" пригласить! Аплодирую!


  1. oleg_rico
    27.12.2024 08:15

    Спасибо большое!

    Ну вот как починить кэширующие сервера, когда ты в мобильной сети? Или в деревне где роутер через tele2 работает...


    1. CyberexTech Автор
      27.12.2024 08:15

      То есть есть роутер? Значит есть и сеть Wi-Fi. Просто подключаете данное устройство к вашей Wi-Fi сети и указываете на других устройствах его в качестве шлюза или прокси.


  1. xenon
    27.12.2024 08:15

    Недавно нашел несколько прекрасных проектов.

    https://github.com/ImMALWARE/bash-warp-generator - эта штука позволяет сделать конфиг для амнезии (AmneziaVPN или AmneziaWG) для Cloudflare Warp. То есть, свой VPN сервер не нужен, спасибо cloudflare. Запускать надо на сервере, который не глушится (любой иностранный, например aeza terminator бесплатно можно взять на 2-3минуты).

    У меня этот конфиг замечательно работал на десктопе через обычный проводный интернет, но не пошел на мобильном интернете. Но это решилось подкруткой параметров (там в открытых тикетах это обсуждается и даются рекомендации). Свои сервера я все равно продолжаю арендовать (пригодятся!), но Warp - очень быстрый (ощутимо быстрее чем wg через мои сервера).

    https://github.com/pufferffish/wireproxy - это "wireguard с поддержкой socks". Userspace программа, которая устанавливает wg соединение и открывает socks порт для него. Например, у меня на "малинке" запущено два этих процесса на разные wg сервера, и через Proxy SwitchyOmega я между ними переключаюсь. Но есть минус - параметры AmneziaWG (из предыдущего проекта) он не понимает.

    https://github.com/artem-russkikh/wireproxy-awg - А это форк предыдущего проекта, но в нем исправлены эти недостатки. То есть, через него можно подключить бесплатный Cloudflare Warp конфиг от bash-warp-generator'а.

    P.S.

    Как же хорошо, что ютуб у нас не заблокирован и мы не пытаемся "обходить блокировки". А вот от деградировавших российских серверов ютуба это помогает.


  1. 40kTons
    27.12.2024 08:15

    Я месяц назад купил смарт тв и встал вопрос - а как на нём смотреть нeютyб. Способов оказалось масса

    • поставить впн на ос смарт тв

    • поставить goodbye на ос смарт тв

    • поставить впн на роутер

    • поставить goodbye на роутер

    • подключить андроид приставку и на неё поставить впн

    • подключить андроид приставку и подключить на неё goodbye

    • подключить андроид приставку и с неё по rpd подключаться на пк, на котором будет транслироваться нeютyб

    • подключить не андроид приставку и на неё поставить впн

    • подключить не андроид приставку и подключить на неё goodbye

    • подключить не андроид приставку и с неё по rpd подключаться на пк, на котором будет транслироваться нeютyб

    Способы все отличаются по сложности установки, использования и поддержки. Некоторые способы неожиданно не сработали - например, goodbye под андроидом не завёлся и там сильно заморочно его запустить. Впн - за него надо платить и он может перестать работать. Стриминг нeютyба по miracast неожиданно не сработал. По rpd подключаться - рекомендуемый rdp клиент не появляется в списке в google play market, видимо, из-за географических ограничений. Другие rdp клиенты либо не работали, либо платные, либо требовали установку на пк стороннего по.

    Хотелось обособленный вариант, что бы он не зависел от того, установлен на пк нужный rdp клиент или нет, установлен на роутер goodbye или впн или нет, поскольку инфраструктура может сильно измениться ввиду того, что её часть физически уедет, а оставшаяся часть должна по-прежнему работать.

    В итоге остановился на минипк за 10к на винде, на который можно накатить goodbye и просто с него по hdmi на телек выводить изображение


    1. CyberexTech Автор
      27.12.2024 08:15

      В итоге остановился на минипк за 10к на винде, на который можно накатить goodbye и просто с него по hdmi на телек выводить изображение

      Описанное мной решение, позволяет вернуться в прошлое и жить как и раньше, до устаревания оборудования, позволяя всем устройствам домашней сети использовать видеосервис.


  1. Borjomy
    27.12.2024 08:15

    Если бы еще к просмотру видеороликов торрент-технологию прикрутить...


    1. NutsUnderline
      27.12.2024 08:15

      ага


    1. westfild
      27.12.2024 08:15

      Эм.... так уже лет 10 как torrServer существует...


  1. varanio
    27.12.2024 08:15

    А почему в кеширующем сервере нужен byedpi? :)


    1. CyberexTech Автор
      27.12.2024 08:15

      Это главный алгоритм кэширования :)