Назад да блога
Жнівень 19, 2026Кіраўніцтва

Як наладзіць AdGuard Home на VPS

Усталёўка AdGuard Home на Ubuntu, майстар першага запуску, абарона вэб-інтэрфейсу, DNS-over-HTTPS і DNS-over-TLS, наладка прылад і абарона ад адкрытага рэзолвера, якім можа карыстацца ўвесь інтэрнэт.

Як наладзіць AdGuard Home на VPS

AdGuard Home — уласны DNS-фільтр і рэзолвер з вэб-інтэрфейсам. Ён можа адсякаць рэкламу, трэкеры і шкодныя дамены для ўсіх прылад, якія ходзяць праз яго як праз DNS: тэлефоны, ноўтбукі, тэлевізары і іншыя 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 на сервер тунэлем, порт 53 звонку не свяціцца.

  • Блакіроўка на ўзроўні сеткі без праграмы на кожнай прыладзе
  • DoH (443) і DoT (853): DNS не ідзе адкрытым тэкстам у чужы Wi-Fi
  • Часопіс запытаў і статыстыка: відаць, якая прылада да якога дамена хадзіла
  • Свае вышэйстаячыя серверы (Quad9, Cloudflare або свой Unbound)
  • Невялікае спажыванне рэсурсаў — 1 ГБ VPS хапае на кватэру і некалькі лішніх кліентаў

Што спатрэбіцца

Дамен патрэбны, калі хочаце нармальны сертыфікат для DoH/DoT і панэлі. Праверка па HTTP і IP магчымая, але так пакідаць нельга. Калі systemd-resolved ужо заняў порт 53 на Ubuntu, яго трэба вызваліць, інакш AdGuard Home не прывяжацца да DNS.

  • VPS Ubuntu 22.04 або 24.04 з root/sudo
  • 1 ГБ RAM дастаткова для асабістага карыстання
  • Дамен або паддамен (dns.example.com) з A-запісам на VPS
  • SSH; пры жаданні WireGuard, калі DNS патрэбны толькі ўнутры тунэлю

Крок 1. Вызваліце порт 53 і пастаўце AdGuard Home

На Ubuntu Server часта круціцца заглушка systemd-resolved на 127.0.0.53:53. AdGuard Home хоча 53 на тых інтэрфейсах, якія вы абярэце. Інсталятар умее гэта сам, але яўны крок ратуе ад сітуацыі, калі на VPS ламаецца развязанне імён для apt.

bash
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 бяспечны старт: вэб-панэль на 127.0.0.1:3000 (потым спераду Caddy) або на 80/443 пасля TLS; DNS — на 127.0.0.1:53 і на VPN-інтэрфейс, не на 0.0.0.0:53. Калі DNS патрэбны «як у лакалцы» для знаёмых, лепей DoH/DoT на 443/853 з абмежаваннем доступу, а не адкрыты 53/udp.

Абярыце вышэйстаячыя DNS, якім давяраеце. Часта бяруць https://dns.quad9.net/dns-query або Cloudflare. Паралельныя запыты паскараюць запасны варыянт пры збоі. Уключыце стандартныя спісы фільтраў, астатнія дадавайце пазней: пяцьдзесят спісаў у першы дзень робяць адладку немагчымай, калі «сайт не адкрываецца».

Калі порт 3000 з ноўтбука не адкрываецца: ssh -L 3000:127.0.0.1:3000 root@YOUR_VPS_IP і ў браўзеры http://127.0.0.1:3000/

Крок 3. Зваротны проксі і HTTPS для панэлі

Пасля майстра інтэрфейс часта пераязджае на порт 80 і канфліктуе з Caddy або Nginx. Зручная схема: вэб AdGuard Home на 127.0.0.1:8080, DNS на 127.0.0.1:53, Caddy на 443 і для панэлі, і для DoH.

bash
# 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 і сертыфікаты — або тыя, што захоўвае Caddy, або тыя, што сам AdGuard Home атрымае, калі слухае 443. DoH звычайна https://dns.example.com/dns-query. DoT — dns.example.com:853. Калі 443 ужо заняў Caddy, няхай ён здымае TLS і проксуе шлях DoH на нешыфраваны порт AdGuard Home, або аддайце 443 самой праграме, а панэль павесьце на іншы паддамен.

