Как стать автором
Обновить

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

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров38K

В данной статье рассмотрим как настроить существующее подключение к 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 использоваться не будет

Оглавление:

  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

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

Соединение с сервером shadowsocks установлено.

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

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

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

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

Сохраняете

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

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

ss-local отвечает за запуск socks5 прокси сервера на роутере, в нашем случае на порту 1080, трафик по умолчанию не переадресовывается в прокси.

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

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

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

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

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

Теперь OpenVPN клиент будет подключаться к серверу через socks5 прокси который мы настроили ранее.

Сохраняем.

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

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

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

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

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

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

ping $ВАШ_Shadowsocks_Outline_IP

Послесловие

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

Теги:
Хабы:
Всего голосов 19: ↑19 и ↓0+19
Комментарии29

Публикации

Истории

Работа

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
24 сентября
Astra DevConf 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн