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

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

Соединение с сервером 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 тоже. Рекомендую ознакомится с существующими методами обхода (пока об этом ещё можно писать):

Комментарии (17)


  1. NiceStory
    10.09.2023 16:04
    +2

    Добрый день! Столкнулся с проблемой как и вы, перестал работать OpenVpn, на всех моих устройствах, как мобильных так и ПК. Сервер у меня поднят на арендованном VDS. Можете ли вы подсказать как решить проблему?. Отмечу сразу что я не сетевой администратор, и ВПН поднимал как говорится "по гайду".

    В вашей статье всё завязано на роутере, поэтому не совсем понятно что к чему и что мне нужно сделать, возможно есть для меня какое-то относительно простое решение? как говорится "для чайников". Заранее спасибо.

    П.С. сервер на ubuntu 20.04


    1. MiraclePtr
      10.09.2023 16:04
      +6

      Если нужно чтобы и на компе, и на мобильных устройствах, и нет особого опыта в администрировании и ручной настройке всего - то стоит посмотреть в сторону Amnezia VPN. Это тот же OpenVPN, но завёрнутый в Shadowsocks или Cloak для защиты от блокировок. Устанавливается на сервер в два клика, есть клиенты для разных платформ и для мобильных устройств.


      1. BreedMax
        10.09.2023 16:04
        +1

        Спасибо!


    1. YuriyPashkov
      10.09.2023 16:04

      Замените OpenVPN на XRay, вот пример очень хороший. Настраивается реально в несколько кликов, с вэб-мордой и поддержкой win/linux/mac/android/ios. Я туда ещё и рабочий OpenVPN направляю, от которого пока не уйти, на Ростелекоме работает.


    1. ABATAPA
      10.09.2023 16:04

      Переходите на xray, "гайдов" тоже хватает.


  1. NiceStory
    10.09.2023 16:04

    Спасибо, буду пробовать варианты


  1. trabl
    10.09.2023 16:04

    Тоже столкнулся с перебоями работы openvpn развернутым на ec2 aws, провайдер Дом.ру. Переустановил, включив компрессию, на нестандартном порту и всё вновь пока работает. Видимо ключевое слово пока.


  1. dvglab
    10.09.2023 16:04
    +1

    Интересно другое. OpenVPN сервер в России, клиенты тоже в России, но тем не менее периодически перестает работать то один, то другой клиент, никакой сисемы нет, заблочат одного на несколько часов, потом следующего из 200 клиентов каждый день 5-6 не работает.. Главный вопрос зачем внутри России то блочить?


    1. nitro80
      10.09.2023 16:04

      Потому что блокировщики видимо тоже гуглят способы и иногда ошибаются)


  1. alibaba5848
    10.09.2023 16:04

    Здравствуйте сделал все по вашей инструкции, но ничего не работает.


    1. Andrevich Автор
      10.09.2023 16:04

      Здравствуйте, давайте разбираться. Что именно у вас происходит? Подключается ли к shadowsocks, что в логах написано? Нужно больше информации чтобы вам помочь.


      1. alibaba5848
        10.09.2023 16:04
        +1

        Здравствуйте, все делал по инструкции по отделности shadow socs и openvpn работают, а вместе нет.


        1. Andrevich Автор
          10.09.2023 16:04

          По логам я вижу что OpenVPN пытается подключится и ему это не удаётся. Сервер shadowsocks пингуется? в OpenVPN весь трафик переадресуется? Если да, обязательно должен быть прописан маршрут до shadowsocks через шлюз по умолчанию, иначе роутер будет пытаться направлять shadowsocks через openvpn который пытается подключится через shadowsocks


  1. alibaba5848
    10.09.2023 16:04
    +1

    вот маршрут прописан


    1. Andrevich Автор
      10.09.2023 16:04

      Хорошо, а он пингуется? Шлюз по умолчанию обычно должен быть в маршруте указан. Если не пингуется, посмотрите какой у вас в 4G шлюз и укажите его.


  1. alibaba5848
    10.09.2023 16:04

    в open vpn есть еще какая-то переадресация кроме socs-proxy 127.0.0.1 1080 ?


    1. Andrevich Автор
      10.09.2023 16:04

      Обычно нет, трафик идёт напрямую к серверу OpenVPN, настройкой socks-proxy мы заставляем его идти через прокси, туда же, к серверу OpenVPN