Используйте открытый исходный код и создайте частный DNS-сервис с помощью AdGuard Home.
Используйте открытый исходный код и создайте частный DNS-сервис с помощью AdGuard Home.

1. Уточните потребности

Прежде всего, необходимо еще раз прояснить, что создание частной службы DNS имеет адаптируемые сценарии. Рекомендуется рассмотреть возможность создания частной службы DNS в следующих сценариях.

  • Создайте частное разрешение DNS в своей домашней сети, главным образом для защиты здоровья вашей семьи в Интернете.
  • Настройте частное разрешение DNS в компании или команде, В основном используется для частного анализа на уровне компании.

Если это только для вашего личного использования, в этом нет необходимости. Достаточно напрямую использовать общедоступное разрешение DNS.

Но в любом случае для создания частного DNS требуется частный сервер. Например, я установил этот сервис на свой домашний сервер.

2. Знакомство с AdGuard Home

Позвольте мне сначала представитьсяAdGuard Home

AdGuard Home — это инструмент, выпущенный adguard, компанией, специализирующейся на сетевой безопасности и защите конфиденциальности. У компании есть множество продуктов для фильтрации рекламы. Например, на моем Chrome установлен плагин AdGuard Home. Бесплатные инструменты защиты конфиденциальности и фильтрации рекламы с открытым исходным кодом.

По сравнению с рекламными плагинами в Chrome, возможности AdGuard Home следующие:

  • Он обеспечивает защиту конфиденциальности и блокировку рекламы на уровне DNS.
  • тебе просто нужно Установитьэто, Используйте его для разрешения через DNS маршрутизатора, Автоматически защищать все подключенные устройства
  • поддерживать Пользовательское разрешение Возможности расширения DNS, такие как DNS

Короче говоря, AdGuard Home — это служба разрешения DNS, которая фильтрует рекламу, вредоносные веб-сайты и т. д. на уровне разрешения DNS.

Его принцип относительно прост. Обычно он реализуется через черный список доменных имен. Вредоносные веб-сайты или рекламные сайты просто не выполняют нормальное разрешение своего DNS.

3. Установка

В этом разделе в основном объясняется, как установить Adgurad Home.

Предварительные условия

Установить Прежде чем Предварительные условияиз:

  • Вам нужен сервер,Конечно линукс лучше,можно использовать УстановитьAdgurad Home
  • предположениеиспользоватьDockerПриходить Установить, Поэтому вам необходимо настроить среду докера в Linux.

Докер-среда

Я по-прежнему рекомендую, если вы можете выполнить развертывание на основе Docker, не использовать другие методы. Развертывание Docker просто, легко в использовании и сводит к минимуму количество различных сред и зависимостей.

Docker и Docker Compose, если нет, проверьте официальный сайт самостоятельно.

Создать новый каталог

В каталоге вашего Linux СоздайтеadguardhomeОглавление (Конечно, вы можете изменить любое другое имя каталога)

В этом каталоге создаватьconfdirа такжеworkdirДва каталога,Ниже приведен файл docker-compose.yml.

Язык кода:javascript
копировать
.
├── confdir
├── docker-compose.yml
└── workdir

Объяснение следующее:

  • confdif: Каталог конфигурации
  • workdir: AdGurad Каталог данных, созданный Homeprok. Например, данные DNS-кэширование и т. д.
  • docker-compose.yml: docker составить файл конфигурации

Отредактируйте docker-compose.yml.

Отредактируйте файл docker-compose.yml со следующим содержимым:

Язык кода:javascript
копировать
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. Тогда вам нужен открытый порт

Язык кода:javascript
копировать
sudo ufw allow 53
sudo ufw allow 3000

бегать

Используйте следующую команду, чтобы начать проект Служить

Язык кода:javascript
копировать
sudo docker compose up -d

В первый раз загрузка образа может занять некоторое время, но запустится все быстро.

Отключить разрешение по умолчанию в Linux

Если при запуске сообщает, что порт 53 занят. Это потому, что в некоторых Linux есть разрешенная служба, которая также выполняет разрешение доменных имен.

Мы используем AdGurad Home, поэтому нам это не нужно.

Язык кода:javascript
копировать
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved

4. Инициализация

После успешного запуска доступhttp://ip:3000, В первый раз вы попадете на страницу конфигурации. На этой странице конфигурации нам будет предложено инициализировать имя пользователя, пароль и некоторые общие настройки.

Установить порт

На этом этапе установите порты, которые вы только что добавили в файл Docker. У нас были 3000 и 53.

  • 3000 — порт веб-управления.
  • 53 — порт DNS по умолчанию.

Создайте имя пользователя и пароль

На этом этапе задайте свое имя пользователя и пароль. Это имя пользователя и пароль вам понадобится использовать для входа в систему позже.

Заканчивать

Заканчивать Вышеуказанные несколько простых шагов по настройке будут Заканчивать.

5. Настройки

