У меня проблема с разрешением DNS, которая влияет на производительность моего локально размещенного веб-сайта при просмотре его на моем локальном компьютере. Если я присоединяю DNS-суффикс моей сети к имени моей локальной машины, когда я перехожу к URL-адресу в моем браузере, сайт будет иметь ужасное время загрузки (в 100+ раз медленнее), чем без DNS-суффикса.
Я подумал, что могу исправить это, используя мой файл hosts, чтобы избежать необходимости поиска. Я добавил запись в свой файл hosts вот так
127.0.0.1 myMachine.MyDnsSuffix
Но это не изменило время загрузки даже после перезагрузки. Хотя решение этой конкретной проблемы не является важным, я действительно хотел бы знать Зачем Это случилось.
Кроме того, когда я запускаю nslookup в домене myMachine.MyDnsSuffix
, Я заметил, что он использует DNS-сервер моей сети для поиска IP. Может ли это быть связано с моей проблемой, или я просто неправильно понимаю, как работает nslookup?
Я считаю, что nslookup используется для тестирования самого DNS-сервера, а не для использования вашего файла HOSTS. http://support.microsoft.com/kb/200525 кажется, указывает на это.
Попробуйте просто пинговать. Делает ping myMachine.MyDnsSuffix
разрешить адрес обратной связи, указанный в файле HOSTS?
Поиск DNS не использует файл hosts. Когда-либо.
Хорошо, новый подход. Давайте очистим ваш IP и кеш NETBIOS. ipconfig /flushdns
и nbtstat -R
. Затем запустите сниффер пакетов, например Wireshark, и выполните эхо-запрос, пока он работает.
Из захвата пакета мы хотим узнать, A) исходит ли DNS-запрос, и если да, то какое имя он запрашивает. Б) Если идет запрос NETBIOS. Возможно, это имя разрешается через NETBIOS вместо правильного DNS.
Если мы не видим ничего из вышеперечисленного, несмотря на то, что вы очищаете свой кеш, вероятно, имя извлекается либо с хостов, либо с lmhosts.
Некоторые люди на веб-форумах утверждают, что создание нового файла hosts и перезапуск клиентской службы DNS решает проблему, но я не уверен, почему это сработает, если вы уже пытались перезагрузить компьютер.
Я понимаю, что это не так, но в записи файла hosts нет никаких связанных с Microsoft слов, таких как MSDN, Microsoft или MSN? Microsoft написала dnsapi.dll, чтобы игнорировать записи файлов хостов, соответствующие определенным именам. Например, если я добавлю следующую запись, Windows пропустит ее и разрешит оба имени хоста в записи с помощью DNS:
127.0.0.1 www.microsoft.com www.mysite.com
При использовании полного DNS-имени ваш браузер пытается пройти через ваш прокси-сервер - щелчок для IE.
Файл hosts или порядок разрешения имен не имеют ничего общего с этой проблемой, и гнойную рану на тыльной стороне человечества, то есть файл hosts, нужно вынуть и шумно выстрелить.
http://geekswithblogs.net/JanS/archive/2009/06/17/beware-of-spacing-in-windows7-hosts-file.aspx
Похоже, это настоящая причина. Предоставьте Microsoft возможность внезапно и без предупреждения проигнорировать соглашение 25-летней давности.
http://www.tweaksforgeeks.com/windows7/2011/02/windows-7-hosts-file-ignored <- Работай на меня!