Решаем проблему устаревания кэширующих серверов. Смотрим на телевизоре. Не VPN

от автора

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

В качестве нашего «кэширующего» сервера будем использовать дешевый одноплатный компьютер 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) или средствами самого одноплатника.

Итоги

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

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


ссылка на оригинал статьи https://habr.com/ru/articles/870254/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *