Ana içeriğe atla

SSS

AdGuard Home neden reklamları veya tehditleri engellemiyor?

AdGuard Home'un `somebadsite.com'u engellemesini istediğinizi ancak bazı nedenlerden dolayı engellemediğini varsayalım. Bu sorunu çözmeye çalışalım.

Büyük olasılıkla, cihazınızı AdGuard Home'u varsayılan DNS sunucusu olarak kullanacak şekilde yapılandırmadınız. Varsayılan DNS sunucunuz olarak AdGuard Home'u kullanıp kullanmadığınızı kontrol etmek için:

  1. Windows'ta Komut İstemi'ni açın (BaşlatÇalıştırcmd.exe). Diğer sistemlerde, Terminal uygulamanızı açın.

  2. nslookup example.org` öğesini yürütün. Şuna benzer bir şey yazdırır:

    Server: 192.168.0.1
    Address: 192.168.0.1#53

    Non-authoritative answer:
    Name: example.org
    Address: <IPv4>
    Name: example.org
    Address: <IPv6>
  3. Sunucu IP adresinin AdGuard Home'un çalıştığı IP adresi olup olmadığını kontrol edin. Eğer yoksa, cihazınızı buna göre yapılandırmanız gerekir. Bunun nasıl yapılacağını aşağıda görebilirsiniz.

  4. AdGuard Home kullanıcı arayüzünde Sorgu Günlüğü sayfasında example.org isteğinizin göründüğünden emin olun. Eğer görünmüyorsa, AdGuard Home'u belirtilen ağ arayüzünü dinleyecek şekilde yapılandırmanız gerekir. Bunu yapmanın en kolay yolu, AdGuard Home'u varsayılan ayarlarla yeniden kurmaktır.

Cihazınızın varsayılan DNS sunucusu olarak AdGuard Home'u kullandığından eminseniz ancak sorun devam ediyorsa bunun nedeni AdGuard Home'un yanlış yapılandırılması olabilir. Lütfen aşağıdakileri kontrol edin ve emin olun:

  1. AyarlarGenel ayarlar sayfasında Filtreleri ve hosts dosyalarını kullanarak alan adlarını engelle ayarını etkinleştirdiniz.

  2. Ebeveyn Denetimi gibi uygun güvenlik mekanizmalarını aynı sayfada etkinleştirdiniz.

  3. FiltrelerDNS engel listeleri sayfasında uygun filtreleri etkinleştirdiniz.

  4. FiltrelerDNS izin listeleri sayfasında etkinleştirilen isteklere izin verebilecek herhangi bir istisna kuralı listeniz yok.

  5. FiltrelerDNS yeniden yazmaları sayfasında müdahale edebilecek herhangi bir DNS yeniden yazmanız yok.

  6. FiltrelerÖzel filtreleme kuralları sayfasında müdahale edebilecek herhangi bir özel filtreleme kuralınız yok.

Sorgu günlüğünde “CNAME veya IP tarafından engellendi” ne anlama geliyor?

AdGuard Home checks both DNS requests and DNS responses to prevent an adblock evasion technique known as CNAME cloaking. That is, if your filtering rules contain a domain, say tracker.example, and a DNS response for some other domain name, for example blogs.example, contains this domain name among its CNAME records, that response is blocked, because it actually leads to the blocked tracking service.

Günlükleri nerede görüntüleyebilirim?

Düz metin günlüklerinin (sorgu günlükleri ile karıştırılmamalıdır) varsayılan konumu işletim sistemine ve kurulum moduna bağlıdır:

  • OpenWrt Linux: logread -e AdGuardHome komutunu kullanın.

  • Linux systems with systemd and other Unix systems with SysV-style init: /var/log/AdGuardHome.err.

  • macOS: /var/log/AdGuardHome.stderr.log.

  • Linux sistemlerinde Snapcraft ile snap logs adguard-home komutu kullanılır.

  • FreeBSD: /var/log/daemon.log.

  • OpenBSD: /var/log/daemon.

  • Windows: Windows Olay Günlüğü kullanılır.

AdGuard Home'u ayrıntılı düzeyde günlükler yazacak şekilde nasıl yapılandırabilirim?

Karmaşık bir sorunu gidermek için bazen ayrıntılı düzeyde günlük kaydı gerekir. İşte nasıl etkinleştireceğiniz:

  1. AdGuard Home'u durdurun:

    ./AdGuardHome -s stop
  2. AdGuard Home'u ayrıntılı düzeyde günlükler yazacak şekilde yapılandırın:

    1. Düzenleyicinizde AdGuardHome.yaml dosyasını açın.

    2. log.file dosyasını istediğiniz günlük dosyası yoluna ayarlayın, örneğin /tmp/aghlog.txt. Dizinin var olması gerektiğini unutmayın.

    3. log.verbose öğesini true olarak ayarlayın.

  3. AdGuard Home'u yeniden başlatın ve sorunu yeniden oluşturun:

    ./AdGuardHome -s start
  4. Hata ayıklama işlemini tamamladığınızda, log.verbose ayarını false olarak geri ayarlayın.

Özel bir engelleme sayfasını nasıl gösteririm?

not

Bunları yapmadan önce, modern tarayıcıların HTTPS kullanmak üzere ayarlandığını, dolayısıyla web sunucusu sertifikasının gerçekliğini doğruladıklarını lütfen unutmayın. Bu, bunlardan herhangi birinin kullanılmasının uyarı ekranlarıyla sonuçlanacağı anlamına gelir.

There is a number of proposed extensions that, if reasonably well supported by clients, would provide a better user experience, including the RFC 8914 Extended DNS Error codes and the DNS Access Denied Error Page RFC draft. We’ll implement them when browsers actually start to support them.

Ön Koşullar

Özel bir blok sayfasını görüntülemek üzere bu yöntemlerden herhangi birini kullanmak için, bazı IP adreslerinde çalışan ve söz konusu sayfayı tüm yollarda sunan bir HTTP sunucusuna ihtiyacınız olacaktır. pixelserv-tls gibi bir şey.

Ebeveyn Denetimi ve Güvenli Gezinti filtreleri için özel engelleme sayfası

Şu anda bu parametreleri kullanıcı arayüzünden ayarlamanın bir yolu yoktur, bu nedenle yapılandırma dosyasını elle düzenlemeniz gerekir:

  1. AdGuard Home'u durdurun:

    ./AdGuardHome -s stop
  2. Düzenleyicinizde AdGuardHome.yaml dosyasını açın.

  3. dns.parental_block_host veya dns.safebrowsing_block_host ayarlarını sunucunun IP adresine ayarlayın (bu örnekte, 192.168.123.45):

    # …
    dns:
    # …

    # NOT: Sunucunuzun gerçek IP adresiyle değiştirin.
    parental_block_host: 192.168.123.45
    safebrowsing_block_host: 192.168.123.45
  4. AdGuard Home'u yeniden başlatın:

    ./AdGuardHome -s start

Diğer filtreler için özel engelleme sayfası

  1. Web kullanıcı arayüzünü açın.

  2. Ayarlar*DNS ayarları öğesine gidin.

  3. DNS sunucusu yapılandırması bölümünde, Engelleme modu seçicisinde Özel IP onay düğmesini seçin ve sunucunun IPv4 ve IPv6 adreslerini girin.

  4. Kaydet öğesine tıklayın.

Pano arayüzünün adresini nasıl değiştiririm?

  1. AdGuard Home'u durdurun:

    ./AdGuardHome -s stop
  2. Düzenleyicinizde AdGuardHome.yaml dosyasını açın.

  3. 'http.address' ayarını yeni bir ağ arayüzüne ayarlayın. Örneğin:

    • Tüm ağ arayüzlerini dinlemek için 0.0.0.0:0;
    • 8080 bağlantı noktasına sahip tüm ağ arabirimlerini dinlemek için 0.0.0.0:8080;
    • Sadece yerel geri döngü arayüzünü dinlemek için 127.0.0.1:0.
  4. AdGuard Home'u yeniden başlatın:

    ./AdGuardHome -s start

AdGuard Home'u varsayılan DNS sunucusu olarak nasıl ayarlarım?

Başlarken sayfasındaki Cihazların Yapılandırılması bölümüne bakın.

Bilinen herhangi bir sınırlama var mı?

DNS düzeyinde bir engelleyici tarafından nelerin engellenemeyeceğine dair bazı örnekler aşağıda verilmiştir:

  • YouTube, Twitch reklamları.

  • Facebook, X (eski adıyla Twitter), Instagram sponsorlu gönderiler.

Temel olarak, içerikle aynı alan adını paylaşan herhangi bir reklam, içeriği de engellemeye hazır olmadığınız sürece DNS düzeyinde bir engelleyici tarafından engellenemez.

Gelecekte bununla başa çıkma olasılığı var mı?

DNS bunu yapmak için asla yeterli olmayacaktır. Tek seçeneğiniz, bağımsız AdGuard uygulamalarında yaptığımız gibi bir içerik engelleme proxy'si kullanmaktır. Gelecekte AdGuard Home'a bu özellik için destek ekleyeceğiz. Ne yazık ki, o zaman bile yeterli olmayacağı veya oldukça karmaşık bir yapılandırma gerektireceği durumlar olur.

Ubuntu'ya kurmaya çalışırken neden bind: address already in use hatası alıyorum?

Bunun nedeni, DNS için kullanılan localhost üzerindeki 53 numaralı bağlantı noktasının zaten başka bir program tarafından alınmış olmasıdır. Ubuntu, 127.0.0.53:53 adresini kullanan systemd-resolved adlı yerel bir DNS ile birlikte gelir, böylece AdGuard Home'un 127.0.0.1:53 adresine bağlanmasını engeller. Bunu çalıştırarak görebilirsiniz:

sudo lsof -i :53

Çıktı şuna benzer olmalıdır:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 14542 systemd-resolve 13u IPv4 86178 0t0 UDP 127.0.0.53:domain
systemd-r 14542 systemd-resolve 14u IPv4 86179 0t0 TCP 127.0.0.53:domain

Bunu düzeltmek için ya systemd-resolved daemon'unu devre dışı bırakmalı ya da farklı bir ağ arayüzü seçmeli ve AdGuard Home'unuzu ağınızdaki yönlendiricinizin IP adresi gibi erişilebilir bir IP adresine bağlamalısınız. Ancak localhost üzerinde dinleme yapmanız gerekiyorsa, birkaç çözüm vardır.

Öncelikle, kurulum ekranındaki 'adres zaten kullanımda' mesajının yanında bulunan Düzelt düğmesine basarsanız, AdGuard Home bu tür yapılandırmaları algılayabilir ve sizin için systemd-resolved öğesini devre dışı bırakabilir.

İkinci olarak, bu işe yaramazsa, aşağıdaki talimatları izleyin. AdGuard Home'u docker veya snap ile kullanıyorsanız, bunu kendiniz yapmanız gerekeceğini unutmayın.

  1. Gerekirse /etc/systemd/resolved.conf.d dizinini oluşturun:

    sudo mkdir -p /etc/systemd/resolved.conf.d
  2. DNSStubListener öğesini devre dışı bırakın ve DNS sunucu adresini güncelleyin. Bunu yapmak için, aşağıdaki içeriğe sahip yeni bir /etc/systemd/resolved.conf.d/adguardhome.conf dosyası oluşturun:

    [Resolve]
    DNS=127.0.0.1
    DNSStubListener=no

DNS sunucu adresi olarak 127.0.0.1 belirtilmesi gereklidir. Aksi takdirde ad sunucusu 127.0.0.53 olacaktır ve bu da DNSStubListener olmadan çalışmaz.

  1. Başka bir resolv.conf dosyasını etkinleştirin:

    sudo mv /etc/resolv.conf /etc/resolv.conf.backup
    sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
  2. DNSStubListener öğesini yeniden başlatın:

    sudo systemctl reload-or-restart systemd-resolved

Bundan sonra, systemd-resolved lsof çıktısında gösterilmemeli ve AdGuard Home 127.0.0.1:53 adresine bağlanabilmelidir.

AdGuard Home için bir ters proxy sunucusunu nasıl yapılandırabilirim?

Zaten bir web sunucusu çalıştırıyorsanız ve AdGuard Home panosu kullanıcı arayüzüne http://YOUR_SERVER/aghome/ gibi bir URL'den erişmek istiyorsanız, web sunucunuz için bu yapılandırmayı kullanabilirsiniz:

nginx

location /aghome/ {
proxy_cookie_path / /aghome/;
proxy_pass http://AGH_IP:AGH_PORT/;
proxy_redirect / /aghome/;
proxy_set_header Host $host;
}

caddy

:80/aghome/* {
route {
uri strip_prefix /aghome
reverse_proxy AGH_IP:AGH_PORT
}
}

Veya AdGuard Home'u yalnızca otomatik TLS ile sunmak istiyorsanız, aşağıda gösterilen örneğe benzer bir yapılandırma kullanın:

DOMAIN {
encode gzip zstd
tls YOUR_EMAIL@DOMAIN
reverse_proxy AGH_IP:AGH_PORT
}

Apache

<VirtualHost *:80>
ProxyPass "/" "http://AGH_IP:AGH_PORT/"
ProxyPassReverse "/" "http://AGH_IP:AGH_PORT/"
PreserveHost On
</VirtualHost>
not

Apache ters HTTP proxy ile alt dizinleri kullanmayın. Apache'nin bağıl yönlendirmeleri diğer web sunucularından farklı şekilde ele aldığı bilinen bir sorundur (#6604). Bu, AdGuard Home web arayüzünde sorunlara neden olur.

AdGuard Home'da DoH şifrelemesini devre dışı bırakma

Ters proxy sunucunuzda TLS kullanıyorsanız, AdGuard Home'da TLS kullanmanıza gerek yoktur. AdGuard Home'un DoH isteklerine TLS şifrelemesi olmadan yanıt vermesine izin vermek için AdGuardHome.yaml içinde allow_unencrypted_doh: true ayarını yapın.

İstemcilerin gerçek IP adresleri

AdGuard Home'un gerçek istemci IP adresini içeren başlıkları dikkate almasını sağlamak için trusted_proxies parametresini HTTP proxy'nizin IP adreslerine ayarlayabilirsiniz. Daha fazla bilgi için configuration ve encryption sayfalarına bakın.

Fedora'da permission denied hatalarını nasıl düzeltirim?

  1. AdGuardHome ikili dosyasını /usr/local/bin konumuna taşıyın.

  2. Dosyanın güvenlik bağlamını değiştirmek için root olarak aşağıdaki komutu çalıştırın:

    chcon -t bin_t /usr/local/bin/AdGuardHome
  3. Ağ üzerinden erişilebilir hâle getirmek için gerekli güvenlik duvarı kurallarını ekleyin. Örneğin:

    firewall-cmd --new-zone=adguard --permanent
    firewall-cmd --zone=adguard --add-source=192.168.0.14/24 --permanent
    firewall-cmd --zone=adguard --add-port=3000/tcp --permanent
    firewall-cmd --zone=adguard --add-port=53/udp --permanent
    firewall-cmd --zone=adguard --add-port=80/tcp --permanent
    firewall-cmd --reload

Eğer hâlâ systemctl'den code=exited status=203/EXECveya benzeri hatalar alıyorsanız, AdGuard Home'u kaldırmayı ve kurulum betiğinin-oseçeneğini kullanarak/usr/local/bin` içine doğrudan kurmayı deneyin:

