Formas de bloquear el acceso a sitios web en Windows — Real Talk
Este tema surge constantemente: la gente quiere bloquear sitios web, ya sea por control parental, distracciones laborales o simplemente por curiosidad. Así que, sí, hay varias maneras de hacerlo, pero ninguna es infalible. A veces, el archivo hosts funciona, otras veces los navegadores lo ignoran debido a trucos de privacidad de DNS como DoH. La directiva de grupo funciona en entornos corporativos, pero se complica.¿Y bloquear IP en el Firewall de Windows? Es un rollo y limitado. Esta guía explica principalmente cómo hacerlo con las herramientas integradas de Windows y algunos scripts porque, por supuesto, Windows tiene que complicarlo más de lo necesario.
Cómo bloquear sitios web en Windows: guía paso a paso
Bloquear sitios web mediante el archivo Hosts en Windows
Esta es la forma clásica: redirigir las solicitudes del sitio web a localhost en lugar de a su IP real. Es como decirle a Windows: «Si alguien intenta visitar Facebook, haz como si no existiera».El archivo hosts se encuentra en %windir%\system32\drivers\etc\hosts. Debido a los permisos, necesitarás ejecutar el Bloc de notas o PowerShell como administrador para editarlo. Simplemente haz clic derecho en PowerShell y selecciona Ejecutar como administrador.
En la línea de comandos, puedes ejecutar:
notepad $env:SystemRoot\System32\drivers\etc\hosts
Para bloquear un sitio como Facebook, agregue entradas como:
127.0.0.1 facebook.com 127.0.0.1 www.facebook.com
Luego, limpie el caché DNS para asegurarse de que Windows olvide la información antigua:
ipconfig /flushdns
Entonces, si abres tu navegador e intentas ingresar a Facebook después, verás errores como “Página no encontrada” o “Conexión rechazada”, que es exactamente lo que quieres.
Algunos fragmentos útiles de PowerShell para automatizar esto:
Function BlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) { $hosts = "$env:SystemRoot\System32\drivers\etc\hosts" $is_blocked = Get-Content -Path $hosts | Select-String -Pattern ([regex]::Escape($Url)) if(-not $is_blocked) { $hoststr="127.0.0.1 " + $Url Add-Content -Path $hosts -Value $hoststr } } Function UnBlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) { $hosts = "$env:SystemRoot\System32\drivers\etc\hosts" $is_blocked = Get-Content -Path $hosts | Select-String -Pattern ([regex]::Escape($Url)) if($is_blocked) { $newhosts = Get-Content -Path $hosts | Where-Object { $_ -notmatch ([regex]::Escape($Url)) } Set-Content -Path $hosts -Value $newhosts } }
Ingresa estos datos en tu perfil de PowerShell y al llamar, BlockSiteHosts "facebook.com"Facebook se bloqueará. Desbloquearlo es tan sencillo como UnBlockSiteHosts "facebook.com"…Ten en cuenta que si tu navegador usa DNS sobre HTTPS, como Firefox por defecto, este método podría no funcionar al 100 %.Es un poco raro, pero así es.
Bloqueo de sitios web con directivas de grupo (GPO)
Esto es más para administradores o personas que gestionan varios equipos en un dominio. Implica descargar plantillas ADMX para navegadores como Edge o Chrome y luego configurar políticas para bloquear URL específicas. Primero, obtenga las plantillas de Microsoft o de los proveedores de navegadores y luego instálelas (normalmente, simplemente descomprímalas en C:\Windows\PolicyDefinitions ).Desde allí, abra gpedit.msc y vaya a Configuración del equipo > Políticas > Plantillas administrativas > Microsoft Edge.
- Busque Configurar Bloquear el acceso a una lista de URL y habilítelo.
- Agregue los sitios que desea bloquear y luego ejecute
gpupdate /forcedesde el símbolo del sistema para enviar las configuraciones.
Si alguien intenta acceder a un sitio bloqueado, verá un mensaje como «Su organización no le permite ver este sitio».En Chrome, haga lo mismo: simplemente instale las plantillas ADMX de Chrome y busque la opción de bloqueo de URL en las políticas.
Bloqueo a través del Firewall de Windows Defender (basado en IP)
Esto es un poco engorroso y poco fiable, ya que el Firewall de Windows no bloquea por nombre de dominio, sino solo por dirección IP. Primero, resuelve las IP del sitio usando nslookupo Resolve-DnsName. Podrías obtener varias IP; algunos sitios usan muchos servidores, así que esto no es perfecto.
Una vez que tenga las IP, abra firewall.cpl, vaya a Reglas de salida, cree una nueva regla, elija Personalizada y luego configure el alcance para bloquear esas IP en “Direcciones IP remotas”.
Tenga en cuenta que esto no es escalable si un sitio cambia constantemente de IP o usa redes CDN. Además, limítese a unas pocas IP por regla; más de 3000 direcciones se complica.
Bloqueo con PowerShell y reglas de firewall
Más flexible: puedes crear scripts. Resuelve nombres DNS sobre la marcha y bloquea esas IP directamente. Aquí tienes un ejemplo rápido:
$sites = "facebook.com", "instagram.com" $ips = $sites | Resolve-DnsName -NoHostsFile | Select-Object -ExpandProperty IPAddress New-NetFirewallRule -DisplayName "Block Sites" -Direction Outbound -Action Block -RemoteAddress $ips -Protocol Any -LocalPort Any
Esto funciona bien, pero recuerda que, si las IP cambian, tendrás que volver a ejecutarlo. También puedes comprobar si la regla está activa en el Firewall de Windows después de ejecutarla.
Todos estos métodos tienen sus particularidades, y ninguno, sinceramente, es perfecto en términos de seguridad. Para restricciones importantes, es mejor usar el router o hardware dedicado. Pero para un bloqueo rápido y directo, estos trucos te ayudarán bastante.
Resumen
- Edite el archivo de hosts para bloquear sitios localmente (funciona, pero se puede omitir).
- Utilice la política de grupo para bloquear URL específicas del navegador (útil en entornos de dominio).
- Bloquear direcciones IP directamente en el Firewall de Windows (limitado y la IP puede cambiar).
- Automatice con PowerShell para obtener más control, pero tenga cuidado con los cambios de IP y las reglas DoH.
Resumen
Sinceramente, bloquear sitios web en Windows no es tan sencillo. El método del archivo hosts es el más sencillo, pero navegadores como Firefox o Chrome con DNS sobre HTTPS podrían ignorarlo. La GPO está pensada para profesionales de TI que gestionan varios equipos, y el bloqueo de IP mediante firewall es, en el mejor de los casos, un poco engorroso. Normalmente, para un control riguroso, la mejor opción es bloquear a nivel de red (router o proxy).Pero si solo quieres bloquear rápidamente Facebook o YouTube en tu propio equipo, modificar el archivo hosts y vaciar el DNS probablemente sea suficiente. Ojalá esto ayude a ahorrar algo de tiempo, al menos un poco.