Me encanta blocky porque es un servidor DNS que me permite bloquear toda la publicidad de un modo fácil y liviano en mi red local.
Wireguard es la mejor solución como VPN y SOCKS5 como servidor proxy para la navegación remota desde mi navegador, pero.... Que lástima no poder hacer las peticiones DNS de SOCKS5 y Wireguard a Blocky.... ¿Sería posible?...
Si que es posible y te voy a explicar como.
Para que funcione blocky, es necesario primero crear el archivo config.yml.
Esta es una plantilla muy básica del archivo de configuración:
upstream:
default:
- tcp-tls:1.1.1.1 # cloudflare TLS
blocking:
blackLists:
ads:
- blacklists/blacklist.txt
- https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
- https://adaway.org/hosts.txt
whiteLists:
ads:
- whitelist.txt
clientGroupsBlock:
default:
- ads
port: 53
httpPort: 4000
En el apartado ads, puedes agregar más listas para filtrar publicidad o el acceso a determinados servidores.
Este sería el docker compose. Está compuesto de los 3 servicios en un único docker-compose.yml
El secreto para que todo funcione, es crear una red ( 172.21.0.0/24) y otorgar a cada servicio (docker) una IP fija. De este modo, al tener blocky una IP fija, desde los otros servicios podemos especificar que las peticiones DNS las haga a la IP de blocky.
En este ejemplo blocky tiene la IP 172.21.0.7:
networks:
containers:
ipv4_address: 172.21.0.7
SOCKS5 tiene la IP 172.21.0.8 y hace las peticiones DNS a la IP 172.21.0.7, que es la IP de blocky.
Si no utilizáramos blocky y quisieras hacer las peticiones DNS a un servidor que ya te filtra la publicidad como AdguardHome, sería tan sencillo como añadir la ruta del servidor DNS.
dns:
- 172.21.0.7
networks:
containers:
ipv4_address: 172.21.0.8
Wireguard tiene la IP 172.21.0.9 y hace las peticiones DNS a blocky a su IP 172.21.0.7.
dns:
- 172.21.0.7
networks:
containers:
ipv4_address: 172.21.0.9
version: '3.7'
services:
blocky:
image: spx01/blocky
container_name: blocky
restart: unless-stopped
ports:
- "53:53/tcp"
- "53:53/udp"
- "4000:4000/tcp" # Prometheus stats (if enabled).
environment:
- TZ=Europe/Madrid
expose:
- "53"
volumes:
# config file
- ./config.yml:/app/config.yml
# write query logs in this directory. You can also use a volume
# put your custom white and blacklists in these directories
- ./blacklists:/app/blacklists
- ./whitelists:/app/whitelists/
# write query logs in this volume
- ./logs:/logs
cap_add:
- NET_ADMIN
restart: unless-stopped
networks:
containers:
ipv4_address: 172.21.0.7
socks5:
image: serjs/go-socks5-proxy
container_name: socks5
environment:
- PROXY_USER=usuario
- PROXY_PASSWORD=contraseña
restart: always
ports:
- 1080:1080
dns:
- 172.21.0.7
networks:
containers:
ipv4_address: 172.21.0.8
wg-easy:
environment:
# ⚠️ Required:
# Change this to your host's public address
- WG_HOST=midominio.duckdns.org
# Optional:
- PASSWORD=contraseña
- WG_PORT=51800
# - WG_DEFAULT_ADDRESS=10.8.0.x
- WG_DEFAULT_DNS=1.1.1.1
image: weejewel/wg-easy
container_name: wg-easy
restart: unless-stopped
volumes:
- .:/etc/wireguard
ports:
- "55000:51820/udp"
- "85:51821/tcp"
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv4.ip_forward=1
dns:
- 172.21.0.7
networks:
containers:
ipv4_address: 172.21.0.9
networks:
containers:
ipam:
config:
- subnet: 172.21.0.0/24
Buenísimo el poder navegar desde tu PC o móvil filtrando la publicidad gracias a estos tres servicios.
Ahora puedes sacarle más partido a blocky, porque no solo filtra la publicidad en tu red local, sino que también fuera de ella.
Publicado el lunes, 04 de julio de 2022
Powered by wdblog

Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.