AdGuardDNS

command module
v0.0.0-...-87137bd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 8, 2024 License: AGPL-3.0 Imports: 1 Imported by: 0

README

AdGuard DNS


AdGuard DNS


AdGuard DNS is an alternative solution for tracker blocking, privacy protection, and parental control. Easy to set up and free to use, it provides a necessary minimum of best protection against online ads, trackers, and phishing, no matter what platform and device you use.

DNS privacy

If you use regular client-server protocol, you are at risk of your DNS requests being intercepted and, subsequently, eavesdropped and/or altered. For instance, in the US the Senate voted to eliminate rules that restricted ISPs from selling their users' browsing data. Moreover, DNS is often used for censorship and surveillance purposes on the government level.

All of this is possible due to the lack of encryption, and AdGuard DNS provides a solution. It supports all known DNS encryption protocols including DNS-over-HTTPS, DNS-over-TLS, DNS-over-QUIC, and DNSCrypt.

On top of that, AdGuard DNS provides no-logs privacy policy which means we do not record logs of your browsing activity.

Basic features

  • Blocking trackers network-wide with no additional software required. You can even set it up on your router to block ads on all devices connected to your home Wi-Fi network.

  • Protection from phishing and hazardous websites and malvertising (malicious ads).

  • Use the Family protection mode of AdGuard DNS to block access to all websites with adult content and enforce safe search in the browser, in addition to the regular perks of ad blocking and browsing security.

Can AdGuard DNS replace a traditional blocker?

It depends. DNS-level blocking lacks the flexibility of the traditional ad blockers. For instance, there is no cosmetic pages processing. So in general, traditional blockers provide higher quality.

Personal DNS server

A screenshot of the AdGuard DNS dashboard
AdGuard DNS dashboard

You can sign up for a personal AdGuard DNS account and get access to the following features:

  • Manage devices and their settings in one place.

  • Manage blocklists that are used to block ads.

  • View statistics on the DNS queries, companies, countries your devices try to connect to.

  • You can also maintain your own set of rules in the "User rules" section. AdGuard DNS provides a flexible rules system.

  • AdGuard DNS also provides an API that can be used to integrate with it if you need that.

Software license

