Как стать автором
Обновить

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

Время на прочтение3 мин
Количество просмотров106K

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

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

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

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

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

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

sudo apt-get update && sudo 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 ! --dport 22 -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

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

cd byedpi
make

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

sudo 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) или средствами самого одноплатника.

Итоги

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

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

❝ Читайте также:

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 215: ↑207 и ↓8+233
Комментарии207

Публикации

Ближайшие события