Le preguntamos a Gemini, la inteligencia artificial de Google, cómo solucionar problemas del bloqueador de publicidad en X-WRT
Explicanos detalladamente cómo solucionar problemas del bloqueador de publicidad en X-WRTPara diagnosticar y resolver problemas con el bloqueador de publicidad en X-WRT (generalmente basado en AdGuard Home, dnsmasq-full o paquetes como luci-app-adbyby-plus / luci-app-adblock), debes seguir un flujo de trabajo terminal enfocado en la resolución DNS y el filtrado de iptables/nftables.
1. Diagnóstico de la Capa de DNS y Filtros
El fallo más común es que el bloqueador no esté interceptando el puerto DNS (53) o que las listas de bloqueo hayan dejado de actualizarse.
Ejecuta los siguientes comandos vía SSH en tu router X-WRT:
Bash
# 1. Monitorear las peticiones DNS en tiempo real usando logread
logread -f | grep -iE 'dnsmasq|adguard|adblock|block'
# 2. Verificar qué proceso está escuchando en el puerto 53
netstat -tulpn | grep :53
# 3. Probar la resolución local de un dominio publicitario conocido
nslookup doubleclick.net 127.0.0.1
Resultado esperado si funciona: La consulta debe retornar 0.0.0.0 o 127.0.0.1 (o la IP del sumidero/sinkhole).
Si retorna la IP real de internet: La consulta DNS está saltándose el motor de bloqueo.
2. Guía de Solución de Problemas Frecuentes
Problema A: Los clientes de la LAN se saltan el bloqueador
Si las pruebas directas en el router bloquean la publicidad pero los dispositivos (móviles, PCs) siguen viendo anuncios, los clientes están usando servidores DNS externos (como 8.8.8.8 o 1.1.1.1) o DoH/DoT (DNS sobre HTTPS/TLS).
Solución (Forzar redirección DNS y bloquear DoH):
Edita /etc/config/dhcp o configura iptables/nftables para redirigir todo el tráfico saliente del puerto 53 hacia el router:
Bash
# Redirigir consultas DNS salientes (Port 53 TCP/UDP) al puerto local de X-WRT
iptables -t nat -A PREROUTING -i br-lan -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -i br-lan -p tcp --dport 53 -j REDIRECT --to-ports 53
Desactiva en el menú del router (Network > DHCP and DNS) la opción de publicidad de servidores DNS alternativos para que los clientes utilicen únicamente la IP Gateway de X-WRT.
Problema B: El servicio del bloqueador se detiene (Falta de Memoria RAM)
Las listas de bloqueo masivas requieren bastante memoria RAM. En routers con 128 MB o menos, el proceso del bloqueador (especialmente AdGuard Home) puede ser terminado por el ejecutor de falta de memoria (OOM Killer).
Solución:
Revisa si el proceso fue terminado por falta de memoria:
Bash
logread | grep -i 'out of memory'
Reduce el número de listas de bloqueo activas o habilita un espacio de intercambio (Swap) en un almacenamiento USB montado en el router:
Bash
# Crear un archivo Swap de 256MB en USB (/mnt/sda1)
dd if=/dev/zero of=/mnt/sda1/swapfile bs=1M count=256
mkswap /mnt/sda1/swapfile
swapon /mnt/sda1/swapfile
Problema C: Listas de bloqueo corruptas o fallos al actualizar
Si las URLs de las listas cambian o la descarga falla por falta de certificados CA, el bloqueador cargará 0 reglas.
Solución:
Asegúrate de tener los certificados CA actualizados para descargas HTTPS:
Bash
opkg update && opkg install ca-certificates wget-ssl
Fuerza la descarga y reconstrucción del archivo de reglas (varía según el paquete instalado):
Bash
# Para adblock nativo
/etc/init.d/adblock restart
# Para AdGuard Home integrado
/etc/init.d/adguardhome restart
Problema D: Conflicto entre dnsmasq y el módulo del bloqueador
Si AdGuard Home u otro motor de filtrado se configura para escuchar en el puerto 53, debes mover el servicio predeterminado dnsmasq a un puerto alternativo (por ejemplo, el puerto 5353).
Solución (Revisar puertos en /etc/config/dhcp):
Bash
uci set dhcp.@dnsmasq[0].port='5353'
uci commit dhcp
/etc/init.d/dnsmasq restart
Posteriormente, configura el motor de bloqueo para escuchar en el puerto 53 y redirigir sus consultas no bloqueadas al puerto 5353 (127.0.0.1:5353).
3. Comandos Rápidos de Reinicio y Verificación
Bash
# Reiniciar la pila completa de red y resolución en X-WRT
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
# Vaciar la caché DNS en clientes Linux/Mac locales tras aplicar reglas
sudo resolvectl flush-caches 2>/dev/null || sudo killall -HUP mDNSResponder
¿Qué paquete específico de bloqueo utilizas en tu firmware X-WRT?
Diagnosticar AdGuard Home en X-WRT
Diagnosticar luci-app-adblock / dnsmasq