на самом деле, Заканчивать После этого шага Это разрешение DNS можно использовать по умолчанию. Готов к использованию прямо из коробки.

Но, к сожалению, в Китае по известным причинам восходящий сервер разрешения DNS по умолчанию в AdGurad Home, вероятно, недоступен, поэтому нам необходимо изменить вышестоящий сервер разрешения DNS.

Входитьнастраивать-DNSнастраиватьинтерфейс

Как показано на рисунке выше, измените вышестоящий DNS-сервер на некоторые известные и надежные службы DNS, к которым вы можете получить доступ.

  • 1.1.1.1
  • 1.0.0.1

В этой обстановке AdGurad HomeпредоставилСписок известных провайдеров DNS, Рекомендуется найти здесь тот, у которого более высокая скорость доступа.

Вы можете добавить одну или несколько вышестоящих DNS-служб. Например, одна для зарубежных стран и одна для внутренних. Иностранные службы имеют приоритет.

предположение

***Попробуйте использовать внешний DNS в качестве восходящего DNS-сервера ***.

Причину, конечно, легко понять. Изначально мы хотели создать собственный DNS, чтобы избежать перехвата DNS и загрязнения DNS. Если мы по-прежнему будем использовать внутренний DNS в качестве восходящего канала, это не решит проблему.

Конечно, вам не нужно беспокоиться о том, что внешний DNS будет очень медленным. AdGurad Home сам по себе является DNS-сервисом. Он будет запрашивать разрешение от вышестоящего DNS только в том случае, если локально нет записи в кэше. в первый раз. В редких случаях, таких как истечение срока действия кэша или истечение срока действия кэша, в большинстве случаев за это отвечает AdGuard Home.

проверять

После настройки вышестоящего DNS-сервера Сохраните настройки. ЗатемиспользоватьnslookupПриходить Тестируетсяэтоизнормальность

Язык кода:javascript
копировать
# Меняем 127.0.0.1 на свой Ад Гурад IP-адрес, на котором находится дом
nslookup google.com 127.0.0.1

Вы увидите следующие результаты

Язык кода:javascript
копировать
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 вступил в силу.

6. Еще

Защита конфиденциальности и блокировка рекламы

Разрешение доменных имен DNS — это основная возможность AdGurad Home. Но первоначальная цель AdGurad Home — защитить конфиденциальность и фильтрацию рекламы на основе разрешения доменных имен DNS.

На самом деле принцип относительно прост: у него есть черный список DNS. Доменные имена в этих черных списках могут быть вредоносной рекламой или рекламными веб-сайтами. Когда он обнаружит доменные имена в этом черном списке, он вернет неправильный IP-адрес при анализе DNS.

Таким образом, вы не сможете получить доступ к этим вредоносным веб-сайтам и рекламным объявлениям (многие рекламные альянсы имеют фиксированные доменные имена. Если вы заблокируете эти доменные имена, вы не сможете размещать рекламу на веб-страницах.)

Входитьфильтр->DNSчерный список, Здесь можно добавить или сохранить черный список доменных имен. AdGuard По умолчанию Home уже предоставляет одну копию. Вы также можете поискать в Интернете известные общедоступные списки аналогичного обслуживания.

Пользовательское разрешение DNS

Если вы используете его в компании, вы можете столкнуться с необходимостью разрешения некоторых внутренних доменных имен.

В это время,在фильтр->DNS重写中, Можно добавить собственный синтаксический анализ.

бревно

Несколько дней назад кто-то отправил мне личное сообщение с вопросом о разрешении DNS.

AdGurad Дом поставляется в полной бревно, ты можешь пройтиЗапрос бревномодуль, Приходите в гости и расспросите обо всем бревно. Вот полное бревно.

6. Окончательные настройки

на самом деле, В этот момент, Мы успешно создали полноценную службу DNS. Но служба DNS должна вступить в силу, Сетевому устройству необходимо изменить свой DNS-адрес, чтобы он указывал на IP-адрес нашего сервера.

Если кому-то другому понадобится модифицировать каждое устройство по отдельности, это будет очень хлопотно.

К счастью, в большинстве случаев мы фактически получаем доступ к Интернету через маршрутизатор. Поэтому удобным способом является изменение адреса службы DNS по умолчанию в маршрутизаторе, чтобы он указывал на службу DNS, которую мы только что установили.

Вам нужно всего лишь ввести IP-адрес этого AdGuard Home, и все интернет-устройства всей вашей семьи или все интернет-устройства во всей компании будут автоматически использовать этот DNS для разрешения.

Разве это не очень удобно?

По сравнению с некоторыми другими самодельными DNS-решениями, AdGurad Home — это самый простой и легкий в развертывании и настройке инструмент службы разрешения DNS, который я когда-либо видел. За исключением того, что для развертывания требуются некоторые возможности Linux и Docker, для обычных людей нет никаких препятствий для использования. этот инструмент.

AdGuard Home — это проект с открытым исходным кодом, основанный на языке GO. Отдайте должное компании adgurad и открытому исходному коду.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose