¿Por qué Safari está ignorando mi archivo / etc / hosts?

20

Agregué algunos dominios para bloquear ( 127.0.0.1 mydomain.com ) a mi archivo /etc/hosts y por alguna razón, Safari parece estar ignorándolos.

Lo he intentado:

  • desactivar las extensiones de Safari,
  • borrar el caché ( sudo dscacheutil -flushcache ),
  • reiniciando Safari y la Mac por completo.

Chrome respeta los cambios /etc/hosts , pero Safari no. Se adjunta una muestra de mi archivo /etc/hosts .

Estoy ejecutando Safari 6.0.4 con Mountain Lion 10.8.3

¿Alguna idea?

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost
::1             localhost
fe80::1%lo0     localhost
127.0.0.1       facebook.com
    
pregunta Nicholas Tulach 30.05.2013 - 16:25

12 respuestas

7

Tuve este mismo problema y fue causado por tener líneas realmente largas en el archivo de mis hosts (varios hosts asignados a la misma dirección IP que aparece en la misma línea). Lo arreglé dividiéndolo en varias líneas.

    
respondido por el vincent.io 17.07.2013 - 13:51
6

Tuve un problema similar. Cada pieza de software en mi Mac respetaba la entrada de mi archivo / etc / hosts cuando el archivo de mi host tenía un enlace simbólico (alias) a otro archivo, excepto Safari. Cuando su archivo de hosts es un enlace simbólico, Safari lo ignora.

Mi solución fue hacer de / etc / hosts un enlace duro. Afortunadamente, el archivo de hosts que mantengo actualizado está en el mismo sistema de archivos. Si no es así, estás borked.

Bad Safari ... bad.

    
respondido por el Matthew Du Puy 24.09.2015 - 08:43
6

Tuve una versión ligeramente diferente del mismo problema y pensé en mencionar lo que funcionó para mí.

Desarrollo sitios web. Para hacer eso, tengo una copia completa de cada sitio que se ejecuta en mi red local. Cuando deseo trabajar localmente, siempre acabo de agregar una entrada para "example.com" a mi archivo local / etc / hosts, y eso siempre ha anulado el DNS, lo que me permite acceder a la copia local del sitio web en Cualquier navegador, incluyendo Safari y Firefox. Puedo trabajar sin afectar el sitio real en vivo, luego subir los cambios cuando estén completos.

Recientemente, sin embargo, esta técnica dejó de funcionar tanto para Safari como para Firefox, pero no para Chrome, así que por un tiempo estuve limitado a usar Chrome para el desarrollo local. Busqué en Google y probé todos los arreglos sugeridos: CR al final del archivo de hosts, solo una entrada por línea, varios cambios de configuración de Firefox usando "about: config", etc. Nada funcionó.

Luego intenté esto simple: además de poner la versión IPV4 de la dirección en el archivo / etc / hosts, también puse la versión IPV6.

Antes:

10.0.1.23       example.com

Después:

10.0.1.23       example.com
0:0:0:0:0:FFFF:0A00:0117        example.com

Tan pronto como agregué la entrada de IPV6, tanto Firefox como Safari comenzaron a golpear el servidor correcto (local).

Hay varios sitios web que traducirán las direcciones IPV4 a IPV6; simplemente haga una búsqueda en google en "ipv4 a ipv6".

    
respondido por el Fred 02.11.2016 - 19:14
4

Pasé bastante tiempo en OS X El Captain 10.11.4 para bloquear sitios usando el archivo / etc / hosts en lugar de usar Control parental en las preferencias del sistema. Al final, simplemente funcionó así:

127.0.0.1 www.website.com
127.0.0.1 website.com

Probé muchas variantes, pero siempre estaba mapeando a 0.0.0.0 ( 0.0.0.0 website.com ). Eso nunca funcionó en ninguna variación.

A diferencia de algunas sugerencias en la web, estas fueron inútiles:

  • No fue necesario el bloqueo de IPv6 como fe80::1%lo0 www.website.com o ::1 website.com
  • No hubo necesidad de dscacheutil -flushcache , solo hazlo en caso.
  • No importa si lo pega al principio o al final del archivo de hosts
  • Los navegadores parecen haber recibido una respuesta diferente: Chrome y Safari lo bloquearon inmediatamente una vez que se guardó el archivo hosts correcto, Firefox siguió ignorándolo durante un tiempo (no está claro si reiniciarlo fue suficiente).
    • Intente usar New Private Window o reinicie el navegador para probarlo.
  • No agregue http:// o https:// al comienzo de la dirección
  • No se necesitaron otros comandos.
  • No deshabilite (= comentar al agregar un # al principio) las líneas que ya están en el archivo hosts.

Verificaciones útiles

  • Verifique si el sistema reconoce su redirección dscacheutil -q host -a name website.com - debería mostrar:

    name: website.com
    ip_address: 127.0.0.1
    
  • Verifique si la sintaxis del archivo hosts es correcta mediante: cat -vet /etc/hosts . Esto muestra caracteres invisibles:

    • Las líneas deben terminar con $
    • Entre 127.0.0.1 y website.com debe ser solo un espacio o una pestaña, que se muestra como ^I .
  • Tenga en cuenta que para algunos sitios, como Facebook, por ejemplo, es posible que necesite bloquea muchas direcciones .
  • Creo que el archivo hosts debería terminar con una nueva línea.
respondido por el bud.dugong 16.08.2017 - 12:08
3

Me funcionó en Yosemite:

  1. Ir a Preferencias del sistema > Red > Avanzado > Proxies
  2. Marque Auto Proxy Discovery, presione Aceptar y Aplicar (no tengo nada más marcado)
  3. Ingrese en la Terminal: dscacheutil -flushcache

Esto limpia el dnscache en Yosemite. Ahora Safari y Chrome deben respetar su archivo de hosts.

    
respondido por el vascorola 23.12.2014 - 04:14
2

Intente colocar uno o dos retornos de carro después de la última entrada.

...
127.0.0.1       facebook.com

^ Carriage Return
    
respondido por el Mr. Russian 31.05.2013 - 07:40
2

Lo único que me funciona (10.12.1 "Sierra"):

127.0.0.1   example.com
127.0.0.1   www.example.com
fe80::1%lo0 example.com
fe80::1%lo0 www.example.com
    
respondido por el nev 09.11.2016 - 11:42
1

En algunos casos, las direcciones de bucle invertido deben agregarse tanto para IPv4 como para IPv6 en el archivo /etc/hosts .

Supongamos que ya hemos agregado una entrada de bloqueo para la dirección IPv4 de website.com :

127.0.0.1 website.com

Si dscacheutil -q host -a name website.com devuelve direcciones para ambas versiones de protocolo:

name: website.com
ipv6_address: rand:omin:vali:dipv:6addr:ess5

name: website.com
ip_address: 127.0.0.1

entonces necesitamos agregar otra línea en el archivo hosts:

::1 website.com
    
respondido por el karniol 26.03.2018 - 21:07
0

Tuve una línea equivocada terminando. Tiene que tener LF, tuve CR.

    
respondido por el user83570 25.06.2014 - 15:49
0

También tuve este problema, pero la solución es muy fácil Supongamos que creas un alias en el archivo host en tu máquina con el nombre localhost2

Esa entrada en el archivo host debe verse así: 127.0.0.1 localhost2

Cuando escriba "localhost2" en la barra de la URL del safari, en el menú desplegable verá que la opción predeterminada es buscar en Google, debe seleccionar la opción que dice "Ir al sitio localhost2"

    
respondido por el user104308 11.12.2014 - 15:58
0

Asegúrese de que su / etc / hosts tenga exactamente estos atributos. Estaba copiando, modificando y reemplazando el archivo con mi propio ID de usuario, todos los demás programas seguían funcionando excepto el safari ...

$ ls -l /etc/hosts
-rw-r--r--  1 root  wheel  1004 Sep 24 16:03 /etc/hosts
    
respondido por el gae123 25.09.2017 - 01:06
-2

Según este blog enlace

Debe colocar la entrada al inicio del archivo host. Muy poco ortodoxo. Sin embargo, no tengo ninguna experiencia personal de esto.

    
respondido por el Lynn Fang 13.06.2013 - 18:14

Lea otras preguntas en las etiquetas