Прежде всего, необходимо еще раз прояснить, что создание частной службы DNS имеет адаптируемые сценарии. Рекомендуется рассмотреть возможность создания частной службы DNS в следующих сценариях.
Если это только для вашего личного использования, в этом нет необходимости. Достаточно напрямую использовать общедоступное разрешение DNS.
Но в любом случае для создания частного DNS требуется частный сервер. Например, я установил этот сервис на свой домашний сервер.
Позвольте мне сначала представитьсяAdGuard Home
AdGuard Home — это инструмент, выпущенный adguard, компанией, специализирующейся на сетевой безопасности и защите конфиденциальности. У компании есть множество продуктов для фильтрации рекламы. Например, на моем Chrome установлен плагин AdGuard Home. Бесплатные инструменты защиты конфиденциальности и фильтрации рекламы с открытым исходным кодом.
По сравнению с рекламными плагинами в Chrome, возможности AdGuard Home следующие:
Короче говоря, AdGuard Home — это служба разрешения DNS, которая фильтрует рекламу, вредоносные веб-сайты и т. д. на уровне разрешения DNS.
Его принцип относительно прост. Обычно он реализуется через черный список доменных имен. Вредоносные веб-сайты или рекламные сайты просто не выполняют нормальное разрешение своего DNS.
В этом разделе в основном объясняется, как установить Adgurad Home.
Предварительные условия
Установить Прежде чем Предварительные условияиз:
Докер-среда
Я по-прежнему рекомендую, если вы можете выполнить развертывание на основе Docker, не использовать другие методы. Развертывание Docker просто, легко в использовании и сводит к минимуму количество различных сред и зависимостей.
Docker и Docker Compose, если нет, проверьте официальный сайт самостоятельно.
Создать новый каталог
В каталоге вашего Linux Создайтеadguardhome
Оглавление (Конечно, вы можете изменить любое другое имя каталога)
В этом каталоге создаватьconfdir
а такжеworkdir
Два каталога,Ниже приведен файл docker-compose.yml.
.
├── confdir
├── docker-compose.yml
└── workdir
Объяснение следующее:
confdif
: Каталог конфигурацииworkdir
: AdGurad Каталог данных, созданный Homeprok. Например, данные DNS-кэширование и т. д.docker-compose.yml
: docker составить файл конфигурацииОтредактируйте docker-compose.yml.
Отредактируйте файл docker-compose.yml со следующим содержимым:
version: "3.9"
services:
adguardhome:
image: adguard/adguardhome:latest
restart: always
container_name: adguardhome
ports:
- 53:53/tcp
- 53:53/udp
- 3000:3000/tcp
volumes:
- ./workdir:/opt/adguardhome/work
- ./confdir:/opt/adguardhome/conf
Описание нескольких важных параметров:
ports
: Откройте порты TCP и UDP 53. 53 — порт по умолчанию для DNS. 3000 — порт веб-управления.volumes
: Смонтируйте два только что созданных каталога: Таким образом, когда докер-контейнер перезапускается, Соответствующие данные не будут потеряны.открытый порт
Если в вашем Linux есть брандмауэр, Например, мой Debian будет иметь UFW. Тогда вам нужен открытый порт
sudo ufw allow 53
sudo ufw allow 3000
бегать
Используйте следующую команду, чтобы начать проект Служить
sudo docker compose up -d
В первый раз загрузка образа может занять некоторое время, но запустится все быстро.
Отключить разрешение по умолчанию в Linux
Если при запуске сообщает, что порт 53 занят. Это потому, что в некоторых Linux есть разрешенная служба, которая также выполняет разрешение доменных имен.
Мы используем AdGurad Home, поэтому нам это не нужно.
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
После успешного запуска доступhttp://ip:3000
, В первый раз вы попадете на страницу конфигурации. На этой странице конфигурации нам будет предложено инициализировать имя пользователя, пароль и некоторые общие настройки.
Установить порт
На этом этапе установите порты, которые вы только что добавили в файл Docker. У нас были 3000 и 53.
Создайте имя пользователя и пароль
На этом этапе задайте свое имя пользователя и пароль. Это имя пользователя и пароль вам понадобится использовать для входа в систему позже.
Заканчивать
Заканчивать Вышеуказанные несколько простых шагов по настройке будут Заканчивать.
на самом деле, Заканчивать После этого шага Это разрешение DNS можно использовать по умолчанию. Готов к использованию прямо из коробки.
Но, к сожалению, в Китае по известным причинам восходящий сервер разрешения DNS по умолчанию в AdGurad Home, вероятно, недоступен, поэтому нам необходимо изменить вышестоящий сервер разрешения DNS.
Входитьнастраивать-DNSнастраивать
интерфейс
Как показано на рисунке выше, измените вышестоящий DNS-сервер на некоторые известные и надежные службы DNS, к которым вы можете получить доступ.
В этой обстановке AdGurad HomeпредоставилСписок известных провайдеров DNS, Рекомендуется найти здесь тот, у которого более высокая скорость доступа.
Вы можете добавить одну или несколько вышестоящих DNS-служб. Например, одна для зарубежных стран и одна для внутренних. Иностранные службы имеют приоритет.
предположение
***Попробуйте использовать внешний DNS в качестве восходящего DNS-сервера ***.
Причину, конечно, легко понять. Изначально мы хотели создать собственный DNS, чтобы избежать перехвата DNS и загрязнения DNS. Если мы по-прежнему будем использовать внутренний DNS в качестве восходящего канала, это не решит проблему.
Конечно, вам не нужно беспокоиться о том, что внешний DNS будет очень медленным. AdGurad Home сам по себе является DNS-сервисом. Он будет запрашивать разрешение от вышестоящего DNS только в том случае, если локально нет записи в кэше. в первый раз. В редких случаях, таких как истечение срока действия кэша или истечение срока действия кэша, в большинстве случаев за это отвечает AdGuard Home.
проверять
После настройки вышестоящего DNS-сервера Сохраните настройки. Затемиспользоватьnslookup
Приходить Тестируетсяэтоизнормальность
# Меняем 127.0.0.1 на свой Ад Гурад IP-адрес, на котором находится дом
nslookup google.com 127.0.0.1
Вы увидите следующие результаты
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: google.com
Address: 8.7.198.46
Name: google.com
Address: 8.7.198.46
Вы получили правильное разрешение DNS для Google.com. Это доказывает, что AdGurad Home вступил в силу.
Защита конфиденциальности и блокировка рекламы
Разрешение доменных имен DNS — это основная возможность AdGurad Home. Но первоначальная цель AdGurad Home — защитить конфиденциальность и фильтрацию рекламы на основе разрешения доменных имен DNS.
На самом деле принцип относительно прост: у него есть черный список DNS. Доменные имена в этих черных списках могут быть вредоносной рекламой или рекламными веб-сайтами. Когда он обнаружит доменные имена в этом черном списке, он вернет неправильный IP-адрес при анализе DNS.
Таким образом, вы не сможете получить доступ к этим вредоносным веб-сайтам и рекламным объявлениям (многие рекламные альянсы имеют фиксированные доменные имена. Если вы заблокируете эти доменные имена, вы не сможете размещать рекламу на веб-страницах.)
Входитьфильтр->DNSчерный список
, Здесь можно добавить или сохранить черный список доменных имен. AdGuard По умолчанию Home уже предоставляет одну копию. Вы также можете поискать в Интернете известные общедоступные списки аналогичного обслуживания.
Пользовательское разрешение DNS
Если вы используете его в компании, вы можете столкнуться с необходимостью разрешения некоторых внутренних доменных имен.
В это время,在фильтр->DNS重写
中, Можно добавить собственный синтаксический анализ.
бревно
Несколько дней назад кто-то отправил мне личное сообщение с вопросом о разрешении DNS.
AdGurad Дом поставляется в полной бревно, ты можешь пройтиЗапрос бревно
модуль, Приходите в гости и расспросите обо всем бревно. Вот полное бревно.
на самом деле, В этот момент, Мы успешно создали полноценную службу DNS. Но служба DNS должна вступить в силу, Сетевому устройству необходимо изменить свой DNS-адрес, чтобы он указывал на IP-адрес нашего сервера.
Если кому-то другому понадобится модифицировать каждое устройство по отдельности, это будет очень хлопотно.
К счастью, в большинстве случаев мы фактически получаем доступ к Интернету через маршрутизатор. Поэтому удобным способом является изменение адреса службы DNS по умолчанию в маршрутизаторе, чтобы он указывал на службу DNS, которую мы только что установили.
Вам нужно всего лишь ввести IP-адрес этого AdGuard Home, и все интернет-устройства всей вашей семьи или все интернет-устройства во всей компании будут автоматически использовать этот DNS для разрешения.
Разве это не очень удобно?
По сравнению с некоторыми другими самодельными DNS-решениями, AdGurad Home — это самый простой и легкий в развертывании и настройке инструмент службы разрешения DNS, который я когда-либо видел. За исключением того, что для развертывания требуются некоторые возможности Linux и Docker, для обычных людей нет никаких препятствий для использования. этот инструмент.
AdGuard Home — это проект с открытым исходным кодом, основанный на языке GO. Отдайте должное компании adgurad и открытому исходному коду.