1 पॉइंट द्वारा GN⁺ 2024-02-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • AdGuard Home एक मुफ्त open source DNS server है, जो install करने के बाद home network के सभी devices पर लागू होता है और client-side software के बिना विज्ञापनों और tracking को ब्लॉक करता है
  • इसका काम करने का तरीका tracking domains को DNS sinkholing के जरिए “black hole” में reroute करना है, ताकि device उस server से connect न कर सके; यह public AdGuard DNS server के साथ काफी code share करता है
  • अपने server के रूप में चलाने पर आप public DNS की तुलना में खुद चुन सकते हैं कि क्या ब्लॉक/allow करना है, network activity monitor कर सकते हैं, और custom filtering rules जोड़ सकते हैं
  • Pi-Hole की तरह यह विज्ञापन और tracker blocking तथा block lists की customization support करता है, लेकिन AdGuard Home encrypted DNS upstreams, DoH/DoT server चलाना, phishing और malware domains blocking, parental control, Safe Search enforcement जैसे features default रूप से देता है
  • DNS-level blocking YouTube/Twitch ads या Facebook/Twitter/Instagram sponsored posts जैसे उन ads को ब्लॉक नहीं कर सकती जो content वाले ही domain का उपयोग करते हैं; future content-blocking proxy support भी सभी cases हल नहीं करेगा

AdGuard Home की भूमिका और काम करने का तरीका

  • AdGuard Home खुद को users और devices के लिए privacy protection center के रूप में पेश करने वाला पूरे network के लिए ad और tracker blocking DNS server है
  • install करने के बाद यह home network के सभी devices को cover करता है, और हर device पर अलग client software install करने की जरूरत नहीं होती
  • DNS server के रूप में चलते हुए यह tracking domains को “black hole” में reroute करता है, ताकि device उन servers से connect न कर सके
  • यह public AdGuard DNS servers में उपयोग होने वाले software पर आधारित है, और दोनों products काफी code share करते हैं

Installation और integration

  • Linux, Unix, macOS, FreeBSD, OpenBSD पर curl, wget, fetch से automatic installation script चला सकते हैं
    • -c <channel>: specified channel इस्तेमाल करें
    • -r: AdGuard Home reinstall करें
    • -u: AdGuard Home हटाएं
    • -v: verbose output
    • -r और -u साथ में इस्तेमाल नहीं किए जा सकते
  • manual installation और device configuration के लिए Getting Started documentation देखें
  • official Docker image Docker Hub पर उपलब्ध है
  • Linux users Snap Store के जरिए install कर सकते हैं
  • integration की जरूरत होने पर REST API इस्तेमाल किया जा सकता है, और python client भी उपलब्ध है

Public AdGuard DNS से अंतर

  • अपना AdGuard Home server चलाने पर public DNS server इस्तेमाल करने की तुलना में ज्यादा control मिलता है
  • user खुद चुन सकता है कि server क्या block करेगा और क्या allow करेगा
  • network activity monitor की जा सकती है
  • custom filtering rules जोड़े जा सकते हैं
  • server user का अपना होता है, इसलिए control user के पास रहता है

Pi-Hole और पारंपरिक ad blockers से तुलना

  • AdGuard Home और Pi-Hole दोनों DNS sinkholing के तरीके से ads और trackers को block करते हैं, और क्या block करना है इसे customize कर सकते हैं
  • AdGuard Home का लक्ष्य अतिरिक्त software installation या manual setup के बिना बहुत-से features default रूप से उपलब्ध कराना है
  • README की comparison table के अनुसार AdGuard Home ये features देता है
    • ads और trackers blocking
    • block lists customization
    • built-in DHCP server
    • admin interface के लिए HTTPS
    • DNS-over-HTTPS, DNS-over-TLS, DNSCrypt encrypted DNS upstreams
    • cross-platform execution
    • DNS-over-HTTPS या DNS-over-TLS server के रूप में चलना
    • phishing और malware domains blocking
    • adult domains block करने वाला parental control
    • search engines पर Safe Search enforce करना
    • per-device settings
    • AGH DNS users चुनने के लिए access settings
    • root permission के बिना चलना
  • पारंपरिक ad blockers से तुलना करें तो DNS sinkholing ads का बड़ा हिस्सा block कर सकता है, लेकिन उसमें पारंपरिक ad blockers जैसी flexibility और power नहीं होती
  • DNS-based blockers SmartTV, smart speakers, IoT devices जैसे उन devices पर ads, tracking और analytics requests block करने में मदद कर सकते हैं, जहां पारंपरिक ad blocker install नहीं किया जा सकता

