Perché Chromium ignora / etc / hosts e dnsmasq?


51

Sto usando hostsblock insieme a dnsmasq su Arch Linux per bloccare alcuni siti Web, uno di questi è facebook.come www.facebook.com.

So che tutto funziona correttamente perché un semplice ping su facebook.com(o www.facebook.com) restituisce 127.0.0.1. Inoltre, se accedo a questi siti Web da Midori, viene restituita una pagina vuota (questo è un comportamento previsto, dal momento che sto usando il demone kwakd per restituire pagine vuote su localhost).

Solo Chromium sembra scavalcare la mia blocklist. L'accesso a facebook.com da esso mi fa andare direttamente alla homepage di Facebook.

Dopo aver ripulito tutto (Ctrl + Maiusc + Canc) dall'inizio del tempo e riavviato Chromium, ottengo il comportamento desiderato (= impossibile accedere a Facebook).

Anche se, dopo un po '(non sono esattamente sicuro di cosa sia la causa), Chromium ignora di nuovo il mio DNS dnsmasq locale e accede con successo alla homepage di Facebook.

Ho letto qualcosa sulla memorizzazione nella cache e sul pre-recupero delle query DNS di Chromium, ma non sono sicuro su come disabilitarlo.

La domanda è: perché Chromium ignora il mio DNS locale e cosa posso fare per fermarlo?


2
Stai usando un proxy? Quando si utilizza un proxy, le richieste DNS vengono eseguite sul proxy.
— Zoredache,

No, non sto usando alcun proxy, hostsblock non ne richiede uno.
— thiagowfx,

Ho provato i metodi delle risposte di seguito, ma in qualche modo Chromium sta ancora ottenendo gli indirizzi IP ... Ci sono alcuni indirizzi cablati in Chromium?
— Geremia,

Risposte:


41

La maggior parte dei riferimenti su questo argomento sono vecchi. Se hai una vecchia versione di Chromium, segui la risposta edvinas.me .

Per le versioni attuali di Chromium (al momento in cui questo post è stato scritto: 33 °), ecco cosa dovresti fare:

  1. Vai a chrome://settings
  2. Fai clic su "Mostra impostazioni avanzate ..."
  3. Deseleziona la casella Prevedi azioni di rete per migliorare le prestazioni di caricamento della pagina .
  4. Controlla se il prefetching DNS è veramente disabilitato andando su chrome://dns. Dovresti vedere qualcosa come la pre-risoluzione DNS e la pre-connessione TCP disabilitata. Se il prefetch non è disabilitato, vedrai alcune tabelle lì.

Aggiornare

Per le versioni più recenti di Chrome (al momento di questo aggiornamento: 55 °), il terzo elemento è formulato come: Utilizzare un servizio di previsione per caricare le pagine più rapidamente .

Riferimento


27

Risposta aggiornata

Assicurati di pulire la cache di Chrome. Digita questo nella barra degli indirizzi:

chrome://net-internals/#dns

Quindi fare clic sul Clear host cachepulsante.

Vecchia risposta

Chromium utilizza il DNS interno di Google per impostazione predefinita (8.8.8.8 e 8.8.4.4)

Per disabilitarlo:

  1. Fai clic sul menu Strumenti (una piccola icona a forma di chiave inglese), quindi vai a Opzioni.

  2. Fai clic sulla scheda Roba da smanettoni.

    3. Nella sezione "Privacy", deseleziona la casella di controllo Usa pre-recupero DNS per migliorare le prestazioni di caricamento della pagina.

    4. Fai clic sul pulsante Chiudi.

    5. Aggiorna per ricaricare la pagina Web.


1
Quello che hai detto si applica solo alle vecchie versioni di Chromium / Google Chrome. Le versioni più recenti non hanno più questa impostazione (né "Under the Hood"). Forse la nuova impostazione è "Prevedi le azioni di rete per migliorare le prestazioni di caricamento della pagina"? Purtroppo, questo non menziona alcun DNS, quindi non ne sono sicuro.
— thiagowfx,

Ho aggiornato una risposta su come cancellare la cache DNS di Chromium. Per favore, dai un'occhiata, spero che ti aiuti.
— phoops

Grazie! La tua nuova risposta è il modo migliore per cancellare un DNS registrato (invece di ripulire tutto come in Ctrl + Maiusc + Elimina). Ma per eliminare definitivamente il problema , penso che la mia risposta si adatti meglio (devo ancora provare un po 'di più solo per essere sicuro).
— thiagowfx,

Bene, se lo disabiliti senza cancellare la cache, non funzionerà fino alla scadenza della cache. Dopo che la cache è stata cancellata, non credo che Chromium dovrebbe essere in qualche modo in grado di pre-recuperare i IP reali. Anche se il pre-recupero è attivo, verranno precaricati i valori bloccati. Ad ogni modo, almeno sembra che tu l'abbia risolto.
— phoops

2
"chrome: // net-internals / # dns" -> clear, non funziona.
— Totty.js,

2

Un'altra oscura possibilità è che il sistema sia configurato per utilizzare un file proxy * .pac automatico. Questo sarebbe normalmente il caso se ti fosse stato rilasciato un computer in un ambiente aziendale e il file * .pac stesse dicendo al tuo browser di passare attraverso un proxy per risolvere l'URL. Questo ha la priorità sul tuo file / etc / hosts e se il file * .pac contiene una regola per restituire PROXY se nulla corrisponde, sembrerà che Chrome non stia onorando / etc / hosts. Ciò avverrà normalmente se la riga di comando funziona come previsto, ad esempio dig, ping ecc.

Se hai provato le altre soluzioni e queste non funzionano, verifica di non disporre di un'installazione proxy automatica utilizzata da Chrome.


1
Questo ha funzionato per me!
— MediumOne

-2

Se stai utilizzando estensioni proxy VPN per Google Chrome (come Betternet ), potresti riscontrare questo problema. La disabilitazione dell'estensione risolve il problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.