Этот проект представляет собой кэширующий DNS сервер, написанный на языке Go (Golang), с возможностью расширенной конфигурации и следующими особенностями:
- Кэширование DNS запросов: Уменьшение нагрузки на внешние DNS серверы и ускорение ответов на повторные запросы.
- Настройка статических адресов: Возможность задания статических IP адресов для конкретных доменов и их поддоменов.
- Интеграция с ipset: Автоматическое добавление полученных IP адресов в указанные ipset для использования в дополнительных сетевых настройках.
- Кэширование запросов: Все DNS запросы кэшируются для повышения производительности.
- Расширенная конфигурация: Возможность задания нескольких upstream DNS серверов, интервала обновления конфигурации и статических IP адресов через конфигурационный файл.
debug: false
nameservers:
- 8.8.8.8:53
- 8.8.4.4:53
- 1.1.1.1:53
configUpdate: true
updateInterval: 1m
address:
.local: 127.0.0.1
ipsets:
vpn:
- docker.com
- graylog.org
Для установки и запуска проекта следуйте инструкциям:
-
Клонируйте репозиторий:
git clone https://github.com/xMlex/dns-ipset.git cd dns-ipset
-
Установите зависимости и скомпилируйте проект:
go build
-
Настройте конфигурационный файл
config.yaml
в соответствии с вашими требованиями. -
Запустите сервер:
./dns-ipset -config config.yaml
- Go (Golang)
- ipset, iptables