itdoginfo / domain-routing-openwrt Goto Github PK
View Code? Open in Web Editor NEWAutomatic configuration of Openwrt router for routing by domains. Ansible role and shell script
Home Page: https://t.me/itdoginfo
Automatic configuration of Openwrt router for routing by domains. Ansible role and shell script
Home Page: https://t.me/itdoginfo
В dev-репозитории (для mipsel_24kc в моем случае) отсутствует пакет dnsmasq-full. Также его нет по ссылке из примера.
Здравствуйте, а есть какой-то удобный вариант добавить определённые ip и ip_range в какой-то список чтоб маршрутизация на них была не через vpn? А то есть определённые адреса к которым хотелось бы иметь доступ мимо впн-а, а суммаризованый список к сожалению захватывает эти адреса по случайности.
Вчера пытался настроить маркировку своего списка "исключений" другой меткой (0x2) и направлять все файлы с таким пакетом в нормальную таблицу маршрутизации (не vpn), но что-то ничего не получилось (Я к сожалению в сетях и настройках FW не силён).
Может есть какие-то более удобные варианты?
Огромная просьба, добавить поддержку снапшотов OpenWRT 24. Вручную менял настройки скрипта, чтобы он выдавал значение 23 вместо 24 на моём GL-MT3000 всё сработало.
Сразу говорю, я не предлагаю эти изменения для мёрджа, просто оставляю инфу, может кто-то ещё будет нуждаться в таком и найдёт это в гугле. Возможно настройки не оптимальны.
Я тут попользовался вашим конфигом (не ansible, в основном брал с хабра).
Всё отлично, через неделю понял что суммаризованым списком немного неудобно пользоваться.
Начал пытаться использовать ip.lst вместо ipsum.lst, и разумеется на моём картофельном роутере начал лететь OOM при рестарте фаерволла. Я не понимаю что там этот фаерволл делает, но жрёт память при рестарте он дико.
В итоге я таки победил свой роутер и теперь пользуюсь более точным списоком ip.lst.
Роутер у меня TP-Link TL-WR842N v3
Пишет что 56MiB оперативы всего.
OpenWRT 22.03
Идея моих изменений такая: Не грузим никакие списки при рестарте фаерволла, загружаем все айпишники уже после рестарта. Перед рестартом желательно ресетнуть всё тоже.
Во-первых надо:
opkg update
opkg install zram-swap
Это чуть-чуть "добавит" оперативы.
Мои изменённые конфиги:
(/etc/init.d/hirkn)
#!/bin/sh /etc/rc.common
START=99
dir=/tmp/lst
SUBNET=https://antifilter.download/list/subnet.lst
IP=https://antifilter.download/list/ip.lst
COMMUNITY=https://community.antifilter.download/list/community.lst
mkdir -p $dir
echo "Run download lists"
rm -f /$dir/subnet.lst && wget -P $dir $SUBNET
rm -f /$dir/ip.lst && wget -P $dir $IP
rm -f /$dir/community.lst && wget -P $dir $COMMUNITY
# Check file at reboot
if [ ! -f $dir/subnet.lst ]
then
wget -P $dir $SUBNET
fi
if [ ! -f $dir/ip.lst ]
then
wget -P $dir $IP
fi
if [ ! -f $dir/community.lst ]
then
wget -P $dir $COMMUNITY
fi
echo "Flushing old ruleset (Because otherwise firewall restart can be killed by OOM)"
nft flush ruleset
echo "Restarting firewall"
/etc/init.d/firewall restart
# nft list ruleset
echo "Adding community.lst"
cat /tmp/lst/community.lst | xargs -r -n1000 | sed 's/ /,/g' | xargs -n1 sh -c 'nft add element inet fw4 vpn_community { "$@" }' dummy
echo "Adding subnet.lst"
cat /tmp/lst/subnet.lst | xargs -r -n1000 | sed 's/ /,/g' | xargs -n1 sh -c 'nft add element inet fw4 vpn_subnets { "$@" }' dummy
echo "Adding ip.lst"
cat /tmp/lst/ip.lst | xargs -r -n1000 | sed 's/ /,/g' | xargs -n1 sh -c 'nft add element inet fw4 vpn_ip { "$@" }' dummy
(/etc/config/firewall)
Как видим в конфиге я не использую loadfile (он закомменчен)
config ipset
option name 'vpn_ip'
option match 'dst_ip'
#option loadfile '/tmp/lst/ip.lst'
config ipset
option name 'vpn_subnets'
option match 'dst_net'
#option loadfile '/tmp/lst/subnet.lst'
config ipset
option name 'vpn_community'
option match 'dst_net'
#option loadfile '/tmp/lst/community.lst'
config rule
option name 'mark_subnet'
option src 'lan'
option dest '*'
option proto 'all'
option ipset 'vpn_subnets'
option set_mark '0x1'
option target 'MARK'
config rule
option name 'mark_ip'
option src 'lan'
option dest '*'
option proto 'all'
option ipset 'vpn_ip'
option set_mark '0x1'
option target 'MARK'
option family 'ipv4'
config rule
option name 'mark_community'
option src 'lan'
option dest '*'
option proto 'all'
option ipset 'vpn_community'
option set_mark '0x1'
option target 'MARK'
option family 'ipv4'
выходит ошибка
XHR request timed out
Роутер: Redmi AX6
FW: OpenWrt SNAPSHOT r20813-bfb4f545a8 / LuCI Master git-22.260.19132-34dd31a
В ручную не завелось. запустил через ansible всё завелось.
У меня решилось поместив код hirkn в start() { ** }
и запускать через /etc/init.d/hirkn start
не знаю как актуально для других версий.
можно ли использовать этот скрипт совместно с zapret, если да, то как?
у меня возникали конфликты, роутинг доменов из списка не работал
Предлагаю заменить wireguard на amnezia-wg, так как первый легко блокируется dpi и смысла от него нынче никакого. AmneziaWG умеет в обфускацию трафика и полностью совместима с wireguard.
Получаю следующие ошибки:
fatal: [192.168.1.1]: FAILED! => {"changed": true, "checksum": "638f04858d5887b50c61b7c9a41ad8a068ce7385", "dest": "/etc/hotplug.d/iface/30-rknroute", "md5sum": "db11dee959eb32d01d34b35c24195d21", "msg": "chmod (/etc/hotplug.d/iface/30-rknroute) failed: chmod: invalid mode 'False'", "src": "/root/.ansible/tmp/ansible-tmp-1550921521.83-94202376827463/source"}
fatal: [192.168.1.1]: FAILED! => {"changed": true, "checksum": "ffe1b15697030e4be45349840923a773806c9cbc", "dest": "/etc/config/dnscrypt-proxy", "md5sum": "d833f620cf01f61e2c5697f61f14df6c", "msg": "chmod (/etc/config/dnscrypt-proxy) failed: chmod: invalid mode 'False'", "src": "/root/.ansible/tmp/ansible-tmp-1550922152.67-233527556261273/source"}
Ошибка возникает, как я понял, из-за того, что template файлы не с теми правами и владельцами. не стал разбираться. Файлы копируются, я просто на время закомментировал эти строки.
P.S. Спасибо за то, что поделились своим трудом.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.