Copyright (C) 2022-2024 AdGuard Software Ltd.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
access
Package access contains structures for access control management.
Package access contains structures for access control management.
agd
Package agd contains common entities and interfaces of AdGuard DNS.
Package agd contains common entities and interfaces of AdGuard DNS.
agdcache
Package agdcache contains cache interfaces, helpers, and implementations.
Package agdcache contains cache interfaces, helpers, and implementations.
agdhttp
Package agdhttp contains common constants, functions, and types for working with HTTP.
Package agdhttp contains common constants, functions, and types for working with HTTP.
agdnet
Package agdnet contains network-related utilities.
Package agdnet contains network-related utilities.
agdpasswd
Package agdpasswd contains authentication utils.
Package agdpasswd contains authentication utils.
agdprotobuf
Package agdprotobuf contains protobuf utils.
Package agdprotobuf contains protobuf utils.
agdservice
Package agdservice defines types and interfaces for long-running services.
Package agdservice defines types and interfaces for long-running services.
agdtest
Package agdtest contains simple mocks for common interfaces and other test utilities.
Package agdtest contains simple mocks for common interfaces and other test utilities.
agdtime
Package agdtime contains time-related utilities.
Package agdtime contains time-related utilities.
backendpb
Package backendpb contains the protobuf structures for the backend API.
Package backendpb contains the protobuf structures for the backend API.
billstat
Package billstat implements the AdGuard DNS billing statistics database.
Package billstat implements the AdGuard DNS billing statistics database.
bindtodevice
Package bindtodevice contains an implementation of the netext.ListenConfig interface that uses Linux's SO_BINDTODEVICE socket option to be able to bind to a device.
Package bindtodevice contains an implementation of the netext.ListenConfig interface that uses Linux's SO_BINDTODEVICE socket option to be able to bind to a device.
cmd
Package cmd is the AdGuard DNS entry point.
Package cmd is the AdGuard DNS entry point.
cmd/plugin
Package plugin defines types to support creating plugins for the AdGuard DNS server.
Package plugin defines types to support creating plugins for the AdGuard DNS server.
connlimiter
Package connlimiter describes a limiter of the number of active stream-connections.
Package connlimiter describes a limiter of the number of active stream-connections.
consul
Package consul contains types and utilities for updating data from Consul.
Package consul contains types and utilities for updating data from Consul.
debugsvc
Package debugsvc contains the debug HTTP API of AdGuard DNS.
Package debugsvc contains the debug HTTP API of AdGuard DNS.
dnscheck
Package dnscheck contains types and utilities for checking if a particular client uses the DNS server.
Package dnscheck contains types and utilities for checking if a particular client uses the DNS server.
dnsdb
Package dnsdb contains types and utilities for collecting anonymous statistics about the Internet.
Package dnsdb contains types and utilities for collecting anonymous statistics about the Internet.
dnsmsg
Package dnsmsg contains common constants, functions, and types for inspecting and constructing DNS messages.
Package dnsmsg contains common constants, functions, and types for inspecting and constructing DNS messages.
dnssvc
Package dnssvc contains AdGuard DNS's main DNS services.
Package dnssvc contains AdGuard DNS's main DNS services.
dnssvc/internal
Package internal contains common utilities for DNS middlewares.
Package internal contains common utilities for DNS middlewares.
dnssvc/internal/devicefinder
Package devicefinder contains the default implementation of the agd.DeviceFinder interface.
Package devicefinder contains the default implementation of the agd.DeviceFinder interface.
dnssvc/internal/dnssvctest
Package dnssvctest contains common constants and utilities for the internal DNS-service packages.
Package dnssvctest contains common constants and utilities for the internal DNS-service packages.
dnssvc/internal/initial
Package initial contains the initial, outermost (except for ratelimit/access) middleware of the AdGuard DNS server.
Package initial contains the initial, outermost (except for ratelimit/access) middleware of the AdGuard DNS server.
dnssvc/internal/mainmw
Package mainmw contains the main middleware of AdGuard DNS.
Package mainmw contains the main middleware of AdGuard DNS.
dnssvc/internal/preservice
Package preservice contains the middleware that comes right before the main filtering middleware of DNS service.
Package preservice contains the middleware that comes right before the main filtering middleware of DNS service.
dnssvc/internal/preupstream
Package preupstream contains the middleware that records anonymous DNS statistics.
Package preupstream contains the middleware that records anonymous DNS statistics.
dnssvc/internal/ratelimitmw
Package ratelimitmw contains the access and ratelimiting middleware of the AdGuard DNS server.
Package ratelimitmw contains the access and ratelimiting middleware of the AdGuard DNS server.
ecscache
Package ecscache implements a EDNS Client Subnet (ECS) aware DNS cache that can be used as a dnsserver.Middleware.
Package ecscache implements a EDNS Client Subnet (ECS) aware DNS cache that can be used as a dnsserver.Middleware.
errcoll
Package errcoll contains implementations of error collectors, most notably Sentry.
Package errcoll contains implementations of error collectors, most notably Sentry.
experiment
Package experiment occasionally contains code for one-off experiments.
Package experiment occasionally contains code for one-off experiments.
filter
Package filter contains the filter interface and its implementations along with types that combine them based on the settings in profile and filtering group.
Package filter contains the filter interface and its implementations along with types that combine them based on the settings in profile and filtering group.
filter/hashprefix
Package hashprefix defines a storage of hashes of domain names used for filtering and serving TXT records with domain-name hashes.
Package hashprefix defines a storage of hashes of domain names used for filtering and serving TXT records with domain-name hashes.
filter/internal
Package internal contains common constants, types, and utilities shared by other subpackages of package filter/.
Package internal contains common constants, types, and utilities shared by other subpackages of package filter/.
filter/internal/composite
Package composite implements a composite filter based on several types of filters and the logic of the filter application.
Package composite implements a composite filter based on several types of filters and the logic of the filter application.
filter/internal/custom
Package custom contains the caching storage of filters made from custom filtering rules of profiles.
Package custom contains the caching storage of filters made from custom filtering rules of profiles.
filter/internal/filtertest
Package filtertest contains common constants and utilities for the internal filtering packages.
Package filtertest contains common constants and utilities for the internal filtering packages.
filter/internal/rulelist
Package rulelist contains the implementation of the standard rule-list filter that wraps an urlfilter filtering-engine.
Package rulelist contains the implementation of the standard rule-list filter that wraps an urlfilter filtering-engine.
filter/internal/safesearch
Package safesearch contains the implementation of the safe-search filter that uses lists of DNS rewrite rules to enforce safe search.
Package safesearch contains the implementation of the safe-search filter that uses lists of DNS rewrite rules to enforce safe search.
filter/internal/serviceblock
Package serviceblock contains an implementation of a filter that blocks services using rule lists.
Package serviceblock contains an implementation of a filter that blocks services using rule lists.
geoip
Package geoip contains implementations of the GeoIP database for AdGuard DNS.
Package geoip contains implementations of the GeoIP database for AdGuard DNS.
metrics
Package metrics contains definitions of most of the prometheus metrics that we use in AdGuard DNS.
Package metrics contains definitions of most of the prometheus metrics that we use in AdGuard DNS.
optlog
Package optlog contains ugly hacks to make debug logs allocate less when debug mode is not enabled.
Package optlog contains ugly hacks to make debug logs allocate less when debug mode is not enabled.
optslog
Package optslog contains optimizations making debug logs using log/slog allocate less when debug mode is not enabled.
Package optslog contains optimizations making debug logs using log/slog allocate less when debug mode is not enabled.
profiledb
Package profiledb defines interfaces for databases of user profiles.
Package profiledb defines interfaces for databases of user profiles.
profiledb/internal
Package internal contains common constants and types that all implementations of the default profile-cache use.
Package internal contains common constants and types that all implementations of the default profile-cache use.
profiledb/internal/filecachepb
Package filecachepb contains the protobuf structures for the profile cache.
Package filecachepb contains the protobuf structures for the profile cache.
profiledb/internal/profiledbtest
Package profiledbtest contains common helpers for profile-database tests.
Package profiledbtest contains common helpers for profile-database tests.
querylog
Package querylog defines the AdGuard DNS query log constants and types and provides implementations of the log.
Package querylog defines the AdGuard DNS query log constants and types and provides implementations of the log.
remotekv
Package remotekv contains remote key-value storage interfaces, helpers, and implementations.
Package remotekv contains remote key-value storage interfaces, helpers, and implementations.
remotekv/consulkv
Package consulkv contains implementation of remotekv.Interface for Consul key-value storage.
Package consulkv contains implementation of remotekv.Interface for Consul key-value storage.
remotekv/rediskv
Package rediskv contains implementation of remotekv.Interface for Redis.
Package rediskv contains implementation of remotekv.Interface for Redis.
rulestat
Package rulestat contains the filtering rule statistics collector and API.
Package rulestat contains the filtering rule statistics collector and API.
tlsconfig
Package tlsconfig contains TLS related interfaces, helpers, and implementations.
Package tlsconfig contains TLS related interfaces, helpers, and implementations.
version
Package version contains AdGuardDNS version information.
Package version contains AdGuardDNS version information.
websvc
Package websvc contains the AdGuard DNS web service.
Package websvc contains the AdGuard DNS web service.
dnsserver Module
scripts
backend
main implements a single mock GRPC server for backend services defined by BILLSTAT_URL, PROFILES_URL, and REMOTE_KV_URL environment variables.
main implements a single mock GRPC server for backend services defined by BILLSTAT_URL, PROFILES_URL, and REMOTE_KV_URL environment variables.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL