Прокси сервер xray поддерживает некоторые популярные протоколы проксификации и обфускации трафика (для обхода продвинутых методов блокировки средствами DPI), в том числе Shadowsocks, VLESS, VMess, Hysteria2, Trojan и прочие. Доступен в репозитории OpenWrt.
1. Установка xray:
OpenWrt >= 25.12:
apk update
apk add xray-core
OpenWrt <= 24.10:
opkg update
opkg install xray-core
2.1 Конфигурация xray с прозрачным прокси для приёма входящих соединений:
Здесь xray будет принимать соединения в качестве локального прозрачного прокси. Ruantiblock будет настроен в режиме прозрачного прокси для заворачивания трафика заблокированных сайтов в xray.
-
Бэкап стандартного конфига:
cp /etc/xray/config.json /etc/xray/config.json.bak -
Создание собственного конфига
/etc/xray/config.json:{ "log": { "loglevel": "warning", "access": "none" }, "inbounds": [ { "tag": "tproxy-in", "protocol": "dokodemo-door", "listen": "0.0.0.0", "port": 1100, "settings": { "network": "tcp,udp", "followRedirect": true }, "sniffing": { "enabled": true, "destOverride": [ "http", "tls" ] }, "streamSettings": { "sockopt": { "tproxy": "tproxy" } } } ], "outbounds": [ ], "routing": { "domainStrategy": "AsIs" } }Секция
inboundsс протоколом типа dokodemo-door ("protocol": "dokodemo-door") определяет параметры прозрачного прокси для входящих соединений. Прокси должен принимать соединения на всех адресах ("listen": "0.0.0.0"), это необходимо для приёма соединений как удалённых хостов из домашней сети, так и локальных приложений самого роутера. Параметры секцииoutboundsнужно заполнить в соответствии с вашей конфигурацией (VLESS, Shadowsocks и т.п.). -
Можно запустить xray из консоли, для проверки возможных ошибок в созданном конфигурационном файле:
xray run -confdir /etc/xray -config /etc/xray/config.json -format json
2.2 Включение и запуск xray:
uci set xray.enabled.enabled="1"
uci commit xray
service xray enable
service xray start
2.3 Настройка ruantiblock в режиме прозрачного прокси:
В настройках ruantiblock включаем режим прозрачного прокси, задаём тип прокси 1 (tproxy) и TCP-порт прокси:
uci set ruantiblock.config.proxy_mode='3'
uci set ruantiblock.config.t_proxy_type='1'
uci set ruantiblock.config.t_proxy_port_tcp='1100'
Также, если необходимо, для пользовательских списков (на примере list1):
uci set ruantiblock.list1.u_proxy_mode='3'
uci set ruantiblock.list1.u_t_proxy_type='1'
uci set ruantiblock.list1.u_t_proxy_port_tcp='1100'
Применение настроек:
uci commit ruantiblock
service ruantiblock restart