Verwendet Chrome einen anderen DNS-Server als das Betriebssystem?

11

Ich verwende Chrome unter Linux. Ich habe lokales DNS, um * .myname.com in 127.0.0.2 aufzulösen (ich gebe "host Whatever.myname.com" oder "host myname.com" ein und sehe die richtige Adresse). Wenn ich jedoch in Chrome "myname.com" eingebe, wird es zu "www.myname.com" umgeleitet und löst die "echte" Website, die ich nicht möchte.

Nur wenn ich "test.myname.com" und nicht "www.myname.com" eingebe, löst Chrome es korrekt in 127.0.0.2 auf. Ich denke, Chrome versucht, mit www.anything.com und irgendetwas.com eine funky Sache zu machen.

Wie man es repariert?

PS: Das lokale DNS, das ich verwende, ist dnsmasq. Wenn ich myname.com explizit in / etc / hosts einfüge, löst Chrome es korrekt in 127.0.0.2 auf, aber ich kann keinen Platzhalter in / etc / hosts verwenden.

PPS: Ich kann unter chrome: // net-internals / # dns bestätigen, dass Chrome myname.com und www.myname.com korrekt in die echte öffentliche IP eingibt.

jcisio
quelle

Antworten:

6

Tatsächlich verwendete Chrome einen eigenen DNS-Client, der mit mehreren DNS-Servern kommuniziert (dem lokalen DNS, dem Router-DNS, dem Router-DNS in IPv6). Ich gehe zu chrome: // flags und deaktiviere "Built-in Asynchronous DNS". Jetzt funktioniert es.

jcisio
quelle
2
Das Flag "Integriertes asynchrones DNS" wurde aus Google Chrome entfernt, wodurch das "Update" für dieses Problem deaktiviert wurde. chromium.googlesource.com/chromium/src/+/... (von superuser.com/a/887191/109126 )
jcisio
5
Diese Option wurde aus Chrome entfernt. Entfernen Sie die Antwort, um Verwirrung oder Abstimmungen zu vermeiden: D
sorin
1
Hier gibt es immer noch ein Problem. Ich verwende Chrome 56 unter Linux Mint und es dauert einige Minuten, um Adressen aufzulösen, nachdem eine Verbindung zu einem VPN hergestellt wurde. Firefox macht es sofort. Es scheint, dass Chrome eine Weile braucht, um Änderungen zu sehen /etc/resolv.conf.
Orodbhen
1
Es ist immer noch gültig in Chrome für Android. Die Option heißt "Async DNS Resolver" (chrome: // flags / # enable-async-dns)
MaxChinni
1
Es gibt keine solche Option in 69+ und das Deaktivieren von chrome: // flags / # enable-new-preconnect (erwähnt DNS) hilft nicht
vladkras
1

Sie können Ihre Proxy-Einstellungen ändern und die Verwendung der gewünschten Adresse erzwingen.

Öffnen Sie eine neue Datei mit der Erweiterung .pac. Diese Dateien werden vom System zum Bestimmen von Proxys verwendet. Kopieren Sie diese in den Inhalt der Datei:

function FindProxyForURL(url, host) {
    if (host=='www.myname.com' || host=='myname.com'){
        return 'PROXY 127.0.0.2';
    }
    // All other domains should connect directly without a proxy
    return "DIRECT";
}

Gehen Sie zu den Chrome-Proxy-Einstellungen und geben Sie unter "URL für automatische Proxy-Konfiguration" den Pfad zu dieser Datei ein.

Sie benötigen keinen DNS-Server, können ihn an verschiedene Ports des Computers umleiten und für Ihre Anforderungen programmieren.

Ohad Cohen
quelle
1
Ich habe es verwendet, als ich einen Mac verwendet habe, da in OS XI die .pac-Datei für das gesamte System verwendet werden kann. Nicht unter Linux AFAIK (funktioniert nicht mit wget, curl usw.).
Jcisio
Welches Linux hast du? (Ich habe Kubuntu und es funktioniert)
Ohad Cohen
Archlinux + KDE. Ich glaube einfach nicht, dass Chrome-Einstellungen das Verhalten des Betriebssystems in der Konsole ändern können.
Jcisio
Chrome-Proxy-Einstellungen öffnen Sie einfach die System-Proxy-Einstellungen
Ohad Cohen
Danke, ich habe gerade mit xubuntu in meinem Netbook getestet. Die System-Proxy-Einstellungen konnten nicht geöffnet werden (die Seite chrome: // linux-proxy-config / gab einen Fehler aus). Ich werde es später mit meinem Archlinux versuchen.
Jcisio