Czy Chrome używa innego serwera DNS niż system operacyjny?

11

Używam Chrome w systemie Linux. Mam lokalny DNS, aby rozpoznać * .myname.com na 127.0.0.2 (wpisuję „hostokolwiek.nazwa.com.com” lub „host moja_nazwa.com” i widzę poprawny adres). Jednak w Chrome po wpisaniu „myname.com” następuje przekierowanie do „www.myname.com” i rozwiązanie „prawdziwej” witryny, której nie chcę.

Tylko po wpisaniu „test.myname.com”, a nie „www.myname.com”, Chrome poprawnie rozpoznaje wersję 127.0.0.2. Chyba Chrome próbuje robić fajne rzeczy z www.anything.com i cokolwiek.com.

Jak to naprawić?

PS: lokalny DNS, którego używam, to dnsmasq. Jeśli jawnie wstawię nazwę myname.com do / etc / hosts, Chrome rozwiązuje ją poprawnie w wersji 127.0.0.2, ale nie mogę używać symboli wieloznacznych w / etc / hosts.

PPS: Mogę potwierdzić na chrome: // net-internals / # dns, że Chrome poprawnie myname.com i www.myname.com w prawdziwy publiczny adres IP.

Jcisio
źródło

Odpowiedzi:

6

W rzeczywistości Chrome używał własnego klienta DNS, który komunikuje się z wieloma serwerami DNS (lokalnym DNS, routerem DNS, routerem DNS w IPv6). Idę do chrome: // flags i wyłączam „Wbudowany asynchroniczny DNS”. Teraz działa.

Jcisio
źródło
2
Flaga „Wbudowany asynchroniczny DNS” została usunięta z Google Chrome, wyłączając w ten sposób „poprawkę”. chromium.googlesource.com/chromium/src/+/… (od superuser.com/a/887191/109126 )
jcisio
5
Ta opcja została usunięta z Chrome, usuń odpowiedź, aby zapobiec pomyłkom, lub przegłosuj: D
sorin
1
Wciąż jest tu jakiś problem. Używam Chrome 56 na Linux Mint, a rozpoznawanie adresów zajmuje kilka minut po połączeniu z VPN. Firefox robi to natychmiast. Wygląda na to, że Chrome potrzebuje trochę czasu, aby zobaczyć zmiany /etc/resolv.conf.
orodbhen
1
Nadal obowiązuje w Chrome na Androida. Opcja nazywa się „Async DNS resolver” (chrome: // flags / # enable-async-dns)
MaxChinni
1
w 69+ nie ma takiej opcji, a wyłączenie chrome: // flags / # enable-new-preconnect (wspomina o DNS) nie pomaga
vladkras
1

Możesz zmienić ustawienia serwera proxy i zmusić go do używania żądanego adresu.

Otwórz nowy plik z rozszerzeniem .pac, pliki te są używane przez system do określania serwerów proxy, skopiuj to do zawartości pliku:

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

przejdź do ustawień chrome proxy, a pod „url do automatycznej konfiguracji proxy” wprowadź ścieżkę do tego pliku.

nie musisz mieć serwera DNS, możesz przekierować go do różnych portów na komputerze i możesz go zaprogramować według własnych potrzeb.

Ohad Cohen
źródło
1
Użyłem go, gdy korzystałem z komputera Mac, ponieważ w OS XI mogę używać pliku .pac dla całego systemu. Nie w systemie Linux AFAIK (nie działa z wget, curl itp.).
jcisio
jaki masz linux? (Mam Kubuntu i działa)
Ohad Cohen,
Archlinux + KDE. Po prostu nie wierzę, że ustawienia Chrome mogą zmienić zachowanie systemu operacyjnego w konsoli.
jcisio
ustawienia proxy chrome po prostu otwórz systemowe ustawienia proxy
Ohad Cohen
Dzięki, właśnie przetestowałem z xubuntu na moim netbooku. Nie można otworzyć ustawień serwera proxy systemu (strona chrome: // linux-proxy-config / dała błąd). Spróbuję później z moim Archlinux.
jcisio