Как да настроите AdGuard Home на VPS
Инсталирайте AdGuard Home на Ubuntu, завършете съветника за първо стартиране, заключете уеб интерфейса, включете DNS-over-HTTPS и DNS-over-TLS, насочете устройствата към своя резолвер и не оставяйте отворен DNS сървър, който целият интернет може да злоупотреби.

AdGuard Home е самостоятелен DNS sinkhole и резолвер с уеб интерфейс. Може да блокира реклами, тракери и злонамерени домейни за всяко устройство, което го ползва като DNS — телефони, лаптопи, smart TV и други проекти на VPS. За разлика от разширение в браузъра, работи дори за приложения, които игнорират файла hosts. На VPS е полезен, когато искате същото филтриране на път или не искате Raspberry Pi в домашната мрежа.
Опасният подразбиращ се режим, който не бива да пускате, е отворен резолвер: ако UDP/TCP 53 е достижим от целия интернет без контрол на достъпа, непознати ще ползват вашия VPS за DNS усилване и ще получите жалби за злоупотреба. Това ръководство инсталира AdGuard Home на Ubuntu, връзва DNS към localhost или частен интерфейс WireGuard, освен ако нарочно излагате шифрован DNS, слага таблото на HTTPS и показва как лаптопи и телефони могат да ползват DNS-over-HTTPS (DoH) или DNS-over-TLS (DoT), без да отваряте класическия порт 53 към света.
За какво е добър AdGuard Home
Обичайното сравнение е Pi-hole. AdGuard Home е един двоичен файл с вграден уеб интерфейс, по желание шифровани DNS фронтендове и настройки по клиент. Можете да го въртите в Docker или като услуга systemd. На VPS на Hiddence се съчетава добре с частен VPN: устройствата влизат в WireGuard, пращат DNS към VPS по тунела и никога не излагат порт 53 публично.
- Блокиране в цялата мрежа без приложение на всяко устройство
- DoH (443) и DoT (853), така че DNS не върви като ясен текст в публичен Wi-Fi
- Журнал на заявките и статистика, за да видите кое устройство говори с кой домейн
- Собствени upstream сървъри (Quad9, Cloudflare или ваш Unbound)
- Малък отпечатък — VPS с 1 GB филтрира домакинство и няколко допълнителни клиента
Изисквания
Трябва ви домейн, ако искате доверен сертификат за DoH/DoT и за таблото. Можете да тествате по HTTP и IP на сървъра, но не го оставяйте така. Ако systemd-resolved вече държи порт 53 на Ubuntu, ще го освободим, преди AdGuard Home да върже DNS.
- VPS Ubuntu 22.04 или 24.04 с root/sudo
- 1 GB RAM стига за лична употреба
- Домейн или поддомейн (dns.example.com) с A запис към VPS
- Достъп SSH; по желание WireGuard, ако DNS трябва да е само в тунел
Стъпка 1. Освободете порт 53 и инсталирайте AdGuard Home
Ubuntu Server често върти systemd-resolved като stub на 127.0.0.53:53. AdGuard Home иска 53 на интерфейсите, които изберете. Инсталаторът може да го направи сам, но явната стъпка спасява от наполовина счупен DNS на самия VPS (сървърът все пак трябва да резолва пакети).
ssh root@YOUR_VPS_IP
apt update && apt -y upgrade
apt -y install curl ca-certificates
# See who owns port 53:
ss -tulpn | grep ':53'
# Typical Ubuntu fix: stop stub listener, point the OS at a temporary resolver
mkdir -p /etc/systemd/resolved.conf.d
cat >/etc/systemd/resolved.conf.d/adguardhome.conf <<'EOF'
[Resolve]
DNS=1.1.1.1
DNSStubListener=no
EOF
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -vСтъпка 2. Съветник за първо стартиране
Инсталаторът печата URL, обикновено http://YOUR_IP:3000/. Отворете го, създайте администратор с дълга парола и изберете адреси за слушане. За публичен VPS безопасна първа схема е: Admin Web на 127.0.0.1:3000 (после Caddy отпред) или на 80/443 след TLS; DNS на 127.0.0.1:53 плюс VPN интерфейс, не на 0.0.0.0:53. Ако наистина ви трябва DNS „като в LAN“ за познати, предпочитайте DoH/DoT на 443/853 с автентикация, а не отворен 53/udp.
Изберете upstream DNS сървъри, на които имате доверие. Много хора ползват https://dns.quad9.net/dns-query или Cloudflare. Включете паралелни заявки, ако искате по-бърз failover. Включете стандартните филтърни списъци, останалите добавяйте по-късно — петдесет списъка в първия ден правят отстраняването невъзможно, когато сайт се счупи.
Стъпка 3. Обратен прокси и HTTPS за таблото
След като съветникът приключи, AdGuard Home обикновено мести интерфейса на порт 80. Това се сблъсква с Caddy или Nginx, ако хоствате и сайтове. Чист шаблон: уеб на AdGuard Home на 127.0.0.1:8080, DNS на 127.0.0.1:53, Caddy на 443 и за таблото, и за DoH.
# In AdGuard Home settings, bind the web UI to 127.0.0.1:8080
# Example Caddyfile:
dns.example.com {
reverse_proxy 127.0.0.1:8080
}
# After Caddy is up:
curl -I https://dns.example.comСтъпка 4. Включете DNS-over-HTTPS и DNS-over-TLS
В настройките за шифроване включете шифроването, задайте името на сървъра на dns.example.com и насочете AdGuard Home към файловете със сертификати — или тези, които пази Caddy, или тези, които сам AdGuard Home получава, ако слуша на 443. DoH обикновено е https://dns.example.com/dns-query. DoT е dns.example.com:853. Ако Caddy вече държи 443, нека Caddy сваля TLS и reverse-proxy пътя DoH към обикновения HTTP порт DoH на AdGuard Home, или нека AdGuard Home слуша на 443, а таблото отиде на друг поддомейн.
Проверете с клиент, преди да смените DNS на всички устройства. На лаптоп със съвременен curl:
curl -H 'accept: application/dns-json' 'https://dns.example.com/dns-query?name=example.com&type=A'
# DoT test (kdig from knot-dnsutils, if installed):
# kdig @dns.example.com +tls-ca +tls-host=dns.example.com example.comСтъпка 5. Насочете реални устройства към своя резолвер
Windows 11 и по-новите Android компилации умеят шаблон DoH. iOS може да ползва конфигурационен профил или клиент с DoH. Firefox и Chromium също приемат собствен URL за DoH. На домашен маршрутизатор сменяйте WAN DNS само ако маршрутизаторът поддържа DoT/DoH; иначе вдигнете WireGuard и задайте DNS към VPN IP на VPS, за да не пресича класическият DNS интернет.
- Android 9+: Частен DNS (DoT) → dns.example.com
- Firefox: Настройки → Мрежа → DNS over HTTPS → собствен URL https://dns.example.com/dns-query
- Устройства Apple: подписан mobileconfig или приложение с DoH/DoT
- Друг VPS: задайте resolv.conf или systemd-resolved към WireGuard IP на тази инстанция AdGuard
- Не задавайте IP на този VPS като DNS в случайни публични мрежи без шифроване
Стъпка 6. Защитна стена — затворете отворения рекурсивен DNS
Този раздел предотвратява неприятна изненада. Разрешете SSH, HTTPS и по желание 853/tcp за DoT. Не разрешавайте 53/udp от 0.0.0.0/0, освен ако нямате много конкретна, ограничена по честота и автентикирана схема — и дори тогава вероятно не трябва.
ufw allow OpenSSH
ufw allow 443/tcp comment 'dashboard + DoH'
ufw allow 853/tcp comment 'DoT'
# If DNS is only on WireGuard (example iface wg0, 10.8.0.1):
# ufw allow in on wg0 to any port 53 proto udp
ufw enable
ufw status verbose
# Confirm 53 is not public:
ss -tulpn | grep ':53'Филтри, бели списъци и клиенти
Започнете със стандартния DNS филтър на AdGuard и един списък за зловреден софтуер. Когато сайт се държи зле, проверете журнала на заявките, после добавете конкретна allowlist правило, вместо да изключвате цялото блокиране. Ползвайте имена на клиенти (по IP или ClientID в URL на DoH), за да прилагате по-строги списъци към smart TV и по-меки към служебен лаптоп. Включвайте безопасно търсене само ако наистина го искате — изненадва хора, които не са искали пренаписани резултати в Google.
- Журнал на заявките: намерете блокирания домейн, после го разрешете при фалшиво положително
- Настройки на клиента: различни списъци за блокиране по устройство
- Забранени клиенти: блокирайте диапазони, които не притежавате
- Ограничение на честотата: включете, ако някога изложите повече от шепа потребители
Отстраняване на проблеми
Ако самият VPS не прави apt update, счупихте локалния DNS, докато освобождавахте порт 53 — сложете статичен резолвер в resolved.conf, както по-горе. Ако устройствата „имат интернет“, но рекламите още се зареждат, заобикалят вашия DNS (твърдо зададени резолвери, DoH в браузъра или приложение със собствен DNS). Ако таблото е празно, гледате грешната инстанция или още порт 3000, след като съветникът е преместил интерфейса.
- apt се проваля: проверете /etc/resolv.conf и systemd-resolved
- Порт 53 е зает: ss -tulpn, изключете stub listener
- Грешки в сертификата DoH: името на хоста трябва да съвпада със SAN на сертификата
- Рекламите още се виждат: DoH на браузъра към друг доставчик презаписва ОС
- Много RAM: журнал + твърде много филтърни списъци — орежете списъците и съкратете задържането на лога
Контролен списък за сигурност
Уеб интерфейсът е администраторски панел. Уникална парола, само HTTPS и не публикувайте URL. Дръжте AdGuard Home обновен; и инсталационният скрипт, и интерфейсът имат път за обновяване. Ограничете 443, ако само вашите устройства трябва да ползват DoH — HTTP basic auth по пътя DoH или достъп само през WireGuard е много по-безопасно от известен отворен резолвер.
- Няма публичен 53/udp
- HTTPS на таблото
- Силна администраторска парола в мениджър на пароли
- За семейни устройства предпочитайте WireGuard + вътрешен DNS
- Копирайте AdGuardHome.yaml извън сървъра
Съвети
- Преди всяко обновяване пазете /opt/AdGuardHome/AdGuardHome.yaml
- Отделен поддомейн; не го делите с несвързана CMS
- Ако вече въртите Caddy, нека Caddy държи 443, а AdGuard Home остане на localhost
- Запишете URL на DoH за устройствата — ще го забравите
- Свържете със закаляването на SSH и защитната стена, за да не е VPS „сигурен само откъм DNS“
AdGuard Home на VPS е праволинеен: освободете порт 53 локално, пуснете инсталатора, завършете съветника със силна администраторска парола, сложете интерфейса на HTTPS, включете DoH/DoT и дръжте класическия DNS далеч от публичния интернет. Насочете устройствата към шифрована крайна точка или VPN IP, започнете с малък набор филтри и ползвайте журнала на заявките, когато нещо се счупи. Това е частен резолвер, който наистина контролирате — не публичен отворен DNS, заради който VPS ще влезе в бази за злоупотреба.