DNS-поиск не работает в автономном режиме

я настроил свой acrylic dns proxy, чтобы включить некоторые адреса для перенаправления на localhost - поэтому я могу перенаправить определенные доменные имена на свою локальную машину без необходимости искать что-либо в Интернете (у меня нет подключения к Интернету в местах, где я разрабатываю, длинная история).

в любом случае, все работает нормально, когда я подключен к Интернету

однако, когда я пытаюсь получить доступ к локальным доменам, когда мое подключение к Интернету отключено (а это довольно часто в моем случае), веб-браузеры просто игнорируют DNS и даже не проверяют его, мгновенно списывая меня со счетом «нет». сообщение об ошибке подключения к интернету.

браузеры, кажется, проверяют файл хостов Windows на наличие локальных адресов, но игнорируют мой DNS-прокси, содержащий более сложное перенаправление, которое файл хостов Windows просто не может отключить. теперь я не знаю, как взломать firefox/chrome, чтобы проверить DNS, даже если мое интернет-соединение отключено.

есть ли у кого-нибудь опыт в этом?

подробности настройки dns proxy (если кому интересно):

*.my.dev.local переводится как 127.0.0.1

Затем я использую .htaccess для перенаправления user1.my.dev.local, user2.my.dev.loca и т. д. на определенные профили пользователей моего веб-сайта.


person user151496    schedule 05.03.2013    source источник


Ответы (3)


Я тоже использую акриловый DNS-прокси. Проблема в том, что вам нужен активный сетевой интерфейс для работы DNS-запросов. Только с петлевым интерфейсом (localhost) акриловые DNS-запросы не будут работать.

Я думаю, что Windows проверяет активные сетевые интерфейсы: если интерфейс не найден, все DNS-запросы будут терпеть неудачу даже без попытки. В моем случае достаточно подключить кабель Ethernet и, таким образом, активировать интерфейс Ethernet, независимо от того, есть ли подключение к Интернету.

Поэтому, даже если вы не подключены к Интернету, попробуйте включить Wi-Fi или другой сетевой интерфейс и установить на нем действительный IP-адрес.

Убедитесь, что интерфейс имеет DNS, настроенный на 127.0.0.1, и имеет действительный IP-адрес для работы акрилового DNS-прокси.

Если у вас нет действительного сетевого интерфейса, вы можете попробовать установить виртуальный интерфейс, но я не тестировал это решение.

person Ghigo    schedule 19.03.2013
comment
человек, спасибо за обходной путь и объяснение. я использую встроенную точку доступа Wi-Fi моего Android для создания фиктивной сети Wi-Fi без подключения к Интернету; и машина Windows действительно проверяет DNS. спас мою жизнь! - person user151496; 26.03.2013
comment
Я использую соединение Wi-Fi, но хост-файл акрила не работает. когда я переключился на локальную сеть, он снова работает. мое основное соединение - Wi-Fi, поэтому мне нужно, чтобы оно работало через Wi-Fi. любой орган испытал это также? - person Joe; 07.04.2014
comment
Это работает на моей стороне. Что произойдет, если вы переключитесь на Wi-Fi, а затем перезапустите службу акрила? - person Ghigo; 07.04.2014

Я взломал веб-браузер Chrome, прежде чем использовать DNS-сервер, на который я указываю.

Для веб-браузера Chrome по умолчанию используется getaddrinfo() для разрешения имен. то есть он просит ОС разрешить хост.

Если вы хотите взломать Chrome, чтобы использовать определенный сервер имен (не тот, который обнаружен ОС), вам необходимо загрузить код src chromium и изменить несколько строк в классе DnsConfig, указав IP-адрес пользовательского DNS-хоста, после того, как вы его успешно создали, включите «Встроенный асинхронный DNS» из «chrome://flags» — введите его в браузере Chrome, чтобы увидеть. Теперь у вас будет браузер Chrome, который может использовать собственный DNS-сервер, независимый от DNS, используемого ОС.

Я считаю, что это может быть способом решить вашу проблему, однако вам нужно создать собственный браузер Chrome, поэтому я не уверен, что это возможно для вашей ситуации.

person TravellingGeek    schedule 20.03.2013
comment
спасибо за ответ, однако мне нужно протестировать веб-страницы в более популярных браузерах; теперь есть браузеры, у которых нет открытого исходного кода, кашель, кашель, кашель, и, к сожалению, я не могу модифицировать исходный код этого. я думаю, теперь мой вопрос должен заключаться в том, как обмануть Windows 7, чтобы запросить у пользовательского DNS-сервера разрешение имени, даже если Интернет отключен - person user151496; 20.03.2013

Создайте петлевой адаптер.

Запустите команду hdwwiz.exe из командной строки и добавьте новый сетевой адаптер. Выберите производителя Microsoft и устройство Microsoft Loopback Adapter (в Windows 10 оно имеет похожее, но другое имя).

Теперь откройте свойства нового сетевого адаптера и назначьте вручную любой IP-адрес. Конечно, установите DNS на свой прокси.

person brablc    schedule 24.09.2015
comment
спасибо за еще одно предложение, лично мне было проще создать безлимитный Wi-Fi на любом из устройств Android, но это может быть полезно и для кого-то. - person user151496; 24.09.2015