Проксируем OpenVPN через Shadowsocks или чиним OpenVPN во время блокировок

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

В данной статье рассмотрим как настроить существующее подключение к OpenVPN серверу, которое могло или может перестать работать, через shadowsocks (Outline VPN) туннель на OpenWRT любых версий с помощью openvpn-openssl и shadowsocks-libev.

Понадобятся:

  • Существующий сервер OpenVPN и настроенный клиент на OpenWRT

  • Конфиг shadowsocks (Outline) вашего либо чужого сервера.

  • Свободные 650кб памяти в роутере

Shadowsocks-libev на версиях 22.03 и выше имеет сломанный пакет ss-redir, но он нам сегодня не понадобится.

Оглавление:

  1. Установка Shadowsocks-libev

  2. Настройка туннеля shadowsocks

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

Предисловие

Данную статья родилась сегодня, 10.09.2023, так как обнаружил что мои настроенные клиенты OpenVPN перестали выходить на связь в сети Билайна и Ростелекома (причём OpenVPN имел uptime около 40 дней, но после перезагрузки клиента трафик ходить перестал, но IP адрес получил успешно), в обоих случаях картина одинаковая, что резонно наводит на мысли о блокировках.

1. Установка Shadowsocks-libev

На примере Mikrotik RB750gr3 с установленной OpenWRT 21.02.3

Сначала установим необходимые пакеты:

opkg update
opkg install shadowsocks-libev-config shadowsocks-libev-ss-local shadowsocks-libev-ss-rules luci-app-shadowsocks-libev

Либо перейдите в Система - Менеджер пакетов и установите пакеты:

  1. shadowsocks-libev-config

  2. shadowsocks-libev-ss-local

  3. shadowsocks-libev-ss-rules

  4. luci-app-shadowsocks-libev

Далее переходим в Службы - Shadowsocks-libev

Далее во вкладку Remote Servers

Удаляем конфигурацию по умолчанию SSS0 и нажимаем Import Links (на версиях старше 21.02 данная кнопка отсутствует, в этом случае воспользуйтесь инструкцией в начале раздела 3, после добавления вернитесь к п.2 этой страницы)

В случае Outline VPN конфигурация получается так:

Открываем Outline Manager, добавляем или открываем уже существующий ключ кнопкой на иллюстрации

Копируем ключ доступа

Вставляем конфигурацию Shadowsocks (Outline)

Нажимаем Import

Применяем изменения

2. Настройка туннеля Shadowsocks

Далее переходим во вкладку Local Instances

Редактируем конфигурацию ss_local (всё остальное при желании можно удалить или оставить)

Из выпадающего списка выбираете свою конфигурацию, убираете галку в поле отключить

Сохраняете

Применяем изменения

Если после Применения изменений появился статус Running: yes, значит всё заработало, если нет, вероятно не установлен один из пакетов (shadowsocks-libev-ss-rules)

Далее переходим к настройке клиента OpenVPN

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

Далее переходим во вкладку VPN - OpenVPN

Вносим изменения в текущую конфигурацию

После строки remote, добавляем на новой строке запись socks-proxy 127.0.0.1 1080

Сохраняем

Перезапускаем соединение двойным нажатием кнопки Start/Stop

Проверяем работу OpenVPN.

При использовании точечного обхода блокировок нелишним будет добавить статический маршрут до сервера shadowsocks (Outline):

Переходим в Сеть - Статические маршруты

И добавляем маршрут до вашего сервера

Не забываем проверить доступность сервера после добавления маршрута

ping $ВАШ_Shadowsocks_Outline_IP

Послесловие

Так получилось, что все предыдущие статьи я писал не испытывая проблем на практике, но начиная со вчерашнего дня вся теория стала использоваться по назначению, приведенный в статье способ является малозатратным, но есть вероятность последующей блокировки и shadowsocks тоже. Рекомендую ознакомится с существующими методами обхода (пока об этом ещё можно писать):

  • Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все / Хабр (habr.com)

  • Обход блокировок на OpenWRT с помощью Passwall (v2ray, xray, trojan) и tun2socks / Хабр (habr.com)

  • Проксируем OpenVPN с помощью Cloak / Хабр (habr.com)

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


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

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

С 2021 года мы занимаемся нашим сервис-деском. И с уверенностью можем сказать, что сегодня многоканальность — один из важнейших аспектов в клиентском сервисе. Она позволяет общаться с клиентом там, гд...
Как вы хорошо знаете, в Unix-системах мы измеряем время как количество секунд, прошедших с «эпохи»: 00:00:00 UTC 1 января 1970 года. Немало людей сильно разозлилось из-за этого, да и вообще, обществ...
Реализация автоматического импорта событий из календаря Notion в свой Google Calendar. Также, под катом, ссылка на npm пакет, упрощающий данную процедуру и пример запуска данного решения без аренды св...
Победителями стали команды literalLegends, Get_site_copy и SecurityBand. Они работали над созданием бота в мессенджерах, который будет делиться мостами Tor с пользователями, и телеграм-ботом, способны...
Я написал эту статью по мотивам выступления, которое я делал на встрече Berlin.js. В последнее время выходит мало русскоязычных материалов об этом довольно популярном и стабильном фреймворке и я ...