8

Я использую 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.

2 ответа2

5

Фактически Chrome использовал собственный DNS-клиент, который общается с несколькими DNS-серверами (локальный DNS, DNS-маршрутизатор, DNS-маршрутизатор в IPv6). Я захожу в chrome://flags и отключаю «Встроенный асинхронный DNS». Теперь это работает.

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-сервер, вы можете перенаправить его на разные порты на машине, и вы можете запрограммировать его для своих нужд.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .