Свободный* интернет без рекламы с минимальным энергопотреблением в режиме ожидания на смартфонах (в картинках)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Данная статья относится к "личному опыту" автора, выбранные решения не являются "уникальными", но как показал опыт, являются оптимальным решением трёх проблем: простой "VPN своими руками", интернет без раздражающей рекламы и трекеров, максимально низкое энергопотребление в idle (актуально для смартфонов и планшетов). Для нормального функционирования данного решения потребуется устройство с сервисами Google Play и желательно Samsung Knox. Выбор NaïveProxy обусловлен низким энергопотреблением, высокой устойчивостью к детектированию и MITM атакам.

Ваша свобода в интернете зависит** от свободы интернета в стране, где расположен удаленный сервер. **Но это не точно :)
Ваша свобода в интернете зависит** от свободы интернета в стране, где расположен удаленный сервер. **Но это не точно :)

На просторах интернета можно встретить большое количество статей про настройку VPN своими руками, но все они подразумевают использование неких автоматических скриптов настройки (которые не всегда правильно отрабатывают) или написаны гиками для гиков. С помощью данной статьи вы сможете настроить всё сами, без смс и регистрации с пониманием того, что делаете.

Настройка сервера

1. Выбор и аренда сервера

Выбор сервера оставлю на ваше усмотрение, пойдет любой VDS, в нужной стране, с выделенным IPv4 (при определенном везении, можно арендовать за 100р/мес). Рекомендуемая операционная система - Ubuntu 22 (именно на ней проводилось тестирование). Хочу обратить внимание, что входящий порт 443 может быть закрыт внешним брандмауэром, тогда читайте инструкцию по настройке конкретного VDS.

2. Настройка DDNS

