Не так давно всех потрясла новость об устаревании оборудования популярного видеохостинга, в результате чего сервис перестал нормально работать и началось замедление. Сначала в замедлении сервиса пытались обвинить Роскомнадзор, но до сих пор нет внятных нормативно-правовых актов (поправьте меня в комментариях, если я ошибаюсь), которые бы позволяли данному органу применять методы блокировки в отношении сервиса. Я не верю, что государственный орган может нарушать закон, поэтому будем исправлять проблему самостоятельно и поднимем свой «кэширующий» сервер.
В качестве нашего «кэширующего» сервера будем использовать дешевый одноплатный компьютер MangoPi MQ-Quad (или другой аналогичный), стоимостью не более $29.
Перед дальнейшими действиями необходимо установить операционную систему не ниже 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, нам необходимо в ручную прописать сетевую конфигурацию, как это сделать - показано ниже на картинке
В нашем случае, необходимо прописать в качестве шлюза IP адрес одноплатника, а в качестве DNS использовать адреса 8.8.8.8 и 8.8.4.4. И, само собой, IP адрес нашего «кэширующего» сервера (он же одноплатный компьютер) должен быть статическим - это легко делается с помощью роутера (привязка IP к MAC) или средствами самого одноплатника.
Итоги
Итак, с помощью недорого одноплатника, нам удалось справиться с устареванием кэширующих серверов видеохостинга, теперь мы можем и дальше наслаждаться образовательным и развлекательным контентом,
Обратите внимание, что данная статья не популяризует и не склоняет пользователя к обходу блокировок. Здесь лишь описан частный технический случай, который является труднореализуемым со стороны обычного обывателя. Также автор статьи не несет ответственность за содержание сторонних репозиториев и возможные риски в последствии их использования.
Комментарии (73)
Ranger21
27.12.2024 08:15Вариант с keenetic и хорошим opkg пакетом лучше и работает для всей сети без необходимости конфигурировать клиентов, и работает с QUIC
nolirpaf
27.12.2024 08:15Напишите, пожалуйста, какой opkg пакет нужен, ну и какой keenetic подойдёт. Спасибо.
Ranger21
27.12.2024 08:15Любой новый кинетик (не zyxel) с юсб портом и вот это
Popadanec
27.12.2024 08:15Не помню точно, но вроде со старыми кинетиками, которые ещё с логотипом zyxel, проблема с определением флешки решаемая(не со всеми). Но сам не проверял, т.к. есть более свежий кинетик, на котором всё работает. Старый кинетик zyxel тоже есть, когда нибудь руки до него дойдут, но это не точно.
gotch
27.12.2024 08:15Когда читал эту статью , думал, что можно и без USB, но посмотрел внимательно список, в нем, видимо, только USB модели. Жалко, придется распаковать EEEPC 701 )
Jumper_In
27.12.2024 08:15Купил себе кинетика без USB, уже намаялся с инструкциями как на его внутрянку закинуть OPKG, видимо пойду менять на USB-шный
MicrofCorp
27.12.2024 08:15У меня на zyxel keenetic ultra стоит tpws и никаких проблем. Только что quic нету
SargeT
27.12.2024 08:15Сразу же погуглил... Вы говорите про https://habr.com/ru/articles/834826/?
UPD: Я буду обновлять комментарии перед отправкой.
Nuflyn
27.12.2024 08:15Вначале статьи сарказм уровень бог)
TyraSkrini
27.12.2024 08:15Я даже сразу не понял ))
gotch
27.12.2024 08:15Наш российский новояз пополнился новым оборотом.
Недавно вышли из строя кеширующие серверы Viber, кеш WhatsApp под вопросом. У Instagram скорее всего устарел кеш ip-адресов, поэтому индивидуальные средства на него не действуют.
tutitututu
27.12.2024 08:15РКН
закукожилсостарил сервера Google и Viber, сервера WhatsApp ожидают очереди на устаревание.Vitimbo
27.12.2024 08:15Отсюда наша родина диктует свою непреклонную волю всему остальному мировому сообществу
- из офиса РКН
vova_sam
27.12.2024 08:15на роутере универсальное решение.
PereslavlFoto
27.12.2024 08:15Но только если роутер позволяет запускать такое решение. Увы, не у всякого роутера достаточно памяти.
Popadanec
27.12.2024 08:15Если это бюджетная и/или древняя железка, не поддерживающая современную OpenWRT.
M_AJ
27.12.2024 08:15Описанное в статье решение подходит тоже в основном тем у кого уже есть железка, на которой это можно запустить. Потому что если ее нужно покупать, то тут стоит в том числе рассмотреть и вариант покупки нового роутера, который можно прошить под OpenWRT. На Озоне такие можно найти по цене в районе 3-4 тыс. рублей, это сравнимо с одноплатниками, только роутер будет еще с поддержкой Wi-Fi AX
gotch
27.12.2024 08:15Так значит можно просто на домашнем ноутбуке с Windows и кеширующим сервером Google включить роутинг, задать адрес ноутбука роутером на телеке и всё заработает. :-)
CyberexTech Автор
27.12.2024 08:15Да, главное не забыть установить важный сервис)
gotch
27.12.2024 08:15Посмотрел на GoodbyeDPI, этот альтернативный GGC видимо не может работать с транзитным трафиком, вероятно zapret для windows - тоже.
microArt
27.12.2024 08:15Спасибо Вам за статью, сохранила. (Такое надо сразу сохранять).
Скажите, а каким видите будущее своего замечательного устройства после того, как РКН примет приказ об отслеживании идентификаторов пользовательского оборудования? Не придется ли его отключать?
Спрашиваю потому, что у меня тоже настроен кэширующий сервер Гугла, работающий на схожем физическом принципе. (На нем настроены z***** и squid, больше ничего нет). Только я уже смирилась с тем, что в феврале скорее всего его придется отключить - как раз из-за этого. Трафик не шифруется, провайдеру и РКН все видно, что куда идет. Зато Ютуб работает.
larasage
27.12.2024 08:15Вроде как только о пытающихся заходить на заблокированные сайты должны будут провайдеры отправлять информацию в РКН. Ютуба в списке заблокированных нет.
CyberexTech Автор
27.12.2024 08:15Скажите, а каким видите будущее своего замечательного устройства
Пока, как и у многих, горизонт планирования 10 минут.
JBFW
27.12.2024 08:15Устранение этой проблемы лежит вне плоскости IT-технологий.
Будут отслеживать - что ж, пусть отслеживают.Этак они завтра захотят отслеживать кто в небо посмотрел, по уличным камерам - так что, не смотреть что ли?
Per_Ardua
27.12.2024 08:15Ну почему же, можно смотреть. Только сначала нужно будет талончик приобрести.
Robastik
27.12.2024 08:15Оптимистичненько.
Не исключено, что после третьего посещения сайтов из списка РКН все пользователи IP автоматом будут попадать в список иноагентов/экстремистов/террористов. /не сарказм
saibaneko
27.12.2024 08:15Стоило бы сделать примечание, что ciadpi -d1 -o25+s --auto=torst это не панацея, и как раз нахождение этих золотых параметров отдельный квест.
razduplyator228
27.12.2024 08:15Ну весьма годное решение, но как будто 6in4 выгодней смотрится)
ZlobniyShurik
27.12.2024 08:15У 6in4 есть подводные камни.
Во-первых, ютуб начинает блочить часть роликов из-за проблем с определением географического расположения клиента. Во-вторых, как оказалось, ещё попадаются TV, что умеют исключительно IPv4.Но так, да, работает.
JBFW
27.12.2024 08:15и как это настроить, сидя за двумя натами с динамическим белым IP где-то там?
Без стёба, не получилось.
An_private
27.12.2024 08:15Покопался у себя в развалах, нашёл Raspberry PI 3B. Потянет?
CyberexTech Автор
27.12.2024 08:15Должно
nitro80
27.12.2024 08:15А ведь в каждой современной ОС можно запустить виртуальную машину. И железо отдельное наверно тогда не понадобится
CyberexTech Автор
27.12.2024 08:15Да, можно и без виртуализации. Просто здесь задумка сделать обособленное устройство, которое работает автономно, не затрагивая другие сервисы и с низким энергопотреблением.
AuToMaton
27.12.2024 08:15Почему мне кажется что у одноплатника должно быть два сетевых интерфейса и место ему - между вводом в квартиру и маршрутизатором? Потому, что когда-то вся моя сеть состояла из Мак Мини и мобильных устройств? Потому, что мне думается что к этому всё равно придётся придти перед тем как отнимут и Линукс?
kaseiiro
27.12.2024 08:15Пожалуй, слабоват. А так-то да, в качестве домашнего маршрутизатора с кешированием другие «фруктовые» платы вполне.
Barnaby
27.12.2024 08:15Если приставка на андроиде, можно использовать кэширующий прокси для андроида и обойтись без одноплатника https://github.com/romanvht/ByeDPIAndroid (+ в него встроен скрипт для поиска оптимальных настроек сервера)
nalivay
27.12.2024 08:15У меня на ростелекоме этот прокси так и не смог подобрать нужный алгоритм кэширования... :)
Юзаю кэширующий сервер на все андроид и эпол гаджеты в локальной сети, на основе старого виндовс "ноута" с разбитым экраном и пассивным охлаждением, с алгоритмом z....t внутри.
cupespresso
27.12.2024 08:15Метод кеширования "
-d1 -o25+s --auto=torst
" может не заработать и его нужно подбирать индивидуально. Я делаю так. Скачиваю приложение на андроид (на гитхабе от romanvht) для подбора метода кеширования. Подключаюсь к своему провайдеру и в настройках приложения ищу функцию "подбор команд". Запускаю и выбираю наиболее подходящий метод кэширования.
Wizard_of_light
27.12.2024 08:152014: "Ха-ха, не могут же они запретить ***!"
2024: *** - нецензурное слово, удалено по требованию законодательства.
Как приличная лягушка заявляю, что уже не только сварился, но и изрядно подгорел.
JBFW
27.12.2024 08:15Спасибо автору, теперь я тоже починил старые поломанные сервера Гугля )
В качестве одноплатника - один из ТВ-боксов, X96q, 1/8 Gb, 32битный ARM.
Работает вроде...
jackgrebe
27.12.2024 08:15автору ++ за стиль и тематику.
а можно мне что-нибудь кэширующее и работающее для OpenWrt ?
мой сервер на базе ТП-Линк Арчер превратился в тыкву, все *Pi для меня темный лес.ps:
удалось справиться с «устареванием» '',
нашего «кэширующего» сервера '' - по-моему кавычки внутри совершенно лишние, если автор не против попросим его убрать ?CyberexTech Автор
27.12.2024 08:15кавычки внутри совершенно лишние, если автор не против попросим его убрать ?
Готово)
jackgrebe
27.12.2024 08:15следствие из законов Мерфи^W подлости в приложении к пониманию текста: если есть хотя бы тень возможности чтобы меня поняли неправильно, то обязательно меня поймут неправильно.
я имел в виду: вообще все саркастические кавычки убрать.
с самого начала: "поднимем свой «кэширующий» сервер", "В качестве нашего «кэширующего» сервера будем" и далее по тексту до конца.
ps: статью буду рекомендовать как образец "как писать о том о чем писать низзя".
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 "диском", и Армбианом (Дебианом)
Делается с минимальными усилиями, для ремонта серверов более чем достаточно.xenon
27.12.2024 08:15Вариант с приставкой мне нравится. Сам использую tox1 и tox3. Они рутятся просто искаропки настоящий Android и легко ставится амнезия и-или другие важные программы. (ну там... свиньями в птиц пулять, ну вы понимаете)
xaoc80
27.12.2024 08:15Здравствуйте! А такой способ сработает, чтобы смотреть сервис на ноутбуке с Linux, если прямо на нем поднять виртуалку или докер с настройками, как у вас? Или там есть какие-то другие способы. PS сейчас использую впн
CyberexTech Автор
27.12.2024 08:15Способ сработает на любом Linux, Ubuntu, Debian, Armbian, etc. Если на ноутбуке уже установлен Linux, то можно без виртуализации. После всех описанных манипуляций, просто пропишите системный прокси socks5 с адресом 127.0.0.1 на порту 1080.
pvzh
27.12.2024 08:15Доброго дня! На Линукс ПК оно вообще на изи. Достаточно уточнить, что вежливое прощание с Гитхаба намеренно оформленно в виде Сокс-прокси, чтобы не ломать вообще всю сетевую подсистему. К тому же оно уже собрано и лежит в релизах, конпелять не обязательно. Более того, это один портабельный бинарь, можно запускать не напостоянку службой, а закинуть в
~/.local/bin
и просто в терминале открыть на нужное время. Ну а куда натянуть Сокс это уже дело десятое, в Лисе отдельная настройка, в Хромых – или в системе целиком или через параметр командной строки, для особо чопорных особ типа wget есть `apt install tsocks`.
vvbob
27.12.2024 08:15Гуглу надо поучиться - как почти даром делать кеширующиеи очень эффективно работающие сервера!
AdVv
27.12.2024 08:15Уважаемый автор, не вполне понятно зачем вы заворачиваете трафик в прозрачный прокси, разве нет инструментов под Linux по типу GoodbyeDPI, который просто модифицируют пакеты на лету ?
CyberexTech Автор
27.12.2024 08:15Чтобы наш «кэширующий» сервер мог работать как шлюз, а не просто прокси сервером. Это нужно для просмотра видеосервиса на смарт телевизоре и других устройствах, где нет возможности настройки Socks5.
cck7777
27.12.2024 08:15Есть такое выражение "Эзопов язык". Думаю, был бы Эзоп сейчас жив, автор легко мог бы его на "баттл" пригласить! Аплодирую!
oleg_rico
27.12.2024 08:15Спасибо большое!
Ну вот как починить кэширующие сервера, когда ты в мобильной сети? Или в деревне где роутер через tele2 работает...
CyberexTech Автор
27.12.2024 08:15То есть есть роутер? Значит есть и сеть Wi-Fi. Просто подключаете данное устройство к вашей Wi-Fi сети и указываете на других устройствах его в качестве шлюза или прокси.
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.
Как же хорошо, что ютуб у нас не заблокирован и мы не пытаемся "обходить блокировки". А вот от деградировавших российских серверов ютуба это помогает.
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 на телек выводить изображение
CyberexTech Автор
27.12.2024 08:15В итоге остановился на минипк за 10к на винде, на который можно накатить goodbye и просто с него по hdmi на телек выводить изображение
Описанное мной решение, позволяет вернуться в прошлое и жить как и раньше, до устаревания оборудования, позволяя всем устройствам домашней сети использовать видеосервис.
ildarz
Насколько такой сервер стабилен, требуется ли периодическая ручная переконфигурация алгоритма кэширования с подбором новых параметров?
CyberexTech Автор
Уже работает третий месяц, пока алгоритм кэширования не менял)