Skip to content

unicorn-style/unicornDNS

Repository files navigation

Это DNS сервер который на базе конфигураций ShadowRocket поможет обходить точечно блокировки подменяя адрес на локальный (fakeip).

  • Поддерживает ipv4/ipv6
  • Поддерживает все виды записей включая RRSIG (dnssec)
  • Правила имеют формат like ShadowRocket/ClashX
  • Кэширует запросы

Сборка и настройка проекта UnicornDNS

1. Установка

sudo bash -c "$(curl -fsSL https://github.com/unicorn-style/unicornDNS/raw/main/install_easy.sh)"

Шаги для самостоятельной сборки

  1. Сборка сервера:
    git clone https://github.com/unicorn-style/unicornDNS/
    cd unicornDNS
    go build
    В папке sh/iptables находятся sh скрипты. Им нужно дать право на исполнение
    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 - скачать список (в примере так же есть все)

2. Дополнительно

Я встроил HTTP сервер для возможности удаленного сброса или обновления rules.

  • "/clearcache" Сброс кэша DNS с удалением правил
  • "/reload" Перезагрузка правил (RULES)
  • "/ips" Просмотр аренды fakeip адресов
  • "/rules" Список действующих правил

При каких-либо проблемах я предусмотрел скрипты для отчистки. Сам сервер по завершению отчищает, но мало ли :)

  • sh/iptables/ipv4_reset_all_rules.sh
  • sh/iptables/ipv6_reset_all_rules.sh

About

DNS server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published