Оглавление:
1. Подключение к ssh на Windows через PuTTY
2. Установка необходимых пакетов
3. Установка скрипта в постоянную память
4. Установка скрипта в оперативную память
5. Часто задаваемые вопросы
6. Послесловие
Итак, у вас есть роутер с установленной прошивкой OpenWRT не ниже 21.02 и 128 Мб Оперативной памяти (крайне желательно, на 64 Мб заработает, но совсем не стабильно), а также ключ к серверу Outline (Shadowsocks), а если ключа нет, то:
Бесплатные ключи даёт проект: VPN Generator
Платные ключи можно приобрести в Paper VPN, Blanc VPN и любой другой сервис предоставляющий Outline (shadowsocks) ключи
Self-hosted решения: Outline, Amnezia VPN
Также можно поискать ключи на сайтах типа outlinekeys.com, но ключи могут переставать работать довольно быстро и ваш трафик может быть использован владельцами бесплатных серверов
Если у вас также есть желание обойти блокировки и вернуть доступ к YouTube и другим нужным ресурсам, то мы попробуем это сделать с помощью протокола Shadowsocks и сервера маршрутов от Antifiter.download
Для этого вам понадобится доступ к консоли SSH и подключение роутера к интернету
Статья ориентирована на неопытных пользователей, поэтому коротко рассмотрим подключение к консоли ssh на примере Windows и программы PuTTY:
1. Подключение к ssh на Windows через PuTTY
Сначала скачаем и установим PuTTY с официального сайта
Вводим IP адрес роутера в поле Host Name, порт по умолчанию 22 и нажимаем Open
Нажимаем Accept в всплывающем окне и вводим логин - root
и пароль от веб-интерфейса
После ввода пароля нажимаем Enter и попадаем в консоль роутера:
Далее переходим к установке:
Установка необходимых пакетов
Устанавливаем необходимые пакеты kmod-tun, bird2c and ip-full (если они установлены, команда это определит и не будет устанавливать их заново)
Далее, команды ниже нужно будет копировать и вставлять (правой кнопкой мыши) в окно PuTTY:
opkg update
opkg install kmod-tun ip-full bird2c
Успешный вывод команды:
Запустите команду:
df -h /
В выводе команды смотрим объём свободного места:
Если Available (Свободно) больше 10M, тогда переходим к следующему этапе, если меньше, то будем использовать установку в Оперативную Память (служба будет загружаться после перезагрузки устройства автоматически) - пропустите следующую главу и перейдите сразу к "Установка в Оперативную память"
Установка скрипта в Постоянную память
Скачаем скрипт и дадим права на запуск:
cd /tmp
wget https://raw.githubusercontent.com/1andrevich/outline-bgp-install-wrt/main/install_outline.sh -O install_outline.sh
chmod +x install_outline.sh
Перед запуском скрипта подготовьте ключ в формате ss://шифрованный-ключ@IP:ПОРТ
Далее запускаем скрипт:
./install_outline.sh
Скрипт запросит:
Outline (Shadowsocks) конфиг в формате "ss://шифрованный-ключ@IP:ПОРТ"
Что делает скрипт:
Проверит наличие пакетов kmod-tun, ip-full, bird2c
Cкачает tun2socks для вашего роутера (если пакет есть в репозитории)
Перенесёт файл в ПЗУ
Создаст необходимые записи в /etc/config/network и /etc/config/firewall
Перезагрузит сеть
Попросит ввести данные для настройки
Проверит и сохранит текущий маршрут по умолчанию
Создаст скрипт запуска /etc/init.d/tun2socks и добавит его в автозапуск
Создаст конфиг для bird2 (клиент BGP Antifilter.download)
Запустит службу BGP Клиента bird2 (подключится через туннель)
Проверит доступ к Facebook, YouTube, X (Twitter)
Установка в Оперативную память
Если у вас доступно меньше 10 Мб постоянной памяти (но не менее 1.5 Мб), но есть желание установить клиент (и свободно минимум 35Мб ОЗУ), проверить можно командой:
free
Тогда переходим к установке:
Проверьте что установлены пакеты kmod-tun, bird2c и ip-full
opkg update && opkg install kmod-tun bird2c ip-full
Запустите команды:
cd /tmp
wget https://raw.githubusercontent.com/1andrevich/outline-install-wrt/main/install_outline_ram.sh -O install_outline_ram.sh
chmod +x install_outline_ram.sh
./install_outline_ram.sh
Что делает скрипт:
Проверит наличие пакетов kmod-tun, ip-full, bird2c
Cкачает tun2socks для вашего роутера (если пакет есть в репозитории)
Создаст необходимые записи в /etc/config/network и /etc/config/firewall
Перезагрузит сеть
Попросит ввести данные для настройки
Проверит и сохранит текущий маршрут по умолчанию
Создаст скрипт запуска /etc/init.d/tun2socks и добавит его в автозапуск (и будет скачивать пакет tun2socks после каждой перезагрузки устройства)
Создаст конфиг для bird2 (клиент BGP Antifilter.download)
Запустит службу BGP Клиента bird2 (подключится через туннель)
Проверит доступ к Facebook, YouTube, X (Twitter)
Для остановки туннеля до перезапуска:
в Веб Интерфейсе: Система - Автозапуск и Остановить напротив tun2socks и bird
или:
/etc/init.d/bird stop
/etc/init.d/tun2socks stop
Для удаления службы из автозапуска:
Система - Автозапуск и Включено напротив tun2socks, после нажатия Включено изменится на Отключено
или:
rm /etc/rc.d/S69tun2socks
rm /etc/rc.d/S70bird
На этом инструкция закончена. (Материал довольно сырой и будет дорабатываться по мере нахождения ошибок и неточностей)
Часто задаваемые вопросы
-
Я получаю ошибку типа arithmetic syntax error или service: not found или иные, недокументированные ошибки -
Перезапустите скрипт командой:
cd /tmp
./install_outline.sh
или (для установки в оперативную память):
cd /tmp
./install_outline_ram.sh
Почему shadowsocks, а не vless, vmess или что-то более устойчивое к блокировкам? - решение с shadowsocks и BGP является одним из наименее требовательных к ресурсам (нормально работает на устройствам с малым количеством ОЗУ) и стабильным, если ваш роутер имеет 256 Мб ОЗУ и больше, то можете воспользоваться инструкцией по настройке V2RayA, там инструментарий куда шире.
Почему shadowsocks, а не zapret, byeDPI и другие? - Обходчики DPI это хорошая тема, позволяющая не отправлять трафик за рубеж, решая проблему именно с блокировками DPI, проблема в отсутствии обкатанных мною решений под Linux + высоки шансы что разработчики DPI просто исправят, то что сейчас позволяет эти блокировки обходить, у VPN больший запас живучести (но и меньше скорости и больше других ограничений)
Почему время ping до заблокированных ресурсов такое маленькое, так же не может быть? - Tun2socks поднимает виртуальный интерфейс tun1 и отправляет трафик туда, Shadowsocks работает только с TCP и UDP трафиком, ping это ICMP и tun2socks сам отвечает на пинги для этих адресов, эти показатели говорят о том, что трафик уходит на заблокированные ресурсы через туннель.
Послесловие
Хочется отметить что идеальных способов обхода блокировок нет, и лучший способ обхода блокировок - их отсутствие. Большие объёмы трафика из-за YouTube уже приводят к тому, что нагрузка на магистрали увеличится и массовое использование VPN эту ситуацию не изменит, а значит все в итоге ширина канала станет меньше для всех. Временным решением могут стать решения типа byeDPI и goodbyeDPI, но не в долгосрочной перспективе.
Хочу поблагодарить пользователя @itdogза идею использовать BGP и подробное описание способа в его статье. Если выбираете роутер для OpenWRT, то рекомендую прочитать и эту статью
qiper
На мобильных операторах у меня не работает (из-за 22 порта?)
acc0unt
После изначальной настройки сервера с ПК можно сделать отдельный ключ доступа для мобильного устройства. И тогда на 22 порт вроде не нужно.
nik135
как отдельный ключ решает проблему доступа на мобильных операторах?
acc0unt
Вместо того, чтобы заходить на SSH через порт 22, получать там ключ, и перелезать с ключом на порт 443, клиент получает ключ от тебя и сразу с ним идёт на порт 443.
qiper
При чём если подключить VPN через Wi-Fi, а потом переключиться на симку - всё работает