ReadMe.md |
Настройка роутера на 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 серевер (Иначе работать не будет)