Оглавление:

  • 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

логин - root (адрес 192.168.3.7 только для примера)
логин - root (адрес 192.168.3.7 только для примера)

и пароль от веб-интерфейса

пароль будет не видно при вводе
пароль будет не видно при вводе

После ввода пароля нажимаем 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:ПОРТ"

Что делает скрипт:

  1. Проверит наличие пакетов kmod-tun, ip-full, bird2c

  2. Cкачает tun2socks для вашего роутера (если пакет есть в репозитории)

  3. Перенесёт файл в ПЗУ

  4. Создаст необходимые записи в /etc/config/network и /etc/config/firewall

  5. Перезагрузит сеть

  6. Попросит ввести данные для настройки

  7. Проверит и сохранит текущий маршрут по умолчанию

  8. Создаст скрипт запуска /etc/init.d/tun2socks и добавит его в автозапуск

  9. Создаст конфиг для bird2 (клиент BGP Antifilter.download)

  10. Запустит службу BGP Клиента bird2 (подключится через туннель)

  11. Проверит доступ к 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

Что делает скрипт:

  1. Проверит наличие пакетов kmod-tun, ip-full, bird2c

  2. Cкачает tun2socks для вашего роутера (если пакет есть в репозитории)

  3. Создаст необходимые записи в /etc/config/network и /etc/config/firewall

  4. Перезагрузит сеть

  5. Попросит ввести данные для настройки

  6. Проверит и сохранит текущий маршрут по умолчанию

  7. Создаст скрипт запуска /etc/init.d/tun2socks и добавит его в автозапуск (и будет скачивать пакет tun2socks после каждой перезагрузки устройства)

  8. Создаст конфиг для bird2 (клиент BGP Antifilter.download)

  9. Запустит службу BGP Клиента bird2 (подключится через туннель)

  10. Проверит доступ к 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

На этом инструкция закончена. (Материал довольно сырой и будет дорабатываться по мере нахождения ошибок и неточностей)

Часто задаваемые вопросы

  1. Я получаю ошибку типа arithmetic syntax error или service: not found или иные, недокументированные ошибки -

    Перезапустите скрипт командой:

cd /tmp
./install_outline.sh

или (для установки в оперативную память):

cd /tmp
./install_outline_ram.sh
  1. Почему shadowsocks, а не vless, vmess или что-то более устойчивое к блокировкам? - решение с shadowsocks и BGP является одним из наименее требовательных к ресурсам (нормально работает на устройствам с малым количеством ОЗУ) и стабильным, если ваш роутер имеет 256 Мб ОЗУ и больше, то можете воспользоваться инструкцией по настройке V2RayA, там инструментарий куда шире.

  2. Почему shadowsocks, а не zapret, byeDPI и другие? - Обходчики DPI это хорошая тема, позволяющая не отправлять трафик за рубеж, решая проблему именно с блокировками DPI, проблема в отсутствии обкатанных мною решений под Linux + высоки шансы что разработчики DPI просто исправят, то что сейчас позволяет эти блокировки обходить, у VPN больший запас живучести (но и меньше скорости и больше других ограничений)

  3. Почему время ping до заблокированных ресурсов такое маленькое, так же не может быть? - Tun2socks поднимает виртуальный интерфейс tun1 и отправляет трафик туда, Shadowsocks работает только с TCP и UDP трафиком, ping это ICMP и tun2socks сам отвечает на пинги для этих адресов, эти показатели говорят о том, что трафик уходит на заблокированные ресурсы через туннель.

Послесловие

Хочется отметить что идеальных способов обхода блокировок нет, и лучший способ обхода блокировок - их отсутствие. Большие объёмы трафика из-за YouTube уже приводят к тому, что нагрузка на магистрали увеличится и массовое использование VPN эту ситуацию не изменит, а значит все в итоге ширина канала станет меньше для всех. Временным решением могут стать решения типа byeDPI и goodbyeDPI, но не в долгосрочной перспективе.

Хочу поблагодарить пользователя @itdogза идею использовать BGP и подробное описание способа в его статье. Если выбираете роутер для OpenWRT, то рекомендую прочитать и эту статью

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


  1. qiper
    13.08.2024 21:01
    +1

    Amnezia VPN

    На мобильных операторах у меня не работает (из-за 22 порта?)


    1. acc0unt
      13.08.2024 21:01

      После изначальной настройки сервера с ПК можно сделать отдельный ключ доступа для мобильного устройства. И тогда на 22 порт вроде не нужно.


      1. nik135
        13.08.2024 21:01

        как отдельный ключ решает проблему доступа на мобильных операторах?


        1. acc0unt
          13.08.2024 21:01

          Вместо того, чтобы заходить на SSH через порт 22, получать там ключ, и перелезать с ключом на порт 443, клиент получает ключ от тебя и сразу с ним идёт на порт 443.


    1. qiper
      13.08.2024 21:01

      При чём если подключить VPN через Wi-Fi, а потом переключиться на симку - всё работает