ज्ञात सीमाएं और आगे की दिशा

  • DNS-level blockers नीचे दिए गए उदाहरणों को block नहीं कर सकते
    • YouTube, Twitch ads
    • Facebook, Twitter, Instagram sponsored posts
  • content के साथ वही domain share करने वाले ads DNS-level blockers से block नहीं किए जा सकते
  • केवल DNS से यह समस्या handle नहीं हो सकती; standalone AdGuard application की तरह content-blocking proxy की जरूरत होती है
  • AdGuard Home भविष्य में content-blocking proxy feature support लाने वाला है
  • इसके बावजूद कुछ cases ऐसे रह सकते हैं जहां यह पर्याप्त न हो या complex setup की जरूरत पड़े

Source build और development

  • development environment तैयार करने के लिए make init चलाएं
  • build के लिए ये चाहिए
    • Go v1.25 या उससे ऊपर
    • Node.js v24.10.0 या उससे ऊपर
    • npm v10.8 या उससे ऊपर
  • basic build के लिए repository clone करने के बाद make चलाएं
  • non-standard -j flag अभी supported नहीं है, इसलिए make -j 4 या MAKEFLAGS में -j 4 शामिल settings build तोड़ सकती हैं
    • जरूरत हो तो make -j 1 से override कर सकते हैं
  • Go द्वारा supported OS/ARCH targets के लिए cross-build कर सकते हैं, और make चलाते समय GOOS और GOARCH specify करें
  • release build prepare करने के लिए snapcraft चाहिए, और make build-release CHANNEL='...' VERSION='...' इस्तेमाल करें
  • local Docker image make build-docker से build होती है, और official image Docker Buildx का उपयोग करती है
  • frontend debugging के दौरान client directory में development build को watch mode में चलाएं, और AdGuardHome binary में --local-frontend flag specify करें ताकि embedded frontend files की जगह ./build/ directory की files इस्तेमाल हों
  • E2E frontend tests Playwright का उपयोग करते हैं, और tests tests/e2e में हैं
    • npm run test:e2e: पूरे tests headless mode में चलाएं
    • npm run test:e2e:interactive: interactive tests
    • npm run test:e2e:debug: debug mode
    • npm run test:e2e:codegen: नए test code generate करें
    • Playwright अपने browser binaries download और install करता है, जो system में installed browsers से अलग हो सकते हैं

Contribution, unstable channels और external projects

  • contributors repository fork करके changes के बाद pull request भेज सकते हैं, और code guidelines follow करने चाहिए
  • UI और backend में एक साथ contribute करना जरूरी नहीं है; ideally settings, API और features शामिल करने वाली backend implementation पहले आती है, और UI बाद में अलग pull request में implement हो सकता है
  • unstable version channels दो तरह के हैं
    • beta: अपेक्षाकृत stable beta version, आमतौर पर हर 2 सप्ताह में या उससे ज्यादा बार release होता है
    • edge: development branch का latest version, जिसमें रोज नए updates push होते हैं
  • unstable versions Snap Store के beta/edge channels, Docker Hub के beta/edge tags, automatic installation script, या Wiki के standalone builds से install किए जा सकते हैं
  • AdGuard से affiliated नहीं, third-party developers और fans द्वारा बनाए गए related projects भी हैं

Privacy और इस्तेमाल की गई technologies

  • AdGuard Home का central idea यह है कि users को अपने data पर control होना चाहिए
  • AdGuard Home usage statistics collect नहीं करता, और user द्वारा set न किए जाने तक web services का उपयोग नहीं करता
  • पूरी privacy policy में वे सभी items शामिल हैं जिन्हें theoretical रूप से AdGuard Home भेज सकता है
  • मुख्य underlying technologies Go और Node.js ecosystems हैं
    • Go libraries के रूप में gcache, miekg's dns, go-yaml, service, dnsproxy, urlfilter का उपयोग होता है
    • Node.js side पर React.js, Tabler और कई Node.js packages इस्तेमाल होते हैं
    • whotracks.me data भी इस्तेमाल होता है
  • AdGuard Home अब पहले mentioned CoreDNS का उपयोग नहीं करता

