Оглавление:
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:ПОРТ (не ssconf:// !, по переводу ssconf:// в ss:// написали в комментарии)
Далее запускаем скрипт:
./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 сам отвечает на пинги для этих адресов, эти показатели говорят о том, что трафик уходит на заблокированные ресурсы через туннель.
Возникла ошибка "Error: No route import updates found. BGP Server might be not available" - Проверьте доступность сервера командой
ip route del 45.154.73.71
ping 45.154.73.71
Если сервер доступен (отвечает на ping) попробуйте перезапустить скрипт заново, если повторный перезапуск не помог, то вероятно у вас нерабочий конфиг shadowsocks (либо несовместимый с tun2socks). Если сервер недоступен, но интернет работает, то вероятно сервис BGP недоступен (узнать можно в чате проекта Antifilter.download)
Послесловие
Хочется отметить что идеальных способов обхода блокировок нет, и лучший способ обхода блокировок - их отсутствие. Большие объёмы трафика из-за YouTube уже приводят к тому, что нагрузка на магистрали увеличится и массовое использование VPN эту ситуацию не изменит, а значит все в итоге ширина канала станет меньше для всех. Временным решением могут стать решения типа byeDPI и goodbyeDPI, но не в долгосрочной перспективе.
Хочу поблагодарить пользователя @itdogза идею использовать BGP и подробное описание способа в его статье. Если выбираете роутер для OpenWRT, то рекомендую прочитать и эту статью