November 15, 2024

Sing-box + Ruantiblock на OpwnWrt

Давайте подготовим все что нам понадобится:

Необходимо иметь конфигурацию vless такого формата

vless://b5741029xxxxxxx

найти можно на множестве телеграмм каналах или поднять на своем vps.

установленный на роутер пакет sing-box

в инструкции я буду пользоваться MobaXterm, бесплатной версии нам хватит

MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download

файл с шаблоном конфигурации config.zip

и nekoray для pc

Releases · MatsuriDayo/nekoray

Поехали

Давайте сразу подготовим конфиг

я возьму конфиг с телеграмм канала

Скопирую вделанную часть и перенесу в запущенный на компе nekoray

Распакую скачанный config.zip и открою текстовым редактором

Далее вставлю данные моей конфигурации vless из окошка что выше в соответствующие поля

сохраню config.json ,он понадобится позже

Приступим к настройке OpenWrt

Запускаю Mobaxterm и соединяюсь с роутером

Устанавливаю Ruantiblock , командой

wget --no-check-certificate -O /tmp/setup.sh https://raw.githubusercontent.com/routerich/scripts/main/setup.sh && chmod +x /tmp/setup.sh && /tmp/setup.sh

далее ввожу

echo "Setting sing-box"
uci set sing-box.main.enabled='1'
uci set sing-box.main.user='root'
uci commit sing-box

echo "Installing the TUN1 interface"
uci set network.sign_box='interface'
uci set network.sign_box.proto='none'
uci set network.sign_box.device='tun1'
uci set network.sign_box.defaultroute='0'
uci set network.sign_box.delegate='0'
uci set network.tun1.auto='1'
uci commit network

echo "Installing a Firewall"
section_name=$(uci add firewall zone)
uci set firewall.${section_name}.name='sing_box'
uci set firewall.${section_name}.input='ACCEPT'
uci set firewall.${section_name}.output='ACCEPT'
uci set firewall.${section_name}.forward='ACCEPT'
uci set firewall.${section_name}.masq='1'
uci add_list firewall.${section_name}.network='tun1'

echo "Installing a Firewall Forwarding"
section_name=$(uci add firewall forwarding)
uci set firewall.${section_name}.src='lan'
uci set firewall.${section_name}.dest='sign_box'
uci commit firewall

echo "Configuring Ruantiblock"
uci set ruantiblock.config.proxy_mode='2'
uci set ruantiblock.config.if_vpn='tun1'
uci set ruantiblock.config.bllist_preset='ruantiblock-fqdn'
uci commit ruantiblock

одной командой

Перехожу в веб интерфейс роутера

Добавляю зону, с такими настройками

сохраняю и перехожу в

На вкладке настройки межсетевого экрана проверяю зону

В mobaxterm в левой колонке перехожу в папку

/etc/sing-box/

и перетаскиванием копирую ранее отредактированный config.json

Конфигурируем Ruantiblock

Тут может возникнуть проблема, не будет видно интерфейса tun1

Перезагрузите роутер, должен появится.

И указываем домены которые должны идти через sing-box

либо доступные на Github списки

Допустим

1andrevich/Re-filter-lists: Re:filter is (an attempt to create) an actual list of blocked domains and IPs in RU + popular and blocked for RU users

https://raw.githubusercontent.com/1andrevich/Re-filter-lists/refs/heads/main/domains_all.lst

Сохраняем обновляем blacklist в ruantiblock.

Перезагружаем роутер и проверяем нет ли ошибки

И ходят ли пакеты

Если не ходят проверяем правильно ли заполнены поля в config.json и работает ли вообще конфигурация vless

И не забывайте про HTTPS DNS Прокси