1 टिप्पणियां

 
GN⁺ 2024-02-09
Hacker News राय
  • कई सालों तक घर के नेटवर्क पर प्रतिस्पर्धी प्रोजेक्ट Pi-hole[0] चलाने के बाद NextDNS[1] के बारे में पता चला
    परफॉर्मेंस के लिहाज से, requests के घर से बाहर न जाने वाला फायदा खो गया, लेकिन सभी devices का घर के अंदर-बाहर इस्तेमाल कर पाना यानी portability और बचने वाला समय ज्यादा अहम निकला
    Pi-hole 90% समय ठीक चलता था, लेकिन रुक जाने पर उसे ठीक करने में समय लगता था, और सालाना $20 में NextDNS से खुद host करके मुकाबला करना मुश्किल था
    यह NextDNS का प्रचार नहीं है, और मुझे लगता है ऐसे projects का मौजूद रहना जरूरी है, लेकिन NextDNS सचमुच एक सरल SaaS tool है जिसकी value for money बहुत अच्छी है
    0 - https://pi-hole.net/
    1 - https://nextdns.io

    • पता नहीं Pi-hole में ऐसी कौन-सी समस्या थी कि वह 10% तक बंद रहता था, लेकिन ऐसी बढ़ा-चढ़ाकर कही बात प्रचार जैसी लगती है
      SD card corruption के 99.9% मामले कम power वाले power adapter की वजह से होते हैं, इसलिए अगर सही 2.5~3A USB power ढूंढना झंझट लगे तो official Raspberry Pi power adapter खरीद लें
      सालाना $20 में हर साल spare RPi Zero 2W और SD card खरीदने के बाद भी जश्न मनाने के लिए Sheetz sandwich के पैसे बच जाएंगे
      Pi-hole + WireGuard + $15 वाले RPi Zero की एकमुश्त खरीद वाला combo हराना मुश्किल लगता है
    • जानना चाहूंगा कि Pi-hole में आपको कौन-सी समस्याएं आईं
      मेरा instance कई सालों तक बिना किसी दिक्कत के चला, और करीब 1 साल पहले OPNSense box पर चलाना चाहा तो AdGuard Home पर shift किया
      devices पर automatic WireGuard VPN configure किया है ताकि जब वे मेरे SSID से connected न हों तो घर के network में VPN से connect हो जाएं, इसलिए remote पर भी local DNS काम करता है
    • मुझे NextDNS पसंद है, लेकिन iPhone पर enabled होने पर captive portal handle न कर पाने की काफी बड़ी समस्या है
      airplane Wi‑Fi वगैरह से connect करते समय इसे बंद करना याद रखना पड़ता है, इसलिए non-technical दोस्तों को recommend करना मुश्किल लगता है
    • मेरे मामले में Pi-hole इतना लंबे समय तक ठीक चलता रहा कि login तक भूल गया, लेकिन जल्द ही home network फिर से configure करते समय options का दोबारा evaluation करूंगा
      लगता है अब करीब 3 candidates हो गए हैं
    • NextDNS इस्तेमाल नहीं किया, Pi-hole इस्तेमाल किया है और अभी AdGuard Home चला रहा हूं
      अगर सिर्फ DNS encryption और blocking के लिए सालाना $20 देने हों, तो Mullvad पर upgrade करने पर भी विचार किया जा सकता है, जो DNS ad blocking के अलावा IP anonymity और tunneling वगैरह भी देता है
  • हाल ही में Pi-hole देख रहा था और आखिर में AdGuard Home चुना
    ऊपर से देखने पर UI बेहतर लगा और कुल मिलाकर ज्यादा अच्छा दिखा, और इतने polished tool के हिसाब से इसमें customization भी हैरान करने लायक ज्यादा है, जैसे internal DNS के लिए local private domain queries forward करना
    AdGuard यह मुफ्त में क्यों देता है, यह पूरी तरह साफ नहीं है और शायद पता करना चाहिए, लेकिन फिलहाल यह तुलनात्मक रूप से कम जोखिम वाला विकल्प लगा
    परेशान करने वाले ads हट जाने से NYTimes app जैसी चीजें इस्तेमाल करने का अनुभव कितना ज्यादा सुखद हो जाता है, यह जितना कहें कम है

    • सचमुच शानदार है
      split DNS feature में वे सारे options हैं जिनकी कल्पना की जा सकती है
      लगा था पीछे दूसरा DNS server चाहिए होगा, लेकिन जिन rules की जरूरत थी वे सब सीधे AdGuard Home में ही डाल सका
      DoT और DoH upstream भी support करता है, जो बहुत से home routers में अब भी आम नहीं है
      दस्तावेज: https://github.com/AdguardTeam/AdGuardHome/wiki/Configuratio...
    • मुफ्त में उपलब्ध कराने वाली बात मुझे भी curious लगी
      हो सकता है वे अपने DNS server को default upstream के रूप में set करते हों और उम्मीद करते हों कि बहुत लोग default values ही रखें
      DNS data mining और data selling के लिए सबसे अच्छे technologies में से एक है, इसलिए 8.8.8.8 या 1.1.1.1 जैसे याद रखने में आसान DNS servers के मौजूद होने की वजह भी मुझे यही लगती है
      Google और Cloudflare यह सिर्फ भलाई के लिए नहीं कर रहे होंगे
      हालांकि, AdGuard दावा करता है कि वह customer data नहीं बेचता
    • user base बढ़ाने के बाद, जब पर्याप्त users हो जाएं, तो वे license model पर switch भी कर सकते हैं
    • मेरी नजर में flow कुछ ऐसा है
      आप docs पढ़कर install करते हैं और उसे ठीक से चला लेते हैं, फिर दोस्तों के सामने शेखी बघारते हैं कि home network पर irritate करने वाले ads नहीं हैं
      तब दोस्त कहेंगे, “मेरे लिए भी install कर दो”
      install तो कर सकते हैं, लेकिन maintenance तक नहीं कर सकते, इसलिए आप कहेंगे, “उस complexity के बजाय पूरे परिवार के लिए सालाना $29 में तुरंत चलने वाला simple app-based setup है”
      यानी उसी dinner table पर पांच दोस्त service download करके payment कर देंगे
      आजकल tech startups की philosophy भी कुछ ऐसी ही लगती है. open source product रखकर उसके ऊपर commercial business बनाना
    • Pi-hole भी conditional forwarding support करता है
  • AdGuard एक Russian company है जिसमें Russian engineers हैं, इसके कई developers और employees Moscow में काम करते हैं, और यह Cyprus में registered है
    यह अच्छा combination नहीं है, और security reasons से मैं इससे बचूंगा

    • यह open source software है
      MacPaw द्वारा Russian-developed software को risk बताने की वजह यह है कि government कभी भी data access कर सकती है, लेकिन यह self-hosted open source है
      FSB किसी arbitrary court order से local server access नहीं कर सकता
      इसलिए यह genuine concern की बजाय Russiaophobia जैसा लगता है, और मुझे सीधे पता है कि Russian developers अपनी government की बेवकूफियों की वजह से कितना suffer करते हैं, इसलिए यह और भी अनुचित लगता है
    • open source होने की वजह से आप खुद verify कर सकते हैं
    • MacBook भी China में बना है
  • py-hole में भी आपकी रुचि हो सकती है
    यह सिर्फ Python scripts और dnsmasq config से बना है, OpenWrt पर चलता है, free है और CPU usage भी लगभग 0 के करीब है
    https://github.com/time4tea-net/py-hole

  • AdGuard की एक और अच्छी बात यह है कि यह Home Assistant add-on के रूप में उपलब्ध है
    क्योंकि यह HA के बाकी हिस्सों के साथ integrate होता है, उदाहरण के लिए dashboard पर blocking on/off करने का switch रख सकते हैं

    • NextDNS में भी हो सकता है, और मैंने अभी configure किया है
  • AdGuard Home शानदार है
    मैंने कुछ समय तक Pi-hole इस्तेमाल किया, लेकिन छोटी-मोटी समस्याएँ काफ़ी बार आती रहीं
    वे गंभीर नहीं थीं, लेकिन ऐसे टूल सच में तभी उपयोगी होते हैं जब वे बस काम करते रहें
    मेरे Pi setup में यह docker-compose[1] के साथ बिना दिक्कत चलता है, और adguardhome-sync[2] नाम का बढ़िया container इस्तेमाल करके मैं दूसरे Pi को backup के तौर पर चलाता हूँ और settings sync करता हूँ
    अब नेटवर्क पर ads नहीं दिखते, और यह देखना भी काफ़ी दिलचस्प है कि कौन-से devices tracking/advertising requests कितनी ज़्यादा भेजते हैं
    1 - https://thesmarthomejourney.com/2021/05/24/adguard-pihole-dn...
    2 - https://thesmarthomejourney.com/2023/02/12/adguardhome-sync-...

    • असली आँखें खोलने वाला पल तब होता है जब आप DNS 53 requests को अपने DNS server पर redirect करना और DoT/DoQ/DoH को block करना शुरू करते हैं
      ढेरों devices और apps tracking और ad targeting के लिए hardcoded DNS servers पर सीधे जाने की कोशिश करते हैं
  • पता नहीं यहाँ कोई Technitium DNS इस्तेमाल करता है या नहीं
    यह open source और मुफ़्त है, और बहुत कम hardware पर भी चल जाता है
    मैं इसे Orange Pi 3 LTS पर चला रहा हूँ
    https://technitium.com/dns/

    • अच्छा लगता है
      इसमें लिखा है “Technitium DNS Server is an open source authoritative as well as recursive DNS server”, तो मुझे जिज्ञासा है कि Pi-hole या AdGuard भी recursive DNS servers हैं या सिर्फ़ blockers
      मैं लंबे समय से Pi-hole इस्तेमाल कर रहा हूँ, और समझने की कोशिश कर रहा हूँ कि इसका क्या फ़ायदा है
    • इसमें ad blocking lists डाल सकते हैं, इसलिए robust DNS और ad blocking मिलती है, और random DNS समस्याओं की वजह से YouTube के घूमते रहने वाली बात भी नहीं होती
      थोड़ी-सी setup के साथ यह मुफ़्त में हो जाता है
    • इसे Pi 4 पर चला रहा हूँ और setup व use आसान है, इसलिए संतुष्ट हूँ
      AdGuard के बारे में पता नहीं था, लेकिन अच्छा दिखने पर भी इसे आज़माने की खास इच्छा नहीं है
    • कई सालों से इस्तेमाल कर रहा हूँ और पसंद है
      यह .NET based है, इसलिए cross-platform भी है
      अगर आप वह तरीका चाहते हैं तो Docker image भी है
    • इसे इसलिए नहीं चुना क्योंकि यह C#/.NET में लिखा है और अपेक्षाकृत नया है; मैं Unbound पर गया
  • NextDNS के बारे में कुछ mostly positive बातें हैं, लेकिन मैं अलग से लिख रहा हूँ क्योंकि मैं NextDNS से हटने पर सोच रहा हूँ
    वजह यह है कि अभी मैं Mac/Safari इस्तेमाल कर रहा हूँ, और “trackers से IP address छिपाएँ” feature चालू करना चाहता हूँ, लेकिन इसे चालू करते ही वे website ads दिखने लगते हैं जिन्हें NextDNS पहले block करता था
    इसलिए मुझे यह option बंद रखना पड़ता है और Apple feature इस्तेमाल नहीं कर पाता
    कुल मिलाकर लगता है कि दोनों साथ इस्तेमाल नहीं किए जा सकते, और NextDNS help site पर भी इससे जुड़ा issue मौजूद है
    https://help.nextdns.io/t/q6yq4xy/nextdns-stops-working-prop...
    जानना चाहता हूँ कि क्या किसी को पता है कि यह AdGuard या Pi-hole में भी known issue है या नहीं

    • अगर आपका मतलब iCloud Private Relay से है, तो DNS-based ad blockers में यह expected behavior है
      relay चालू करने पर connection proxy हो जाता है और local network के DNS server का इस्तेमाल नहीं करता
      Pi-hole हो, NextDNS हो या AdGuard—सबमें यही है
    • आप ads और trackers को block करने वाला product इस्तेमाल कर रहे हैं, फिर दूसरे product से उसे bypass करके ads और trackers तक पहुँच रहे हैं, बस किसी third party के ज़रिए
      बाद वाले का उद्देश्य क्या है, समझ नहीं आता
  • लगता है HN पर Pi-hole या AdGuard Home की post आए बिना टिके रहने का कोई तय समय होता है

    • मैंने calendar में हर छह महीने repeat होने वाला task डाल रखा है: HN: Pi-hole / AdGuard? ;-)
  • अच्छा है
    इसी तरह, अगर आप अपने network पर pfSense चला रहे हैं, तो pfBlockerNG भी देखने लायक है। निजी तौर पर मुझे यह काफ़ी पसंद है: https://docs.netgate.com/pfsense/en/latest/packages/pfblocke...