В данной статье рассмотрим как настроить существующее подключение к OpenVPN серверу, которое могло или может перестать работать, через shadowsocks (Outline VPN) туннель на OpenWRT любых версий с помощью openvpn-openssl и shadowsocks-libev.
Понадобятся:
Существующий сервер OpenVPN и настроенный клиент на OpenWRT
Конфиг shadowsocks (Outline) вашего либо чужого сервера.
Свободные 650кб памяти в роутере
UPD. 18.09.2023 Shadowsocks-libev на версиях 22.03 и выше имеет сломанный пакет ss-redir, но он нам сегодня не понадобится. Shadowsocks-libev и его пакет ss-redir нормально работают на OpenWRT 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
![](https://habrastorage.org/getpro/habr/upload_files/7b3/0e8/74a/7b30e874a6484ba4077e277054bd5417.png)
Далее во вкладку Remote Servers
![](https://habrastorage.org/getpro/habr/upload_files/91e/498/c47/91e498c47d9dba835ae5ca8752d60aaf.png)
Удаляем конфигурацию по умолчанию SSS0 и нажимаем Import Links (на версиях старше 21.02 данная кнопка отсутствует, в этом случае воспользуйтесь инструкцией в начале раздела 3, после добавления вернитесь к п.2 этой страницы).
В случае Outline VPN конфигурация получается так:
![](https://habrastorage.org/getpro/habr/upload_files/6b3/c03/b33/6b3c03b3373917756c8f78ab49d97cf4.png)
Открываем Outline Manager, добавляем или открываем уже существующий ключ кнопкой на иллюстрации
![](https://habrastorage.org/getpro/habr/upload_files/306/1c8/34a/3061c834a9691ec1526173afbf6604d7.png)
Копируем ключ доступа.
Вставляем конфигурацию Shadowsocks (Outline)
![](https://habrastorage.org/getpro/habr/upload_files/51d/c35/755/51dc35755bb89c07479dd51d77881085.png)
Нажимаем Import
![](https://habrastorage.org/getpro/habr/upload_files/bf3/bd3/b57/bf3bd3b575a1b0c65f2a076166ef3689.png)
Применяем изменения.
Соединение с сервером shadowsocks установлено.
2. Настройка туннеля Shadowsocks
Далее переходим во вкладку Local Instances
![](https://habrastorage.org/getpro/habr/upload_files/6a3/bc4/a4b/6a3bc4a4b737ca5824ca040255093ee0.png)
Редактируем конфигурацию ss_local (всё остальное при желании можно удалить или оставить)
![](https://habrastorage.org/getpro/habr/upload_files/e0f/14d/263/e0f14d2639ed0228e46222590d24c661.png)
Из выпадающего списка выбираете свою конфигурацию, убираете галку в поле отключить
Сохраняете
![](https://habrastorage.org/getpro/habr/upload_files/cff/784/bb8/cff784bb8caaaf2a4478ae2c88db795b.png)
Применяем изменения
![](https://habrastorage.org/getpro/habr/upload_files/b62/f9e/cf5/b62f9ecf5cbaf3c48b68d5b4b2f92512.png)
Если после Применения изменений появился статус Running: yes, значит всё заработало, если нет, вероятно не установлен один из пакетов (shadowsocks-libev-ss-rules)
ss-local отвечает за запуск socks5 прокси сервера на роутере, в нашем случае на порту 1080, трафик по умолчанию не переадресовывается в прокси.
Далее переходим к настройке клиента OpenVPN
3. Настройка клиента OpenVPN
Далее переходим во вкладку VPN - OpenVPN
![](https://habrastorage.org/getpro/habr/upload_files/0ab/453/671/0ab4536715a918027dfe79a5846ecd34.png)
Вносим изменения в текущую конфигурацию
![](https://habrastorage.org/getpro/habr/upload_files/5f4/2a4/1ad/5f42a41ad49abc52181a8b92472a75cb.png)
![](https://habrastorage.org/getpro/habr/upload_files/8ff/67a/34c/8ff67a34cb07e0729edbfb5f3add3175.png)
После строки remote, добавляем на новой строке запись socks-proxy 127.0.0.1 1080
Теперь OpenVPN клиент будет подключаться к серверу через socks5 прокси который мы настроили ранее.
Сохраняем.
![](https://habrastorage.org/getpro/habr/upload_files/b05/f06/8fb/b05f068fba1afd7b497f8e0495cbe7bb.png)
Перезапускаем соединение двойным нажатием кнопки Start/Stop.
Проверяем работу OpenVPN.
При использовании точечного обхода блокировок нелишним будет добавить статический маршрут до сервера shadowsocks (Outline):
Переходим в Сеть - Статические маршруты
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/568/e5c/136/568e5c1360cc07bc1482b292bac41ced.png)
И добавляем маршрут до вашего сервера
![](https://habrastorage.org/r/w1560/getpro/habr/upload_files/bda/4c5/498/bda4c54986de28f26589ec564ade60b5.png)
Не забываем проверить доступность сервера после добавления маршрута
ping $ВАШ_Shadowsocks_Outline_IP
Послесловие
Так получилось, что все предыдущие статьи я писал не испытывая проблем на практике, но начиная со вчерашнего дня вся теория стала использоваться по назначению, приведенный в статье способ является малозатратным, но есть вероятность последующей блокировки и shadowsocks тоже. Рекомендую ознакомится с существующими методами обхода (пока об этом ещё можно писать):