Это DNS сервер который на базе конфигураций ShadowRocket поможет обходить точечно блокировки подменяя адрес на локальный (fakeip).
- Поддерживает ipv4/ipv6
- Поддерживает все виды записей включая RRSIG (dnssec)
- Правила имеют формат like ShadowRocket/ClashX
- Кэширует запросы
sudo bash -c "$(curl -fsSL https://github.com/unicorn-style/unicornDNS/raw/main/install_easy.sh)"
- Сборка сервера:
В папке sh/iptables находятся sh скрипты. Им нужно дать право на исполнение
git clone https://github.com/unicorn-style/unicornDNS/ cd unicornDNS go build
Пример запускаsudo chmod +x sh/iptables # !!! Скрипты являются примером. В каждом скрипте нужно поменять # действующий интерфейс (сейчас там указан ens3)
./unicornDNS -config example/config.yaml -rules example/rules.txt
Правила настраиваются по списку который -rules config/rules.txt. Пример не сложный. В текущей реализации он распознает только:
- DOMAIN-SUFFIX – любой домен *.google.com или
- DOMAIN-KEYWORD,google,PROXY - любое google.am, mail.google.com подходит под этот фильтр. Все что не подошло под правила – пропускается без каких-либо fakeip как есть.
- RULE-SET - скачать список (в примере так же есть все)
Я встроил HTTP сервер для возможности удаленного сброса или обновления rules.
- "/clearcache" Сброс кэша DNS с удалением правил
- "/reload" Перезагрузка правил (RULES)
- "/ips" Просмотр аренды fakeip адресов
- "/rules" Список действующих правил
При каких-либо проблемах я предусмотрел скрипты для отчистки. Сам сервер по завершению отчищает, но мало ли :)
- sh/iptables/ipv4_reset_all_rules.sh
- sh/iptables/ipv6_reset_all_rules.sh