Blog del Podcast
podcast    GitHub    Twitter  Telegram

Navegando sin publicidad con Blocky, SOCKS5 y Wireguard

 

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.