Самохостинг (часть 2) - Динамический роутинг на Keenetic

Самохостинг (часть 2) - Динамический роутинг на Keenetic
Photo by Javier Allegue Barros / Unsplash

Допустим у нас есть роутер Keenetic. Нам нужно, чтоб некоторые сайты грузились через поднятый на нем туннель (это может быть Wireguard, L2TP или даже банальный Socks5 proxy).

Например, нас забанил Youtube по нашему внешнему IP адресу 😉, но мы все равно хотим его смотреть, да не на телефоне, а на нормальном телевизоре.

У нас есть несколько путей:

  1. Найти все IP адреса Google или Youtube и отправить весь трафик на эти сети в туннель (получив во всех Google смену локации, что не всегда нам удобно). Но тут нет гарантии, что мы узнаем все адреса или не добавятся новые.
  2. Проверить какие адреса отдают нам DNS сервера и направить только их. Тут мы на 300% через время получаем другие адреса из DNS и придется руками лезть в маршруты и снова их менять.
  3. Сделать все максимально автоматизировано.

Я выбрал третий путь. Мне кажется он сильно более простым.


DNS RouteSync Navigator

Утилита позволяет на основе списков DNS имен добавлять маршруты в роутер. Принцип работы прост, как двери. Утилита выступает в качестве DNS сервера и если запрошен домен из списка, то перед тем как отдать ответ клиенту она добавляет маршрут на эти IP адреса в роутер через указанный интерфейс или шлюз. Вот и вся магия.

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

Клонируем себе на сервер эту утилиту

mkdir ~/projects && cd ~/projects
git clone https://github.com/Ground-Zerro/DNS-RouteSync-Navigator
cd DNS-RouteSync-Navigator

Ставим python зависимости

pip install -r requirements.txt

Дальше создаем в роутере пользователя с доступом по ssh и настраиваем тот самый VPN или Socks до внешнего сервера, через который будем отправлять нужный трафик.

Авторизуемся в админке роутера (например, `http://192.168.1.1`), добавляем "a" к адресу (`http://192.168.1.1/a`) и вводим в командную строку "show interface". Ищем наш VPN интерфейс и копируем его ID.

Теперь вносим все необходимые данные в config.ini и filter.txt.

Дальше запускаем утилиту в тестовом режиме.

python main.py

Если все прошло хорошо, то можно попробовать получить IP адреса

dig @<ip вашего сервера> youtube.com

Должен вернуть IP адреса youtube.com. Теперь можно запускать в режиме сервиса

bash ./start.sh

Выбираем необходимый пункт меню для запуска или установки в качестве сервиса.


Если Ваш 53/udp порт занят

Если вы видите в логах ошибку, что порт занят, то у вас кто-то уже слушает 53 порт. Вероятнее всего это systemd, который используется сейчас повсеместно. Заставить его так не делать можно легким способом:

sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved
sudo mv /etc/resolv.conf{,.bak}
echo "nameserver 127.0.0.1" | sudo tee -a /etc/resolv.conf
echo "search ." | sudo tee -a /etc/resolv.conf

Теперь утилита должна запуститься нормально.

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

sudo netstat -nlp | grep 53

или

sudo ss -nlp | grep 53

Read more

Самохостниг (часть 10) - AudiobookShelf

Самохостниг (часть 10) - AudiobookShelf

AudiobookShelf - это бесплатный сервер аудиокниг и подкастов с открытым исходным кодом. Он позволяет вам организовать вашу коллекцию аудиокниг и подкастов, следить за прогрессом прослушивания и синхронизировать его между устройствами. В этой статье мы рассмотрим, как установить AudiobookShelf с помощью Docker Compose и настроить его работу через Traefik. Предварительные требования

Обзор reMarkable 2

Обзор reMarkable 2

В мире технологий появляются устройства, которые не только выполняют свои функции, но и становятся символами статуса и стиля. Одним из таких устройств является reMarkable 2 — уникальный гибрид электронной читалки и записной книжки, который произвёл фурор на Западе и теперь доступен в России. Давайте разберёмся, что делает этот девайс таким особенным

Plex повышает цены: что изменится и стоит ли спешить с покупкой?

Plex повышает цены: что изменится и стоит ли спешить с покупкой?

С 29 апреля 2025 года Plex значительно увеличит стоимость подписок и изменит условия бесплатного использования. Рассказываем, кому выгодно купить лицензию сейчас, а кому — лучше перейти на альтернативы. Что случилось? Plex, популярный медиасервер и каталогизатор контента, объявил о повышении цен на все виды подписки: * Месячная — с $4.99 до $6.99

Самохостинг (часть 9) - Arr stack + медиатека

Самохостинг (часть 9) - Arr stack + медиатека

В этой статье я расскажу, как настроить полноценную систему автоматического скачивания и организации медиаконтента с помощью Sonarr (для сериалов), Radarr (для фильмов), Lidarr (для музыки), Jackett (для поиска по трекерам) и qBittorrent (для загрузки торрентов). Эта экосистема интегрируется с Plex, о котором у нас уже есть отдельная статья. Что мы