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.