Решаем проблему устаревания кэширующих серверов. Смотрим на телевизоре. Не VPN
- воскресенье, 29 декабря 2024 г. в 00:00:08
Не так давно всех потрясла новость об устаревании оборудования популярного видеохостинга, в результате чего сервис перестал нормально работать и началось замедление. Сначала в замедлении сервиса пытались обвинить Роскомнадзор, но до сих пор нет внятных нормативно-правовых актов (поправьте меня в комментариях, если я ошибаюсь), которые бы позволяли данному органу применять методы блокировки в отношении сервиса. Я не верю, что государственный орган может нарушать закон, поэтому будем исправлять проблему самостоятельно и поднимем свой «кэширующий» сервер.
В качестве нашего «кэширующего» сервера будем использовать дешевый одноплатный компьютер 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
Для настройки использования нашего «кэширующего» сервера на смарт телевизоре LG, нам необходимо в ручную прописать сетевую конфигурацию, как это сделать - показано ниже на картинке
В нашем случае, необходимо прописать в качестве шлюза IP адрес одноплатника, а в качестве DNS использовать адреса 8.8.8.8 и 8.8.4.4. И, само собой, IP адрес нашего «кэширующего» сервера (он же одноплатный компьютер) должен быть статическим - это легко делается с помощью роутера (привязка IP к MAC) или средствами самого одноплатника.
Итак, с помощью недорого одноплатника, нам удалось справиться с устареванием кэширующих серверов видеохостинга, теперь мы можем и дальше наслаждаться образовательным и развлекательным контентом,
Обратите внимание, что данная статья не популяризует и не склоняет пользователя к обходу блокировок. Здесь лишь описан частный технический случай, который является труднореализуемым со стороны обычного обывателя. Также автор статьи не несет ответственность за содержание сторонних репозиториев и возможные риски в последствии их использования.