Праверце кліентам, перш чым мяняць DNS на ўсіх прыладах. На ноўтбуку з сучасным curl:

bash
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 сервера, каб звычайны 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, пакуль у вас няма вельмі вузкай, абмежаванай па частаце і доступе схемы — і нават тады звычайна не варта.

bash
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 і аднаго спісу шкодных даменаў. Калі сайт «ламаецца», глядзіце часопіс запытаў і дадавайце кропкавае выключэнне, а не выключайце ўсё блакіраванне. Імёны кліентаў (па IP або ClientID у URL DoH) даюць жорстчэй фільтраваць тэлевізар і мякчэй — рабочы ноўтбук. «Бяспечны пошук» уключайце толькі калі вы яго сапраўды хочаце: людзі здзіўляюцца, калі Google раптам перапісваецца.

  • Часопіс запытаў: знойдзіце заблакіраваны дамен і пры ілжывым спрацоўванні дазвольце яго
  • Налады кліента: розныя спісы на розныя прылады
  • Забароненыя кліенты: чужыя дыяпазоны IP
  • Абмежаванне частаты: уключыце, калі карыстальнікаў больш, чым «некалькі сваіх»

Калі нешта не працуе

Калі на самім VPS не ідзе apt update, вы зламалі лакальны DNS, вызваляючы порт 53 — вярніце статычны рэзолвер у resolved.conf, як вышэй. Калі «інтэрнэт ёсць», а рэклама ўсё роўна грузіцца, прылада абходзіць ваш DNS (свой DoH у браўзеры, жорстка прапісаныя рэзолверы, сваё DNS у праграмы). Пустая панэль — вы глядзіце не той асобнік або ўсё яшчэ порт 3000 пасля таго, як майстар перанёс інтэрфейс.

  • apt не працуе: /etc/resolv.conf і systemd-resolved
  • Порт 53 заняты: ss -tulpn, выключыце stub
  • Памылкі сертыфіката DoH: імя хоста павінна супадаць з SAN сертыфіката
  • Рэклама відаць: DoH браўзера на іншага правайдара перакрывае АС
  • Шмат RAM: часопіс + занадта шмат спісаў — урэжце спісы і тэрмін захоўвання лога

Кароткі спіс па абароне

Вэб-інтэрфейс — адмінка. Унікальны пароль, толькі HTTPS, URL не свяціце. Абнаўляйце AdGuard Home: і скрыпт усталёўкі, і інтэрфейс умеюць абнаўляць. Калі DoH патрэбны толькі вашым прыладам, абмяжуйце 443: базовая HTTP-аўтэнтыфікацыя на шляху DoH або доступ толькі праз WireGuard нашмат бяспечнейшыя за «знакаміты адкрыты рэзолвер».

  • Няма публічнага 53/udp
  • HTTPS на панэлі
  • Складаны пароль адміністратара ў менеджары пароляў
  • Для хатніх прылад лепей WireGuard і DNS унутры тунэлю
  • Файл AdGuardHome.yaml капіюйце з сервера

Парады

  • Перад абнаўленнем захоўвайце /opt/AdGuardHome/AdGuardHome.yaml
  • Асобны паддамен, не дзяліце яго з чужой CMS
  • Калі Caddy ужо ёсць, аддайце яму 443, AdGuard Home пакіньце на localhost
  • Запішыце URL DoH для прылад — вы яго забудзеце
  • Мае сэнс закрыць SSH і фаервол па іншых гайдах, не толькі «наладзіць DNS»

AdGuard Home на VPS ставіцца так: вызваляеце 53 лакальна, запускаеце інсталятар, праходзіце майстар з нармальным паролем, вешаеце панэль на HTTPS, уключаеце DoH/DoT і не аддаяце класічны DNS у інтэрнэт. Прылады глядзяць на шыфраваную кропку або на VPN-IP, фільтраў спачатку няшмат, пры паломках глядзіце часопіс запытаў. Гэта рэзолвер, якім вы кіруеце, а не адкрыты DNS, з-за якога VPS трапіць у базы скаргаў.