На сайте freemyip.com выбираем любое имя, получаем токен (например: https://freemyip.com/update?token=d6cb6bd1206a0f38e9b9d023&domain=мойдомен.freemyip.com). Не добавляем данный токен в приложения, где есть предварительный просмотр сайтов по ссылке (Telegram, WA, etc.), иначе имя будет сопоставлено, например, с одним из IP Telegram.

3. Настройка сервера

После аренды сервера и его оплаты, получив заветный логин и пароль на почту, начинаем настройку. Все действия делаем от пользователя root да простят меня гуру консоли . Если у вас ПК с Windows вам понадобится PuTTY, если смартфон/планшет Android - JuiceSSH.

Вводим IP вашего сервера, логин: root пароль: который прислали на почту, выполняем подключение к удаленному серверу.

JuiceSSH
JuiceSSH

Устанавливаем текущие обновления системы, после ввода команды нажимаем клавишу enter

apt update && apt upgrade -y && reboot

Сопоставляем DDNS имя вашему серверу

curl https://freemyip.com/update?token=d6cb6bd1206a0f38e9b9d023&domain=мойдомен.freemyip.com

Скачиваем серверную часть NaïveProxy - Caddy и перемещаем в системную директорию (актуальную версию можно посмотреть здесь)

wget https://github.com/klzgrad/forwardproxy/releases/download/v2.7.4-caddy2-naive/caddy-forwardproxy-naive.tar.xz && tar xvf caddy-forwardproxy-naive.tar.xz && cd caddy-forwardproxy-naive && mv caddy /usr/bin/

Создаем системную службу

cat > /etc/systemd/system/caddy.service

Вставляем текст из буфера обмена и записываем в файл, нажимаем enter и ctrl+d

[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

Создаем файл конфигурации проки-сервера NaïveProxy - Caddy. Хочу обратить внимание на расположение файла конфигурации и его имя, изменять его не стоит.

mkdir /etc/caddy && cat > /etc/caddy/Caddyfile

Перед этим редактируем настройки. Значения выделены жирным шрифтом подлежат замене

  • мойдомен.freemyip.com - ваше DDNS имя, зарегистрированное на втором шаге;

  • моя@почта.ru - почта для автопродления сертификата TLS;

  • логин пароль - пароль и логин генерируем пару.

Вставляем текст из буфера обмена и записываем в файл

{
order forward_proxy before file_server
}
:443, мойдомен.freemyip.com {
tls моя@почта.ru
forward_proxy {
basic_auth логин пароль
hide_ip
hide_via
probe_resistance
}
file_server {
root /var/www/html
}
}

Первый запуск и выпуск сертификата (через минуту завершайте процесс ctrl+c)

/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile

Устанавливаем системную службу

systemctl daemon-reload && systemctl enable --now caddy && systemctl status caddy

Настраиваем брандмауэр (оставляем только 22 порт для SSH и 443 для NaïveProxy)

ufw allow 22/tcp && ufw allow 443/tcp && ufw enable

Настраиваем автообновление сервера и продление DDNS

crontab -e

Вставляем текст из буфера обмена, если открыли в редакторе nano (1), то сохраняем настройки ctrl+x, далее "y" и enter. Сервер будет автоматически перезагружаться в 00:00 и устанавливать обновления в 03:00 каждый день

0 0 * * * reboot

0 3 * * * curl https://freemyip.com/update?token=d6cb6bd1206a0f38e9b9d023&domain=мойдомен.freemyip.com

0 3 * * * apt update && apt upgrade -y

Для "усложнения" детектирования VPN сервера, отключаем ICMP - данное решение является спорным (способ не раз обсуждался на разных форумах)

sed -i '/ufw-before-input.*icmp/s/ACCEPT/DROP/g' /etc/ufw/before.rules

Перезагружем сервер командой reboot, на этом настройка сервера завершена.

Настройка клиента

Настраиваем прокси и маршрутизацию - SagerNet

Данная программа будет отвечать за подключение к нашему внешнему NaïveProxy серверу, выполнять маршрутизацию траффика на стороне клиента (например: домены .ru маршрутизируются в обход проски), а также создает локальный SOCKS5 проски сервер, который нам потребуется как точка подключения MITM блокировщика рекламы - Adguard.

Скачиваем и устанвливаем SagerNet и плагин Naïve plugin, следить за обновлениями проекта можно на странице разработчика. Сразу отвечу на вопрос: "почему не новый проект этого разработчика - sing-box" - всё дело в энергопотреблении и удобстве настройки, да и плагин Naïve работает независимо от ядра sing-box/v2ray(fly).

Настройка SagerNet

  • меню "конфигурация" нажимаем кнопку добавить профиль - ручные настройки - naïve. Заполняем значения: сервер (имя сервера DDNS), имя пользователя, пароль, можно включить UDP поверх TCP.

  • меню "настройки" автоматическое подключение - вкл, сервисный режим - только прокси, включить анализ траффика - вкл, маршрут IPv6 - вкл, поставщик ресурсов правил - v2ray-rules-dat, удаленный DNS - tls://dns.google, использовать локальный DNS как прямой - вкл, включить маршрутизацию DNS - вкл;

  • меню "маршруты" создаем domain:ru<br> domain:su<br> domain:yandex.com<br> domain:vk.com<br> domain:livejournal.com</p><p></p>" data-abbr="правило обхода доменов зоны .ru">правило обхода доменов зоны .ru и правило geoip еще рекомендую из проки исключить популярные поисковые системы все это отправляем в "outbound - обход";

    • меню "..." и выбираем пункт "управление ресурсами маршрутов", нажимаем на кнопки обновить.

Не забываем в настройках смартфона убрать ограничение энергосбережения для SagerNet.

настройка SagerNet в картинках

Избавляемся от рекламы - Adguard

Скачиваем с сайта разработчика и устанавливаем. Программа платная, покупать или нет, каждый решает сам, под задачи, описанные в данной статье, хватит бесплатной версии. После установки следуйте подсказкам мастера настройки, обязательно установите сертификат для фильтрации HTTPS трафика в Chrome/Edge/Yandex/Samsung Internet/Firefox (не все браузеры доверяют системным сертификатам). Есть похожее приложение - Blokada.

настройка Adguard

Настройка Adguard

Снижаем энергопотребление в простое - автоматизация

Как показала практика, на разных устройствах и разным набором приложений, включенный "локальный VPN" в режиме простоя, приводит к значительному расходу аккумулятора. Как это влияет на "беспокойный сон" приложений мне до сих пор не ясно, но это факт который легко проверить, например, используя GSam Battery Monitor (требуются дополнительные разрешения через adb).

Для автоматизации я выбрал приложение Tasker, аналогов много, главное условие - умение передавать дополнительные параметры приложениям.

настройка Tasker в картинках

Автовключение прокси и блокировщика рекламы, когда экран разблокирован и выключение через 10 минут если экран отключен.

В разделе "Tasks" создаем задачу: adguard on, данная задача не будет использовать скрипт и все позиции будут просты для понимания

В разделе "Tasks" создаем задачу: adguard off

Отлючение глобальной синхронизации через 4 часа бездействия смартфона (требуется смартфон/планшет с сервисами Google Play, т.к. после этого приложения будут пробуждаться с использованием технологии push).

В разделе "Tasks" создаем задачу: sync on

В разделе "Tasks" создаем задачу: sync off

Добавляем профили, в разделе "profiles" создаем событие

Бонус для владельцев Samsung Knox

Благодаря наличию управляемого системного брандмауэра, можно ограничить паразитный трафик на системном уровне. Рекомендую установить приложение Disconnect Pro которое, при отключенном Adguard, продолжит блокировать трекеры и аналитику. У приложения нет настроек, оно не создаёт "локальный VPN", конечно у него есть альтернатива, где можно настроить все ручками - Adhell. Но это выходит за рамки данной статьи, т.к. для запуска приложения требуется исполнять определённые обряды, впрочем на 4pda есть исчерпывающая информация.

Настройка NaïveProxy на ПК

Устанавливаем расширение в браузер, например Proxy SwitchyOmega. Домены, которые хотим исключить прописываем в список "bypass list", начиная с "."

Скачиваем NaïveProxy, для Windows (для других платформ), перед запуском требуется отредактировать файл конфигурации config.json

{
"listen": "socks://127.0.0.1:2080",
"proxy": "https://логин:пароль@мойдомен.freemyip.com",
"log": ""
}

Не забываем naive.exe добавить в атозагрузку.

*Данная статья не является инструкцией по обходу блокировок и не призывает посещать запрещенные сайты.

Источник: https://habr.com/ru/articles/764812/


Интересные статьи

Интересные статьи

Работа в интернете без блокировщиков рекламы практически невозможна. Всё больше людей используют их на постоянной основе, устанавливая также друзьям и родственникам. Что тут говорить, если даже ФБ...
Как показала история, сеть из миллиардов связанных между собой документов — очень хрупкая и эфемерная система. Странички живут недолго. Если нашли интересную страницу, сайт или видео — нельзя прос...
Тайну переписки моего товарища нарушили, его пытались исключить из колледжа на основе содержания мессенджеров, которое передал ОПДН, его допрашивали в прокуратуре. И, воз...
Часть 1 ‣ Часть 2 ‣ Часть 3 ‣ Часть 4 ‣ Часть 5 ‣ Часть 6 ‣ Часть 7 ‣ Часть 8 ‣ Часть 9 ‣ Часть 10 ‣ Часть 11 ‣ Часть 12 ‣ Часть 13 ‣ Часть 14 ‣ Часть 15 Starlink и погода После т...
Часть 1 ‣ Часть 2 ‣ Часть 3 ‣ Часть 4 ‣ Часть 5 ‣ Часть 6 ‣ Часть 7 ‣ Часть 8 Сервис на рынках вне США Вторым рынком, на котором быстрее всего начнется предоставление сервиса Starli...