Сегодня мы рассмотрим новый способ централизованного обхода блокировок на маршрутизаторе, используя v2rayA на OpenWrt. Ранее мы рассматривали OpenClash, но, несмотря на его функциональность, мне он кажется несколько перегруженным решением. Есть более легкий и красивый вариант – v2rayA. Однако для этого решения требуется другой формат списков – v2rayGeoIPDat. Поэтому я также модернизировал свое решение для создания списков, необходимых для обхода блокировок.

Установка v2rayA на OpenWrt

Начнем с установки v2rayA. Для этого выполните следующие команды в терминале вашего маршрутизатора.

Загрузите ключ для репозитория v2rayA (неактуально с версии OpenWrt 23.05.4, пакеты v2raya доступны в родном репозитории):

wget https://downloads.sourceforge.net/project/v2raya/openwrt/v2raya.pub -O /etc/opkg/keys/94cc2a834fb0aa03

Добавьте источник пакетов v2rayA в конфигурацию opkg (неактуально с версии OpenWrt 23.05.4, пакеты v2raya доступны в родном репозитории):

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

Обновите список пакетов и установите v2rayA вместе с необходимыми зависимостями:

opkg update
opkg install v2raya kmod-nft-tproxy xray-core luci-app-v2raya

Теперь v2rayA установлен и готов к настройке.

Настройка обновления GEO данных

Для корректной работы v2rayA важно периодически обновлять базы данных GEOIP и GEOSITE. Списки мы будем брать из моего нового решения – Ultimate antifilter, о котором я расскажу в следующей статье. Добавим задания в cron для автоматического обновления каждые 12 часов для GEOIP и каждые 30 минут для GEOSITE.

Откройте редактор crontab:

crontab -e

Добавьте следующие строки для настройки обновлений:

0 */12 * * * curl -s -o /usr/share/xray/geoip-afl.dat http://YOUR_IP:8080/geoip.dat
*/30 * * * * curl -s -o /usr/share/xray/geosite-afl.dat http://YOUR_IP:8080/geosite.dat

Не забудьте заменить YOUR_IP на IP-адрес вашего сервера, где хранятся эти файлы.

Основные настройки v2rayA

Пример правил для v2rayA

На скрине выше есть пример правил маршрутизации трафика для v2rayA, которые я использую в настоящий момент времени.

Немного более подробный пример правил:

#
# Routing rules written earlier will be matched first
#
# Set the default outbound, if not set, the default is proxy
default: direct

# Source IP rules
#source(192.168.20.22)->direct
#source(192.168.1.11, 192.168.20.22)->proxy

# Domain name rules
#domain(geosite:category-ads-all, geosite:win-spy, geosite:win-extra)->block
domain("ext:geosite-afl.dat:direct-domain")->direct
domain("ext:geosite-afl.dat:antifilter-community-domain", "ext:geosite-afl.dat:proxy-domain")->proxy
domain(domain:2ip.io)->proxy

# Destination IP rules
ip("ext:geoip-afl.dat:direct-ip")->direct
ip("ext:geoip-afl.dat:antifilter-ip", "ext:geoip-afl.dat:antifilter-community-ip", "ext:geoip-afl.dat:proxy-ip")->proxy
#ip(8.8.8.8, 8.8.4.4)->proxy

Эти правила можно настроить под ваши нужды, добавляя или изменяя их в зависимости от требований.

Если вы используете обход блокировок YouTube – заблокируйте исходящий трафик QUIC протокола (UDP 443 port) – 'Межсетевой экран' - 'Правила для трафика' (поднимите это правило в самый верх списка правил):

Отключите DNS кэш на роутере – 'DHCP и DNS' - 'Лимиты':

Теперь ваш маршрутизатор с OpenWrt и установленным v2rayA готов для централизованного обхода блокировок.