---
title: "Bloqueando {websites,ads,malware} no Linux"
url: https://perrotta.dev/pt/2014/03/bloqueando-websitesadsmalware-no-linux/
last_updated: 2026-03-03
---


"For the sake of the productivity", notas pessoais sobre o bloqueio de websites.

## 1 - A forma nua e crua: /etc/hosts

Um arquivo `/etc/hosts` típico é da forma:

```shell
$ cat /etc/hosts
#
# /etc/hosts: static lookup table for host names
#
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
```

Para bloquear um novo site, basta redirecioná-lo localmente para localhost
(=127.0.0.1). Por exemplo, para bloquear o Facebook, adicione a esse arquivo as
linhas:

```
127.0.0.1 facebook.com
127.0.0.1 www.facebook.com
```

### 1.1 Servidor local "nulo" para localhost

Mas essa maneira por si só é muito sem graça então, além de redirecionar para
localhost, vamos fazer com que o usuário receba uma página "vazia"/"nula" ao
tentar acessar esses websites. Mas isso é bastante simples, basta instalar um
servidor local como o kwakd ou o pixelserv.

## 2 - Um pouco mais de estrutura, por favor

O programa **hostsblock** é excelente para isso. Veja a página oficial. Como um
bônus, você ainda bloqueia malware e ads (na verdade, esse é o objetivo primário
dele), isso no sistema inteiro, não apenas no navegador – por exemplo, se você
quiser instalar um Adblock, geralmente tem que instalar individualmente para
todos os seus navegadores. Estou utilizando-o recentemente, e o achei bastante
bom. Ele é bastante elegante (do ponto de vista de simplicidade de código) e
extremamente funcional. Ao ser combinado com o dnsmasq, ele fica mais elegante
ainda. Ao ser combinado com o cron, você tem uma lista de domínios a ser
bloqueados que é atualizada periodicamente.

Se você quiser combiná-lo com o Network Manager e tiver problemas com isso,
[esse post](https://wiki.archlinux.org/index.php/Dnsmasq) talvez seja útil. Se
você achou todos esses projetos relevantes, considere votá-los no AUR para que
eles ganhem mais relevância.

## Se você usa o Chromium

OBS.: Se você utiliza o Chromium ou o Google Chrome, vai descobrir que ele é
esperto e tenta contornar os websites que ele não consegue acessar. Depois de
bastante pesquisa, descobri a razão para isso:

- http://www.chromium.org/developers/design-documents/dns-prefetching
- https://superuser.com/questions/723703/why-is-chromium-bypassing-etc-hosts-and-dnsmasq/
- https://encrypted.google.com/search?hl=en&q=make%20chromium%20not%20use%20google%20default%20dns#hl=en&q=remove+google+dns+from+chrome

O problema é que ele fazia _DNS prefetching_ para agilizar o carregamento de
algumas páginas (ainda não estou 100% certo disso, mas tudo indica que esse era
o problema). Foi difícil descobrir isso principalmente porque a maioria das
discussões sobre o assunto se aplica apenas a versões antigas do Chromium (sabe,
daquela época que ainda tinham dois botões, em vez de um só).

_Happy blocking!_

