Репозиторий предназначен для помощи в настройке маршрутизации через прозрачный прокси на openwrt 22+
Go to file
2025-05-04 13:44:15 +00:00
ReadMe.md Обновить ReadMe.md 2025-05-04 13:44:15 +00:00

Настройка роутера на OpenWrt на точечную маршрутизацию по доменам, с использованием прозрачного прокси

На основе идеи по точечной маршрутизации от itdog решил сделать свой вариант маршрутизации трафика по доменам через прозрачный прокси.

Для работы nftset нужно установить dnsmasq-full

opkg update && cd /tmp/ && opkg download dnsmasq-full
opkg remove dnsmasq && opkg install dnsmasq-full --cache /tmp/
mv /etc/config/dhcp-opkg /etc/config/dhcp
/etc/init.d/dnsmasq restart

Для ускорения ютуба и других сервисов с неисправными cdn. Будем использовать проект hufrea/byedpi в режиме прозрачного прокси

Установим инструмент на странице Releases выберите нужную вам архитектуру и скопируйте ссылку на файл

wget https://github.com/hufrea/byedpi/releases/download/v0.16.6/byedpi-16.6-aarch64.tar.gz
tar -xvf byedpi-16.6-aarch64.tar.gz
rm byedpi-16.6-aarch64.tar.gz

Запустим, как фоновый процесс:

./ciadpi-aarch64 -s1 -o1 -Ar -o1 -At - f-1 -r1+s -As -E &

Первый раз лучше запускать ./ciadpi-aarch64 -s1 -o1 -Ar -o1 -At - f-1 -r1+s -As и на клиентском устройстве попробывать подключится по socks5 протоколу, по умолчанию порт 1080, socks5://ip-router:1080

Создание файла с цепочкой маршрутизации для nftables

Например файл /root/byedpi.nft

set proxylist {
    type ipv4_addr
    flags interval
    timeout 4h
}

chain byedpi_prerouting {
    type nat hook prerouting priority -100;
    ip daddr @proxylist tcp dport {80, 443} redirect to 1080
}

Настройка firewall в openwrt

В файле /etc/config/firewall нужно добавить

config include
        option enabled '1'
        option type 'nftables'
        option path 'your-script-path'
        option position 'table-post'

Вам необходимо изменить your-script-path на ваш путь до файла с правилами nftables. В моём случае путь будет /root/byedpi.nft

Теперь перезапустим firewall и убедимся, что он рабоет и не возвращает ошибок

/etc/init.d/firewall restart

Добавление новой папки конфигурации для dnsmasq в OpenWRT:

Вариант №1 Через добавление параметра в /etc/config/dhcp

config dnsmasq
        option confdir '/etc/dnsmasq.d'

После этого нужно перезапустить dnsmasq и убедиться, что он работает

/etc/init.d/dnsmasq restart
/etc/init.d/dnsmasq status

Если статус not running, то лучше попробовать вариант 2

Вариант №2 Через uci

uci set dhcp.@dnsmasq[0].confdir='/etc/dnsmasq.d'
uci commit dhcp
/etc/init.d/dnsmasq restart

Добавление списка доменов, которые будут идти через прозрачный прокси

Файл /etc/dnsmasq.d/proxylist.conf Например для ускорения youtube

#youtube
nftset=/returnyoutubedislikeapi.com/4#inet#fw4#proxylist
nftset=/youtube-nocookie.com/4#inet#fw4#proxylist
nftset=/youtube-ui.l.google.com/4#inet#fw4#proxylist
nftset=/youtube.com/4#inet#fw4#proxylist
nftset=/youtubeembeddedplayer.googleapis.com/4#inet#fw4#proxylist
nftset=/youtubei.googleapis.com/4#inet#fw4#proxylist
nftset=/youtubekids.com/4#inet#fw4#proxylist
nftset=/wide-youtube.l.google.com/4#inet#fw4#proxylist
nftset=/yt-video-upload.l.google.com/4#inet#fw4#proxylist
nftset=/ytimg.com/4#inet#fw4#proxylist
nftset=/ytimg.l.google.com/4#inet#fw4#proxylist
nftset=/yting.com/4#inet#fw4#proxylist
nftset=/youtu.be/4#inet#fw4#proxylist
nftset=/googlevideo.com/4#inet#fw4#proxylist
nftset=/ggpht.com/4#inet#fw4#proxylist
nftset=/suggestqueries.google.com/4#inet#fw4#proxylist
nftset=/noifications-pa.googleapis.com/4#inet#fw4#proxylist
nftset=/googleusercontent.com/4#inet#fw4#proxylist

Перезапустим dnsmasq, чтобы правила применились

/etc/init.d/dnsmasq restart

Роутер настроен, теперь нужно убедиться что ваше устройство использует роутер, как dns серевер (Иначе работать не будет)