Как стать автором
Обновить

Обход блокировок на OpenWRT с помощью v2rayA (xray-core) и баз GeoIP, Geosite Re:filter, Antifilter

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров108K

В данном гайде будем устанавливать пакет v2rayA на OpenWRT на примере стабильной 23.05.0. Рекомендуется роутер минимум с 128 МБ RAM (256 предпочтительно) и памятью более 16 Мб (установка занимает около 30МБ памяти).

v2rayA — это простой в использовании и мощный клиент ориентированный на Linux. Несмотря на название актуальная версия использует xray-core, хотя есть возможность использовать и v2ray-core. Имеет веб-интерфейс для управления настройками и импорта конфигураций, подписок. Поддерживает всё, что поддерживает xray-core:

Shadowsocks (в т.ч. 2022), ShadowsocksR, Trojan, Vless (включая XTLS-Reality), Vmess, Juicity, Tuic

Руководство будет включать:

  1. Установку из репозитория

  2. Настройку v2rayA и обход блокировок с помощью Re:filter или Antifilter GeoIP, Geosite

1. Установка v2rayA

Поддерживаются версии начиная с 19.07, на 18.06 не проверял, возможно и там заработает.

На примере 23.05.0:

Устанавливаем публичный ключ репозитория и добавляем его в списки OPKG:

wget https://downloads.sourceforge.net/project/v2raya/openwrt/v2raya.pub -O /etc/opkg/keys/94cc2a834fb0aa03
echo "src/gz v2raya https://downloads.sourceforge.net/project/v2raya/openwrt/$(. /etc/openwrt_release && echo "$DISTRIB_ARCH")" | tee -a "/etc/opkg/customfeeds.conf"

v2rayA также доступен в официальном репозитории OpenWRT, но минимальная рабочая версия на данный момент 2.2.4-1, остальные не смогут загрузить geoip и geosite с сайта проекта и будут бесконечно висеть в ошибке.

Далее обновляем список пакетов:

opkg update

Устанавливаем пакеты:

opkg install v2raya xray-core kmod-nft-tproxy iptables-nft

Далее вы можете выбрать так называемую скрытую установку - управление v2rayA будет доступно только в веб-интерфейсе на порту 2017.

либо установить пакет luci-app-v2raya и управлять запуском v2rayA через LuCI:

opkg install luci-app-v2raya

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

uci set v2raya.config.enabled='1'
uci commit v2raya
/etc/init.d/v2raya enable
/etc/init.d/v2raya start

Далее переходим в панель управления v2rayA вашего роутера, например http://192.168.1.1:2017.

Возможно вы увидите сообщение:

Downloading missing geoip.dat and geosite.dat; refresh the page later. 正在下载缺失的 geoip.dat 和 geosite.dat,请稍后刷新页面。

В этом случае стоит подождать некоторое время, после чего перезагрузить страницу:

Вам предложат создать отдельный логин и пароль для управления v2rayA.

Вводим данные, запоминаем и нажимаем Login.

2. Настройка v2rayA и обход блокировок с помощью Re:filter и Antifilter GeoIP, Geosite

Далее можно импортировать (Import) ваш конфиг для подключения к прокси в виде ссылки либо нажать Create и ввести нужные данные вручную.

Далее переходим в меню Setting:

Для обхода блокировок по спискам Re:filter (2.1) либо Antifilter (2.2), нам необходимо задать следующие настройки v2rayA:

