Чи Chrome використовує інший DNS-сервер від ОС?


11

Я запускаю Chrome в Linux. У мене є локальний DNS для вирішення * .myname.com у 127.0.0.2 (я набираю "хост what.myname.com" або "хост myname.com" і я бачу правильну адресу). Однак у Chrome, коли я набираю "myname.com", він перенаправляється на "www.myname.com" і вирішує "справжній" веб-сайт, який я не хочу.

Тільки коли я набираю "test.myname.com", а не "www.myname.com", Chrome правильно розв'язує його в 127.0.0.2. Я думаю, що Chrome намагається зробити щось цікаве з www.anything.com та з чим-небудь.com.

Як це виправити?

PS: локальний DNS, який я використовую, - dnsmasq. Якщо я чітко помістив myname.com в / etc / hosts, Chrome вирішить його правильно в 127.0.0.2, але я не можу використовувати підстановку в / etc / hosts.

PPS: Я можу підтвердити на chrome: // net-Internals / # dns, що Chrome правильно myname.com та www.myname.com перетворити на реальну загальнодоступну IP-адресу.

Відповіді:


6

Насправді Chrome використовував його власний клієнт DNS, який спілкується з декількома серверами DNS (локальний DNS, маршрутизатор DNS, маршрутизатор DNS в IPv6). Я переходжу до chrome: // прапорів і відключаю "Вбудований асинхронний DNS". Зараз це працює.


2
Прапор "Вбудований асинхронний DNS" було видалено з Google Chrome, тим самим відключивши "виправлення" для цього. chromium.googlesource.com/chromium/src/+/… (від superuser.com/a/887191/109126 )
jcisio

5
Цю опцію було вилучено з Chrome, видаліть відповідь, щоб запобігти плутанині чи погіршення голосів: D
sorin

1
Тут ще є якась проблема. Я використовую Chrome 56 на Linux Mint, і щоб вирішити адреси після підключення до VPN, потрібно кілька хвилин. Firefox робить це негайно. Схоже, що Chrome потребує деякого часу, щоб побачити зміни /etc/resolv.conf.
orodbhen

1
Він все ще діє в Chrome для Android. Опція називається "Асинхронний DNS-розв'язувач" (chrome: // flags / # enable-async-dns)
MaxChinni

1
у 69+ немає такої опції, а вимкнення хрому: // flags / # enable-new-preconnect (згадується DNS) не допомагає
vladkras

1

Ви можете змінити налаштування проксі-сервера та змусити його використовувати потрібну адресу.

Відкрийте новий файл із розширенням .pac, ці файли використовуються системою для визначення проксі, скопіюйте це у вміст файлу:

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

перейдіть до налаштувань проксі-хрому та під «URL-адресою автоматичної конфігурації проксі-сервера» введіть шлях до цього файлу.

не потрібно мати сервер DNS, ви можете перенаправити його на різні порти на машині, а також можете запрограмувати його для своїх потреб.


1
Я використовував його, коли я використовував Mac, тому що в OS XI можна використовувати .pac файл для всієї системи. Не в Linux AFAIK (він не працює з wget, curl тощо).
jcisio

який у вас Linux? (у мене є kubuntu і працює)
Охад Коен

Archlinux + KDE. Я просто не вірю, що налаштування Chrome можуть змінити поведінку ОС у консолі.
jcisio

налаштування проксі-хрому просто відкрийте налаштування системних проксі
Охад Коен

Дякую, я щойно тестував xubuntu в своєму нетбуку. Не вдалося відкрити налаштування проксі-системи systme (сторінка chrome: // linux-proxy-config / дала помилку). Я спробую зі своїм Archlinux пізніше.
jcisio
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.