Chrome utilise-t-il un serveur DNS différent du système d'exploitation?

11

J'utilise Chrome sur Linux. J'ai un DNS local pour résoudre * .myname.com en 127.0.0.2 (je tape "host any.myname.com" ou "host myname.com" et je vois la bonne adresse). Cependant dans Chrome lorsque je tape "myname.com", il est redirigé vers "www.myname.com" et résout le "vrai" site Web que je ne veux pas.

Ce n'est que lorsque je tape "test.myname.com", et non "www.myname.com", que Chrome le résout correctement en 127.0.0.2. Je suppose que Chrome essaie de faire quelque chose de funky avec www.anything.com et everything.com.

Comment le réparer?

PS: le DNS local que j'utilise est dnsmasq. Si je mets explicitement myname.com dans / etc / hosts, Chrome le résout correctement dans 127.0.0.2, mais je ne peux pas utiliser de caractères génériques dans / etc / hosts.

PPS: Je peux confirmer sur chrome: // net-internals / # dns que Chrome correctement myname.com et www.myname.com dans la véritable IP publique.

jcisio
la source

Réponses:

6

En fait, Chrome utilisait son propre client DNS qui parlait avec plusieurs serveurs DNS (le DNS local, le routeur DNS, le routeur DNS en IPv6). Je vais sur chrome: // flags et désactive "Built-in Asynchronous DNS". Maintenant ça marche.

jcisio
la source
2
Le drapeau "DNS asynchrone intégré" a été supprimé de Google Chrome, désactivant ainsi le "correctif" pour cela. chromium.googlesource.com/chromium/src/+/… (de superuser.com/a/887191/109126 )
jcisio
5
Cette option a été supprimée de Chrome, supprimez la réponse pour éviter toute confusion ou des
votes négatifs
1
Il y a toujours une sorte de problème ici. J'utilise Chrome 56 sur Linux Mint, et il faut plusieurs minutes pour résoudre les adresses après la connexion à un VPN. Firefox le fait immédiatement. Il semble que Chrome prenne un certain temps pour voir des changements /etc/resolv.conf.
orodbhen
1
Il est toujours valable dans Chrome pour Android. L'option est appelée "résolveur DNS Async" (chrome: // flags / # enable-async-dns)
MaxChinni
1
il n'y a pas une telle option dans 69+ et la désactivation de chrome: // flags / # enable-new-preconnect (mentionne DNS) n'aide pas
vladkras
1

Vous pouvez modifier vos paramètres de proxy et le forcer à utiliser l'adresse souhaitée.

Ouvrez un nouveau fichier, avec l'extension .pac, ces fichiers sont utilisés par le système pour déterminer les proxys, copiez-les dans le contenu du fichier:

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";
}

accédez aux paramètres du proxy Chrome et sous "URL pour la configuration automatique du proxy", entrez le chemin d'accès à ce fichier.

pas besoin de serveur DNS, vous pouvez le rediriger vers différents ports de la machine, et vous pouvez le programmer selon vos besoins.

Ohad Cohen
la source
1
Je l'ai utilisé lorsque j'ai utilisé Mac, car dans OS XI, vous pouvez utiliser le fichier .pac pour l'ensemble du système. Pas sous Linux AFAIK (cela ne fonctionne pas avec wget, curl etc.).
jcisio
quel linux avez-vous? (j'ai kubuntu et ça marche)
Ohad Cohen
Archlinux + KDE. Je ne pense pas que les paramètres de Chrome puissent changer le comportement du système d'exploitation dans la console.
jcisio
les paramètres de proxy chrome viennent d'ouvrir les paramètres de proxy du système
Ohad Cohen
Merci, je viens de tester avec xubuntu dans mon netbook. Il ne pouvait pas ouvrir les paramètres du proxy système (la page chrome: // linux-proxy-config / a donné une erreur). J'essaierai avec mon Archlinux plus tard.
jcisio