
Servidor DNS de bloqueio de anúncios e rastreadores em toda a rede
Servidor DNS gratuito e de código aberto, poderoso, que bloqueia anúncios e rastreadores em toda a rede.
AdGuard.com |
Wiki |
Reddit |
Twitter |
Telegram
O AdGuard Home é um software de rede para bloquear anúncios e rastreamento. Depois de configurá-lo, ele cobrirá TODOS os seus dispositivos domésticos, e você não precisará de nenhum software no lado do cliente para isso.
Ele opera como um servidor DNS que redireciona domínios de rastreamento para um “buraco negro”, impedindo assim que seus dispositivos se conectem a esses servidores. Ele é baseado no software que usamos para nossos servidores públicos de AdGuard DNS, e ambos compartilham muito código.
Para instalar com curl, execute o seguinte comando:```sh
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Para instalar com `wget`, execute o seguinte comando:```sh
wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
Para instalar com fetch, execute o seguinte comando:```sh
fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
O script também aceita algumas opções:
- `-c <channel>` para usar o canal especificado;
- `-r` para reinstalar o AdGuard Home;
- `-u` para desinstalar o AdGuard Home;
- `-v` para saída detalhada.
Observe que as opções `-r` e `-u` são mutuamente exclusivas.
### <a href="#alternative-methods" id="alternative-methods" name="alternative-methods">Métodos alternativos</a>
#### <a href="#manual-installation" id="manual-installation" name="manual-installation">Instalação manual</a>
Leia o artigo **[Getting Started][wiki-start]** em nossa Wiki para aprender como instalar o AdGuard Home manualmente e como configurar seus dispositivos para usá-lo.
#### <a href="#docker" id="docker" name="docker">Docker</a>
Você pode usar nossa imagem oficial do Docker no [Docker Hub].
#### <a href="#snap-store" id="snap-store" name="snap-store">Snap Store</a>
Se você estiver usando **Linux,** há uma maneira segura e fácil de instalar o AdGuard Home: obtenha-o na [Snap Store].
[Docker Hub]: https://hub.docker.com/r/adguard/adguardhome
[Snap Store]: https://snapcraft.io/adguard-home
[wiki-start]: https://adguard-dns.io/kb/adguard-home/getting-started/
### <a href="#guides" id="guides" name="guides">Guias</a>
Consulte nossa [Wiki][wiki].
[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki
### <a href="#api" id="api" name="api">API</a>
Se você quiser integrar com o AdGuard Home, pode usar nossa [REST API][openapi]. Alternativamente, você pode usar este [cliente Python][pyclient], que pode ser usado para criar a [integração do AdGuard Home com o Home Assistant][assistant-integration].
[assistant-integration]: https://www.home-assistant.io/integrations/adguard/
[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi
[pyclient]: https://pypi.org/project/adguardhome/
## <a href="#comparison" id="comparison" name="comparison">Comparando o AdGuard Home com outras soluções</a>
### <a href="#comparison-adguard-dns" id="comparison-adguard-dns" name="comparison-adguard-dns">Em que isso difere dos servidores DNS públicos do AdGuard?</a>
Executar seu próprio servidor AdGuard Home permite que você faça muito mais do que usar um servidor DNS público. É um nível completamente diferente. Veja você mesmo:
- Escolha exatamente o que o servidor bloqueia e permite.
- Monitore sua atividade de rede.
- Adicione suas próprias regras de filtragem personalizadas.
- **O mais importante: é o seu próprio servidor, e você é o único que está no controle.**
### <a href="#comparison-pi-hole" id="comparison-pi-hole" name="comparison-pi-hole">Como o AdGuard Home se compara ao Pi-Hole</a>
Neste ponto, o AdGuard Home tem muito em comum com o Pi-Hole. Ambos bloqueiam anúncios e rastreadores usando o chamado método de “DNS sinkholing” e ambos permitem personalizar o que é bloqueado.
> [!NOTE]
> Não vamos parar por aqui. O DNS sinkholing não é um mau ponto de partida, mas isso é apenas o começo.
O AdGuard Home oferece muitos recursos prontos para uso, sem a necessidade de instalar e configurar software adicional. Queremos que seja simples a ponto de até usuários casuais conseguirem configurá-lo com o mínimo de esforço.
> [!NOTE]
> Alguns dos recursos listados podem ser adicionados ao Pi-Hole instalando software adicional ou usando manualmente o terminal SSH e reconfigurando um dos utilitários que compõem o Pi-Hole. No entanto, em nossa opinião, isso não pode ser legitimamente contado como um recurso do Pi-Hole.
| Recurso | AdGuard Home | Pi-Hole |
|-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------|
| Bloqueio de anúncios e rastreadores | ✅ | ✅ |
| Personalização de listas de bloqueio | ✅ | ✅ |
| Servidor DHCP integrado | ✅ | ✅ |
| HTTPS para a interface de administração | ✅ | Mais ou menos, mas você precisará configurar o lighttpd manualmente |
| Servidores DNS upstream criptografados (DNS-over-HTTPS, DNS-over-TLS, DNSCrypt) | ✅ | ❌ (requer software adicional) |
| Multiplataforma | ✅ | ❌ (não nativamente, apenas via Docker) |
| Execução como servidor DNS-over-HTTPS ou DNS-over-TLS | ✅ | ❌ (requer software adicional) |
| Bloqueio de domínios de phishing e malware | ✅ | ❌ (requer listas de bloqueio não padrão) |
| Controle parental (bloqueio de domínios adultos) | ✅ | ❌ (requer listas de bloqueio não padrão) |
| Forçar pesquisa segura em mecanismos de busca | ✅ | ❌ |
| Configuração por cliente (dispositivo) | ✅ | ✅ |
| Configurações de acesso (escolha quem pode usar o DNS do AGH) | ✅ | ❌ |
| Execução [sem privilégios de root][wiki-noroot] | ✅ | ❌ |
[wiki-noroot]: https://adguard-dns.io/kb/adguard-home/getting-started/
### <a href="#comparison-adblock" id="comparison-adblock" name="comparison-adblock">Como o AdGuard Home se compara aos bloqueadores de anúncios tradicionais</a>
Depende.
O DNS sinkholing é capaz de bloquear uma grande porcentagem de anúncios, mas não tem a flexibilidade e o poder dos bloqueadores de anúncios tradicionais. Você pode ter uma boa ideia da diferença entre esses métodos lendo [este artigo][blog-adaway], que compara o AdGuard para Android (um bloqueador de anúncios tradicional) com bloqueadores de anúncios em nível de hosts (que são quase idênticos aos bloqueadores baseados em DNS em suas capacidades). Esse nível de proteção é suficiente para alguns usuários.
Além disso, usar um bloqueador baseado em DNS pode ajudar a bloquear anúncios, rastreamento e solicitações de análise em outros tipos de dispositivos, como SmartTVs, alto-falantes inteligentes ou outros tipos de dispositivos IoT (nos quais você não pode instalar bloqueadores de anúncios tradicionais).
### <a href="#comparison-limitations" id="comparison-limitations" name="comparison-limitations">Limitações conhecidas</a>
Aqui estão alguns exemplos do que não pode ser bloqueado por um bloqueador de nível DNS:
- Anúncios do YouTube, Twitch;
- Publicações patrocinadas do Facebook, Twitter, Instagram.
Essencialmente, qualquer publicidade que compartilhe um domínio com conteúdo não pode ser bloqueada por um bloqueador de nível DNS.
Existe alguma chance de lidar com isso no futuro? O DNS nunca será suficiente para isso. Nossa única opção é usar um proxy de bloqueio de conteúdo como fazemos nos aplicativos AdGuard independentes. Vamos [trazer][issue-1228] o suporte a esse recurso para o AdGuard Home no futuro. Infelizmente, mesmo nesse caso, ainda haverá situações em que isso não será suficiente ou exigirá uma configuração bastante complicada.
[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html
[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228
## <a href="#how-to-build" id="how-to-build" name="how-to-build">Como compilar a partir do código-fonte</a>
### <a href="#prerequisites" id="prerequisites" name="prerequisites">Pré-requisitos</a>
Execute `make init` para preparar o ambiente de desenvolvimento.
Você precisará disso para compilar o AdGuard Home:
- [Go](https://golang.org/dl/) v1.25 ou posterior;
- [Node.js](https://nodejs.org/en/download/) v24.10.0 ou posterior;
- [npm](https://www.npmjs.com/) v10.8 ou posterior;
### <a href="#building" id="building" name="building">Compilação</a>
Abra seu terminal e execute estes comandos:```sh
git clone https://github.com/AdguardTeam/AdGuardHome
cd AdGuardHome
make
[!WARNING] A flag não padrão
-jnão é suportada atualmente, portanto compilar commake -j 4ou definir a variávelMAKEFLAGSpara incluir, por exemplo,-j 4provavelmente quebrará a compilação. Se você tiver aMAKEFLAGSdefinida assim e não quiser alterá-la, pode substituí-la executandomake -j 1.
Consulte o Makefile para saber mais sobre outros comandos.
Você pode compilar o AdGuard Home para qualquer SO/arquitetura que o Go suporte. Para fazer isso, especifique as variáveis de ambiente GOOS e GOARCH como macros ao executar make.
Por exemplo:```sh env GOOS='linux' GOARCH='arm64' make
ou:```sh
make GOOS='linux' GOARCH='arm64'
Você precisará do snapcraft para preparar uma build de release. Depois de instalado, execute o seguinte comando:```sh
make build-release CHANNEL='...' VERSION='...'
Consulte a [documentação do alvo `build-release`][targ-release].
#### <a href="#docker-image" id="docker-image" name="docker-image">Imagem Docker</a>
Execute `make build-docker` para criar a imagem Docker localmente (a que publicamos no DockerHub). Observe que usamos o [Docker Buildx][buildx] para criar a nossa imagem oficial.
Talvez seja necessário se preparar antes de usar essas builds:
- (somente Linux) Instale o Qemu: ```sh
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes
Consulte a documentação do alvo build-docker.
Quando você precisar depurar o frontend sem recompilar a versão de produção toda vez, por exemplo, para verificar como seus rótulos ficariam em um formulário, você pode executar o build do frontend em um ambiente de desenvolvimento.
Em um terminal separado, execute: ```sh ( cd ./client/ && env NODE_ENV='development' npm run watch )
Execute o binário AdGuardHome com a flag --local-frontend, que instrui o AdGuard Home a ignorar os arquivos de frontend integrados e usar aqueles do diretório ./build/.
Agora, quaisquer alterações que você fizer no diretório ./client/ devem ser recompiladas e ficar disponíveis na interface web. Certifique-se de desativar o cache do navegador para garantir que você realmente obtenha a versão recompilada.
O AdGuard Home usa Playwright para testes E2E. Os testes estão localizados em tests/e2e.
Executando os testes:
npm run test:e2e – executa todos os testes (headless).npm run test:e2e:interactive – executa os testes interativamente.npm run test:e2e:debug – executa os testes em modo de depuração.npm run test:e2e:codegen – gera novo código de teste.Configuração:
npm install para instalar as dependências.npx playwright install para configurar os navegadores necessários.Aviso: O Playwright fará download e instalará seus próprios binários de navegador para testes, que podem ser diferentes dos navegadores instalados no seu sistema.
Sinta-se à vontade para fazer um fork deste repositório, fazer suas alterações e enviar uma pull request. No entanto, certifique-se de seguir nossas diretrizes de código.
Observe que não esperamos que as pessoas contribuam simultaneamente com as partes de UI e backend do programa. Idealmente, a parte do backend é implementada primeiro, ou seja, configuração, API e a própria funcionalidade. A parte da UI pode ser implementada posteriormente em uma pull request diferente, por uma pessoa diferente.
Existem dois canais de atualização que você pode usar:
beta: versões beta do AdGuard Home. Versões mais ou menos estáveis, geralmente lançadas a cada duas semanas ou com mais frequência.
edge: a versão mais recente do AdGuard Home do branch de desenvolvimento. Novas atualizações são enviadas para este canal diariamente.
Há três opções para instalar uma versão instável:
[Snap Store]: procure pelos canais beta e edge.
[Docker Hub]: procure pelas tags beta e edge.
Builds independentes. Use o script de instalação automatizado ou procure pelas builds disponíveis [na Wiki][wiki-platf].
Script para instalar uma versão beta: ```sh curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta
Script para instalar uma versão edge: ```sh curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge
[wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms
### <a href="#reporting-issues" id="reporting-issues" name="reporting-issues">Relatar problemas</a>
Se você encontrar algum problema ou tiver uma sugestão, acesse [esta página][iss] e clique no botão “New issue”. Siga atentamente as instruções do formulário de issue e não se esqueça de começar pesquisando por duplicatas.
[iss]: https://github.com/AdguardTeam/AdGuardHome/issues
### <a href="#translate" id="translate" name="translate">Ajude com as traduções</a>
Se quiser ajudar com as traduções do AdGuard Home, saiba mais sobre como traduzir os produtos AdGuard [na nossa Base de Conhecimento][kb-trans]. Você pode contribuir com o [projeto AdGuardHome no CrowdIn][crowdin].
[crowdin]: https://crowdin.com/project/adguard-applications/en#/adguard-home
[kb-trans]: https://kb.adguard.com/en/general/adguard-translations
### <a href="#help-other" id="help-other" name="help-other">Outros</a>
Outra forma de contribuir é [procurando issues][iss-help] marcadas como `help wanted`, perguntando se a issue está disponível e enviando um PR que corrija o bug ou implemente o recurso.
[iss-help]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is:issue+is:open+label:%22help+wanted%22
## <a href="#uses" id="uses" name="uses">Projetos que usam o AdGuard Home</a>
Observe que estes projetos não são afiliados à AdGuard, mas são desenvolvidos por terceiros e fãs.
- [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740): aplicativo iOS por [Joost](https://rocketscience-it.nl/).
- [Python library](https://github.com/frenck/python-adguardhome) por [@frenck](https://github.com/frenck).
- [Home Assistant add-on](https://github.com/hassio-addons/addon-adguard-home) por [@frenck](https://github.com/frenck).
- [OpenWrt LUCI app](https://github.com/kongfl888/luci-app-adguardhome) por [@kongfl888](https://github.com/kongfl888) (originalmente por [@rufengsuixing](https://github.com/rufengsuixing)).
- [AdGuardHome sync](https://github.com/bakito/adguardhome-sync) por [@bakito](https://github.com/bakito).
- [Monitoramento de tráfego em tempo real e estatísticas para a sua instância do AdGuard Home, baseado em terminal](https://github.com/Lissy93/AdGuardian-Term) por [@Lissy93](https://github.com/Lissy93)
- [AdGuard Home em roteadores GLInet](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664) por [Gl-Inet](https://gl-inet.com/).
- [Cloudron app](https://git.cloudron.io/cloudron/adguard-home-app) por [@gramakri](https://github.com/gramakri).
- [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer) por [@jumpsmm7](https://github.com/jumpsmm7), também conhecido como [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/).
- [Node.js library](https://github.com/Andrea055/AdguardHomeAPI) por [@Andrea055](https://github.com/Andrea055/).
- [Extensão de navegador](https://github.com/satheshshiva/Adguard-Home-Browser-Ext) por [@satheshshiva](https://github.com/satheshshiva/).
- [Modelo Zabbix para AdGuard Home](https://github.com/diasdmhub/AdGuard_Home_Zabbix_Template) por [@diasdmhub](https://github.com/diasdmhub).
- [Pacote Chocolatey](https://community.chocolatey.org/packages/adguardhome/) por [niks255](https://community.chocolatey.org/profiles/niks255).
- [Listagem na ZimaOS App Store](https://www.zimaspace.com/zimaos/app-store/app/org.icewhale.adguardhome) por [CasaOS Team](https://casaos.zimaspace.com/).
## <a href="#acknowledgments" id="acknowledgments" name="acknowledgments">Agradecimentos</a>
Este software não teria sido possível sem:
- [Go](https://golang.org/dl/) e suas bibliotecas:
- [gcache](https://github.com/bluele/gcache)
- [miekg's dns](https://github.com/miekg/dns)
- [go-yaml](https://github.com/go-yaml/yaml)
- [service](https://godoc.org/github.com/kardianos/service)
- [dnsproxy](https://github.com/AdguardTeam/dnsproxy)
- [urlfilter](https://github.com/AdguardTeam/urlfilter)
- [Node.js](https://nodejs.org/) e suas bibliotecas:
- [React.js](https://reactjs.org)
- [Tabler](https://github.com/tabler/tabler)
- E muitos outros pacotes Node.js.
- [dados do whotracks.me](https://github.com/cliqz-oss/whotracks.me)
Você deve ter visto que o [CoreDNS] foi mencionado aqui antes, mas paramos de usá-lo no AdGuard Home.
Para a lista completa de todos os pacotes Node.js em uso, dê uma olhada no arquivo [`client/package.json`][src-packagejson].
[CoreDNS]: https://coredns.io
[src-packagejson]: https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/client/package.json
## <a href="#privacy" id="privacy" name="privacy">Privacidade</a>
Nossa ideia principal é que você é quem deve ter controle sobre seus dados. Portanto, é natural que o AdGuard Home não colete nenhuma estatística de uso e não utilize nenhum serviço web, a menos que você o configure para isso. Consulte também a [política de privacidade completa][privacy], na qual cada dado que *poderia, em teoria, ser enviado* pelo AdGuard Home está disponível.
[privacy]: https://adguard.com/en/privacy/home.html