UPD. 13.10.2024 - добавлены настройки для Discord, защиты от подмены DNS

  • Transparent Proxy / System Proxy: On : Traffic Splitting Mode is the same as the Rule Port

  • Transparent Proxy / System Proxy Implementation: tproxy (работает с TCP и UDP, но не работает с Docker) или redirect (работает только с TCP (Голос в Discord не будет проксироваться), но работает с Docker

  • Traffic Splitting Mode of Rule Port: RoutingA

  • Prevent DNS Spoofing: Advanced Setting и ввести нужные вам DNS серверы (Prevent DNS Hijack Only (fast) - при подмене DNS работает не всегда, лучше использовать Advanced Setting)

    DNS серверы можно использовать предустановленные либо заменить на привычные вам (Google, Cloudflare)

  • Special Mode - Off

  • TCPFastOpen - Keep Default

  • Multiplex - Off (при наличии ресурсов роутера можно и включить, об этом в конце статьи)

  • Automatically Update Subscriptions - по умолчанию Off, но если вы используете подписки на конфигурации, можете задать необходимый интервал обновления

  • Mode when Update Subscriptions and GFWList - Follows Transparent Proxy / System Proxy

Далее переходим к разделу Traffic Splitting Mode of Rule Port: RoutingA - Configure:

2.1 При использовании списков Re:filter (о том что это такое) :

Удаляем содержимое и вставляем туда следующие строки:

default: direct
# write your own rules below
ip(geoip:refilter)->proxy
domain(ext:"LoyalsoldierSite.dat:refilter")->proxy

В этих строках содержится:

  • Политика по умолчанию - прямой доступ через шлюз по умолчанию (direct он же bypass в большинстве клиентов)

  • при совпадении IP со списком geoip:refilter - через прокси

  • при совпадении домена со списком LoyalsoldierSite:refilter - через прокси

Данные настройки так же применимы для многих клиентов основанных на xray-core, главное скачать необходимые списки. Подробнее о правилах RoutingA здесь

UPD 14.12.2024

Для работы Viber нужно перенаправить порты Viber добавлением строки в RoutingA:

port(4244, 7985, 5242-5243) -> proxy

Для работы звонков в Discord нужно направлять UDP трафик на портах 50000-65535 добавлением строки в RoutingA:

network(udp) && port(50000-65535) -> proxy

Нажимаем Save и сохраняем настройки, после чего ещё раз и возвращаемся на главный экран:

Далее перед запуском нам необходимо скачать списки GeoIP и Geosite:

wget -O /usr/share/xray/geoip.dat https://github.com/1andrevich/Re-filter-lists/releases/latest/download/geoip.dat
wget -O /usr/share/xray/LoyalsoldierSite.dat https://github.com/1andrevich/Re-filter-lists/releases/latest/download/geosite.dat

Для экономии места, можно так же очистить существующую базу geosite.dat

> /usr/share/xray/geosite.dat

Если всё успешно скачалось, далее возвращаемся к v2rayA:

2.2 При использовании списков Antifilter.download:

Удаляем содержимое и вставляем туда следующие строки:

default: direct
# write your own rules below
ip(geoip:antifilter)->proxy
ip(geoip:antifilter-community)->proxy
#domain(ext:"LoyalsoldierSite.dat:antifilter")->proxy
domain(ext:"LoyalsoldierSite.dat:antifilter-community")->proxy
domain(domain: youtube.com) ->proxy
domain(domain: googlevideo.com) ->proxy

UPD 15.08.2024 Пользователи жалуются что в списках Antifilter.download нет домена Youtube, добавил две строчки для обхода блокировки youtube.com и googlevideo.com

UPD 29.09.2024 Исправил ошибку с файлом LoyalsoldierSite

В этих строках содержится:

  • Политика по умолчанию - прямой доступ через шлюз по умолчанию (direct он же bypass в большинстве клиентов)

  • при совпадении IP со списком geoip:antifilter или geoip:antifilter-community - через прокси

  • при совпадении домена со списком LoyalsoldierSite:antifilter-community - через прокси

Данные настройки так же применимы для многих клиентов основанных на xray-core, главное скачать необходимые списки.Подробнее о правилах RoutingA здесь

Нажимаем Save и сохраняем настройки, после чего ещё раз и возвращаемся на главный экран:

Далее перед запуском нам необходимо скачать списки GeoIP и Geosite:

wget -O /usr/share/xray/geoip.dat https://github.com/1andrevich/antifilter-geoip/releases/latest/download/geoip.dat
wget -O /usr/share/xray/LoyalsoldierSite.dat https://github.com/1andrevich/antifilter-domain/releases/latest/download/geosite.dat

Для экономии места, можно так же очистить существующую базу geosite.dat

> /usr/share/xray/geosite.dat

Если всё успешно скачалось, далее возвращаемся к v2rayA:

Нажимаем Connect на выбранной конфигурации после чего кнопку Ready:

Проверить работу можно в т.ч. по логам v2rayA:

лишнее логирование можно отключить если используете luci-app-v2raya (как на скриншоте):

Log level - Warn
Log level - Warn

Поскольку v2rayA имеет встроенные списки (которые жестко прописаны в коде проекта) GeoIP, Geosite и GFWList создадим скрипт раз в 24 часа скачивающий нужные нам списки

Re:filter:

crontab -e
0 5 * * * wget -O /usr/share/xray/geoip.dat https://github.com/1andrevich/Re-filter-lists/releases/latest/download/geoip.dat
0 5 * * * wget -O /usr/share/xray/LoyalsoldierSite.dat https://github.com/1andrevich/Re-filter-lists/releases/latest/download/geosite.dat

или

Antifilter:

crontab -e 
0 5 * * * wget -O /usr/share/xray/geoip.dat https://github.com/1andrevich/antifilter-geoip/releases/latest/download/geoip.dat
0 5 * * * wget -O /usr/share/xray/LoyalsoldierSite.dat https://github.com/1andrevich/antifilter-domain/releases/latest/download/geosite.dat

Если вам необходимо направлять внешний трафик в v2rayA, можно установить tun2socks воспользовавшись 5 главой этой инструкции, отличие будет только в порте Socks5 proxy, у v2rayA он по умолчанию 20170.

Для отключения v2rayA:

/etc/init.d/v2raya stop
/etc/init.d/v2raya disable

На этом настройка закончена. Отдельно хочется написать по поводу мультиплекса, в моём случае замеры не показали ощутимой разницы между включенной и выключенной опцией, но в других условиях может быть иначе:

Без мультиплекса (VirtualBox x86_64, 512 MB RAM):

393 MB Свободно ОЗУ – в простое

347.64 MB Свободно ОЗУ – vless (ws+tls)

 337.44 MB Свободно ОЗУ - trojan (tls)

338.48 MB Свободно ОЗУ – shadowsocks (ietf20-chacha1305)

328.25 MB Свободно ОЗУ – vmess (ws+tls)

С мультиплексом:

348.94 MB Свободно ОЗУ – vless (ws+tls)

348.58 MB Свободно ОЗУ – trojan (tls)

345.55 MB Свободно ОЗУ – shadowsocks (old)

316.92 MB Свободно ОЗУ – vmess (ws+tls)

Результаты довольно неоднозначные, но хотелось поделиться.

По настройке XRay рекомендую статьи: Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие / Хабр (habr.com) и FAQ по Shadowsocks/XRay/XTLS/Reality/Nekobox/etc. для обхода блокировок / Хабр (habr.com)

Теги:
Хабы:
Всего голосов 31: ↑31 и ↓0+31
Комментарии27

Публикации

Истории

Работа

Ближайшие события

25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область