У меня проблема с DNS, которая влияет на производительность моего локально размещенного веб-сайта при его просмотре на локальном компьютере. Если я присоединяю DNS-суффикс своей сети к имени локального компьютера, когда перехожу по URL-адресу в браузере, сайт загружается ужасно (в 100 и более раз медленнее), чем без DNS-суффикса.
Я думал, что смогу это исправить, используя файл hosts, чтобы избежать необходимости поиска. Я добавил запись в мой файл hosts, как это
127.0.0.1 myMachine.MyDnsSuffix
Но это не изменило время загрузки даже после перезагрузки. Хотя это и не важно для решения этой конкретной проблемы, мне бы очень хотелось узнать, почему это происходит.
Кроме того, когда я запускаю nslookup в домене myMachine.MyDnsSuffix
, я замечаю, что он использует DNS-сервер моей сети, чтобы найти IP. Может ли это быть связано с моей проблемой, или я просто неправильно понимаю, как работает nslookup?
источник
nslookup
. Я просто попытался пропинговать его,myMachine.MyDnsSuffix
и он разрешил мой IP в сети, а не127.0.0.1
как указано в моем файле HOSTS.ipconfig /flushdns
, И кеш NETBIOS тожеnbtstat -R
. (Чувствительно к регистру в окнах - WTF, почему?!?)DNS-поиски не используют файл hosts. Когда-либо.
источник
gethostbyname()
Может проходить через файл hosts или через DNS, но специфичный для DNS поиск (как выполняетсяnslookup
) не будет использовать файл 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:
источник
HOSTS
файл, но даже домен не-MS игнорируется, если он разделяет запись с доменом MS? Это просто плохое программирование с их стороны. Это определенно то, на что нужно обратить внимание, если «минимизировать»HOSTS
файл.При использовании полного DNS-имени ваш браузер пытается пройти через ваш прокси-сервер - кликните для IE .
Хост-файл или порядок разрешения имен не имеют ничего общего с этой проблемой, и яростная рана на обратной стороне человечества, которая является файлом хостов, должна быть удалена и шумно убита.
источник
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 <- Работай на меня!
источник