curl -s -S -L 'https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh' | sh -s -- -o '/usr/local/bin' -v

Bkz. [sorun 765] ve [sorun 3281].

Uyumsuz dosya sistemi hatalarını nasıl düzeltirim?

AdGuard Home kurulumunuzu veya çalışma dizininizi başka bir konuma taşımalısınız. See the limitations section on the Getting Started page.

Hata: control/version.json ne anlama geliyor?

Bu hata mesajı, AdGuard Home'un güncellemeleri denetlemek ve/veya indirmek için AdGuard sunucularına ulaşamadığı anlamına gelir. Bu, sunucuların İSS'niz tarafından engellendiği veya geçici olarak kapalı olduğu anlamına gelebilir. Hata bir süre sonra kendiliğinden düzelmezse, AdGuardHome yürütülebilir dosyasını --no-check-update komut satırı seçeneğiyle çalıştırarak elle güncelleme yapmayı veya otomatik güncelleme denetimini devre dışı bırakmayı deneyebilirsiniz.

AdGuard Home'u elle nasıl güncelleyebilirim?

Düğme görüntülenmiyorsa veya otomatik güncelleme başarısız olduysa, elle güncelleyebilirsiniz. Aşağıdaki örneklerde, AMD64 CPU'lar için Linux ve Windows için AdGuard Home sürümlerini kullanacağız.

