В данной статье рассмотрим как настроить существующее подключение к 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
Применяем изменения.
Соединение с сервером 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)
trabl
10.09.2023 16:04Тоже столкнулся с перебоями работы openvpn развернутым на ec2 aws, провайдер Дом.ру. Переустановил, включив компрессию, на нестандартном порту и всё вновь пока работает. Видимо ключевое слово пока.
dvglab
10.09.2023 16:04+1Интересно другое. OpenVPN сервер в России, клиенты тоже в России, но тем не менее периодически перестает работать то один, то другой клиент, никакой сисемы нет, заблочат одного на несколько часов, потом следующего из 200 клиентов каждый день 5-6 не работает.. Главный вопрос зачем внутри России то блочить?
alibaba5848
10.09.2023 16:04Здравствуйте сделал все по вашей инструкции, но ничего не работает.
Andrevich Автор
10.09.2023 16:04Здравствуйте, давайте разбираться. Что именно у вас происходит? Подключается ли к shadowsocks, что в логах написано? Нужно больше информации чтобы вам помочь.
alibaba5848
10.09.2023 16:04+1Здравствуйте, все делал по инструкции по отделности shadow socs и openvpn работают, а вместе нет.
Andrevich Автор
10.09.2023 16:04По логам я вижу что OpenVPN пытается подключится и ему это не удаётся. Сервер shadowsocks пингуется? в OpenVPN весь трафик переадресуется? Если да, обязательно должен быть прописан маршрут до shadowsocks через шлюз по умолчанию, иначе роутер будет пытаться направлять shadowsocks через openvpn который пытается подключится через shadowsocks
alibaba5848
10.09.2023 16:04+1вот маршрут прописан
Andrevich Автор
10.09.2023 16:04Хорошо, а он пингуется? Шлюз по умолчанию обычно должен быть в маршруте указан. Если не пингуется, посмотрите какой у вас в 4G шлюз и укажите его.
alibaba5848
10.09.2023 16:04в open vpn есть еще какая-то переадресация кроме socs-proxy 127.0.0.1 1080 ?
Andrevich Автор
10.09.2023 16:04Обычно нет, трафик идёт напрямую к серверу OpenVPN, настройкой socks-proxy мы заставляем его идти через прокси, туда же, к серверу OpenVPN
NiceStory
Добрый день! Столкнулся с проблемой как и вы, перестал работать OpenVpn, на всех моих устройствах, как мобильных так и ПК. Сервер у меня поднят на арендованном VDS. Можете ли вы подсказать как решить проблему?. Отмечу сразу что я не сетевой администратор, и ВПН поднимал как говорится "по гайду".
В вашей статье всё завязано на роутере, поэтому не совсем понятно что к чему и что мне нужно сделать, возможно есть для меня какое-то относительно простое решение? как говорится "для чайников". Заранее спасибо.
П.С. сервер на ubuntu 20.04
MiraclePtr
Если нужно чтобы и на компе, и на мобильных устройствах, и нет особого опыта в администрировании и ручной настройке всего - то стоит посмотреть в сторону Amnezia VPN. Это тот же OpenVPN, но завёрнутый в Shadowsocks или Cloak для защиты от блокировок. Устанавливается на сервер в два клика, есть клиенты для разных платформ и для мобильных устройств.
BreedMax
Спасибо!
YuriyPashkov
Замените OpenVPN на XRay, вот пример очень хороший. Настраивается реально в несколько кликов, с вэб-мордой и поддержкой win/linux/mac/android/ios. Я туда ещё и рабочий OpenVPN направляю, от которого пока не уйти, на Ростелекоме работает.
ABATAPA
Переходите на xray, "гайдов" тоже хватает.