Blog del Podcast
podcast      GitHub      Twitter   Telegram

Navegando sin publicidad con Blocky, SOCKS5 y Wireguard

Tiempo estimado de lectura: 5 minutos. 569 palabras. blocky

 

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.

 

 

Archivo Configuración Blocky

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.

 

 

Funcionamiento del Docker Compose

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

 

Docker Compose

 

  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

Conclusión

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 por Angel el Monday 04 July del 2022



También te puede interesar:




Powered by org-bash-blog

Written in OrgMode with Emacs and converted to HTML with Pandoc

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