Unix (Linux, macOS, BSD)

  1. Yeni AdGuard Home paketini sürümler sayfasından indirin. Bu adımı komut satırından gerçekleştirmek istiyorsanız, şunu yazın:

    curl -L -S -o '/tmp/AdGuardHome_linux_amd64.tar.gz' -s\
    'https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz'

    Ya da wget ile:

    wget -O '/tmp/AdGuardHome_linux_amd64.tar.gz'\
    'https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz'
  2. AdGuard Home'un kurulu olduğu dizine gidin. Çoğu Unix sisteminde varsayılan dizin /opt/AdGuardHome şeklindedir, ancak macOS'ta /Applications/AdGuardHome şeklinde olur.

  3. AdGuard Home'u durdurun:

    sudo ./AdGuardHome -s stop
    OpenBSD

    OpenBSD üzerinde, muhtemelen sudo yerine doas kullanmak isteyeceksiniz.

  4. Verilerinizi yedekleyin. Yani, yapılandırma dosyanız ve veri dizininiz (varsayılan olarak AdGuardHome.yaml ve data/). Örneğin, verilerinizi ~/my-agh-backup adlı yeni bir dizine yedeklemek için:

    mkdir -p ~/my-agh-backup
    cp -r ./AdGuardHome.yaml ./data ~/my-agh-backup/
  5. AdGuard Home arşivini geçici bir dizine çıkarın. Örneğin, arşivi ~/Downloads dizininize indirdiyseniz ve /tmp/ dizinine çıkarmak istiyorsanız:

    tar -C /tmp/ -f ~/Downloads/AdGuardHome_linux_amd64.tar.gz -x -v -z

    macOS'ta aşağıdaki gibi bir şey yazın:

    unzip -d /tmp/ ~/Downloads/AdGuardHome_darwin_amd64.zip
  6. Eski AdGuard Home yürütülebilir dosyasını yenisiyle değiştirin. Çoğu Unix sisteminde komut aşağıdaki gibi görünecektir:

    sudo cp /tmp/AdGuardHome/AdGuardHome /opt/AdGuardHome/AdGuardHome

    macOS'ta aşağıdaki gibi bir şey:

    sudo cp /tmp/AdGuardHome/AdGuardHome /Applications/AdGuardHome/AdGuardHome

    Ayrıca değişiklik günlüğü (CHANGELOG.md), README dosyası (README.md) ve lisans (LICENSE.txt) gibi paketin dokümantasyon bölümlerini de kopyalamak isteyebilirsiniz.

    Artık geçici dizini kaldırabilirsiniz.

  7. AdGuard Home'u yeniden başlatın:

    sudo ./AdGuardHome -s start

