Как исправить переопределение Windows 7 DNS локального файла хостов?

В Windows 7 я столкнулся со следующей проблемой: разрешение имен использует результат поиска DNS, а не то, что есть в моем локальном файле hosts. Это отличается от предыдущих версий Windows. Какие есть обходные пути, чтобы исправить эту ошибку?

Пример:

Мой локальный файл hosts содержит следующие записи (я отключил IPv6):

#       ::1             localhost
127.0.0.1               localhost
127.0.0.1               svn.mydomain

Я могу пропинговать svn.mydomain и Windows 7 разрешает имя как 127.0.0.1, как и ожидалось.

Тем не менее, nslookup разрешает svn.mydomain как 192.168.4.105, который является записью, поступающей с сервера доменных имен моей офисной сети. Windows XP правильно возвращает 127.0.0.1. Я недавно переместил сервер на свой компьютер, поэтому svn.mydomain теперь разрешается через DNS, но не, когда я нахожусь за пределами офисной сети. Я бы предпочел не удалять этот хост из DNS.

Я специально поместил эту запись в хосты, чтобы я мог создать безопасный туннель к хранилищу Subversion на моем сервере (localhost -> svn.mydomain) независимо от моего сетевого подключения, и он настроен на ответ только через туннельное соединение. Эта ошибка сломала это решение, и я действительно хотел бы "решить" (да, каламбур намеревался) эту проблему.

Как сохранить разрешение имен в Windows 7 от переопределения записей узлов?

2 ответа

Решение

nslookup будет возвращать то, что на самом деле возвращают серверы имен (как следует из названия), но это не полная картина разрешения имен. Файл hosts имеет приоритет, и можно использовать netbios.

Как вы сказали, ping работает правильно, как и другие приложения, использующие функцию разрешения имен ОС. nslookupИгнорирование файла hosts не имеет значения.

NSLOOKUP не собирается просматривать ваш файл HOSTS... вы напрямую запрашиваете свой DNS-сервер. Следовательно, он вернет запись вашего DNS-сервера независимо от вашего локального файла HOSTS.

Другие вопросы по тегам