Blog del Podcast
podcast      GitHub      Twitter   Telegram

Navegando sin publicidad con Blocky, SOCKS5 y Wireguard

Lectura: 3 min. 517 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 el lunes, 04 de julio de 2022






Powered by wdblog

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