Windows (PowerShell Kullanarak)

Aşağıdaki tüm örneklerde, PowerShell Yönetici olarak çalıştırılmalıdır.

  1. Yeni AdGuard Home paketini sürümler sayfasından indirin. Bu adımı komut satırından gerçekleştirmek istiyorsanız:

    $outFile = Join-Path -Path $Env:USERPROFILE -ChildPath 'Downloads\AdGuardHome_windows_amd64.zip'
    $aghUri = 'https://static.adguard.com/adguardhome/release/AdGuardHome_windows_amd64.zip'
    Invoke-WebRequest -OutFile "$outFile" -Uri "$aghUri"
  2. AdGuard Home'un kurulu olduğu dizine gidin. Aşağıdaki örneklerde C:\Program Files\AdGuardHome dizinini kullanacağız.

  3. AdGuard Home'u durdurun:

    .\AdGuardHome.exe -s stop
  4. Verilerinizi yedekleyin. Yani, yapılandırma dosyanız ve veri dizini (varsayılan olarak AdGuardHome.yaml ve data/). Örneğin, verilerinizi my-agh-backup adlı yeni bir dizine yedeklemek için:

    $newDir = Join-Path -Path $Env:USERPROFILE -ChildPath 'my-agh-backup'
    New-Item -Path $newDir -ItemType Directory
    Copy-Item -Path .\AdGuardHome.yaml, .\data -Destination $newDir -Recurse
  5. AdGuard Home arşivini geçici bir dizine çıkarın. Örneğin, arşivi İndirilenler dizininize indirdiyseniz ve geçici bir dizine çıkarmak istiyorsanız:

    $outFile = Join-Path -Path $Env:USERPROFILE -ChildPath 'Downloads\AdGuardHome_windows_amd64.zip'
    Expand-Archive -Path "$outFile" -DestinationPath $Env:TEMP
  6. Eski AdGuard Home yürütülebilir dosyasını yenisiyle değiştirin. Örneğin:

    $aghExe = Join-Path -Path $Env:TEMP -ChildPath 'AdGuardHome\AdGuardHome.exe'
    Copy-Item -Path "$aghExe" -Destination .\AdGuardHome.exe

    Ayrıca değişiklik günlüğü (CHANGELOG.md), README dosyası (README.md) ve lisans (LICENSE.txt) gibi paketin dokümantasyon bölümlerini de kopyalamak isteyebilirsiniz.

    Artık geçici dizini kaldırabilirsiniz.

  7. AdGuard Home'u yeniden başlatın:

    .\AdGuardHome.exe -s start

AdGuard Home'u nasıl kaldırabilirim?

AdGuard Home'u nasıl yüklediğinize bağlı olarak, onu kaldırmanın farklı yolları vardır.

dikkat

AdGuard Home'u kaldırmadan önce, cihazlarınızın yapılandırmasını değiştirmeyi ve onları farklı bir DNS sunucusuna yönlendirmeyi unutmayın.

Normal kurulum

Bu durumda aşağıdakileri yapın:

  • AdGuard Home hizmetinin kaydını kaldırın: ./AdGuardHome -s uninstall.

  • AdGuard Home dizinini kaldırın.

Docker

Basitçe durdurun ve görüntüyü kaldırın.

Snap Store

snap remove adguard-home