Использует ли Chrome сервер DNS, отличный от ОС?


11

Я использую Chrome в Linux. У меня есть локальный DNS для разрешения * .myname.com в 127.0.0.2 (я набираю «host what.myname.com» или «host myname.com» и вижу правильный адрес). Однако в Chrome, когда я набираю «myname.com», он перенаправляется на «www.myname.com» и решает «настоящий» веб-сайт, который мне не нужен.

Только когда я набираю «test.myname.com», а не «www.myname.com», Chrome правильно разрешает его в 127.0.0.2. Я думаю, что Chrome пытается сделать что-то интересное с www.anything.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: // flags и отключаю «Встроенный асинхронный DNS». Теперь это работает.


2
Флаг «Встроенный асинхронный DNS» был удален из Google Chrome, тем самым отключив «исправление» для этого. chromium.googlesource.com/chromium/src/+/... (от superuser.com/a/887191/109126 )
jcisio

5
Эта опция была удалена из Chrome, удалите ответ, чтобы избежать путаницы или понижения голосов: D
сорин

1
Здесь все еще есть какая-то проблема. Я использую Chrome 56 на Linux Mint, и для разрешения адресов после подключения к VPN требуется несколько минут. Firefox делает это немедленно. Похоже, что Chrome требуется некоторое время, чтобы увидеть изменения в /etc/resolv.conf.
orodbhen

1
Это все еще действует в Chrome для Android. Опция называется «Асинхронный преобразователь DNS» (chrome: // flags / # enable-async-dns)
MaxChinni,

1
в 69+ такой опции нет, и отключение chrome: // 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";
}

Перейдите в настройки Chrome Proxy и в разделе «URL для автоматической настройки прокси» введите путь к этому файлу.

Не нужно иметь DNS-сервер, вы можете перенаправить его на разные порты на машине, и вы можете запрограммировать его для своих нужд.


1
Я использовал его, когда использовал Mac, потому что в OS XI можно использовать файл .pac для всей системы. Не в Linux AFAIK (он не работает с wget, curl и т. Д.).
13

какой у тебя linux? (у меня есть Kubuntu, и он работает)
Охад Коэн

Archlinux + KDE. Я просто не верю, что настройки Chrome могут изменить поведение ОС в консоли.
jcisio

Настройки прокси chrome просто откройте настройки прокси системы
Ohad Cohen

Спасибо, я только что проверил с xubuntu в моем нетбуке. Не удалось открыть настройки прокси-сервера systme (на странице chrome: // linux-proxy-config / выдана ошибка). Я попробую с моим Archlinux позже.
13
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.