В данной статье рассмотрим как настроить существующее подключение к OpenVPN серверу, которое могло или может перестать работать, через shadowsocks (Outline VPN) туннель на OpenWRT любых версий с помощью openvpn-openssl и shadowsocks-libev.
Понадобятся:
Существующий сервер OpenVPN и настроенный клиент на OpenWRT
Конфиг shadowsocks (Outline) вашего либо чужого сервера.
Свободные 650кб памяти в роутере
Shadowsocks-libev на версиях 22.03 и выше имеет сломанный пакет ss-redir, но он нам сегодня не понадобится.
Оглавление:
Установка Shadowsocks-libev
Настройка туннеля shadowsocks
Настройка клиента 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Либо перейдите в Система - Менеджер пакетов и установите пакеты:
shadowsocks-libev-config
shadowsocks-libev-ss-local
shadowsocks-libev-ss-rules
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)
