iMac не может разрешить DNS (или найти маршрут к хосту?) для некоторых сайтов, а Windows может?

iMac не может разрешить DNS (или найти маршрут к хосту?) для некоторых сайтов, а Windows может?

В моей домашней сети есть пара ПК на базе Windows, у которых нет известных проблем с DNS, но с моим OSX iMac у меня проблемы с разрешением нескольких случайных доменов. Вот некоторые домены, с которыми у меня проблемы:

  • ehow.com
  • about.com
  • nationalshoppingservice.com

Помимо того, что смотришь на/etc/хостыфайл (который, я думаю, в порядке), что мне следует проверить на iMac на предмет проблем, связанных с DNS, или какие инструменты мне следует использовать для диагностики проблемы, с которой я столкнулся?

Используя команду dig я получаю:

; <<>> DiG 9.4.3-P3 <<>> @4.2.2.2 www.nationalshoppingservice.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3468
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.nationalshoppingservice.com. IN    A

;; ANSWER SECTION:
www.nationalshoppingservice.com. 14400 IN A 64.40.111.81

;; Query time: 86 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Apr 12 18:22:42 2011
;; MSG SIZE  rcvd: 65

Попробовав некоторые из предложений, я пришел к выводу, что проблема не в DNS... когда я сделал пинг www.nationalshoppingservice.com, вот что я получил:

PING www.nationalshoppingservice.com (64.40.111.81): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host

Так что это выглядит так, как будто DNS разрешается, но маршрут к хосту не может быть найден? Что здесь происходит?

решение1

Командная строка будет вашим другом. Во-первых, у вас может вообще не быть проблем с DNS. Сначала вам нужно определить это. Лучший инструмент для этой работы — dig. Откройте терминал и введите

dig @4.2.2.2 ehow.com

Компоненты этой команды:

dig          :   the command
@4.2.2.2     :   this tells dig where to ask.  We are specifically asking a
                 known provider in this case Level3.  You could easily put
                 8.8.8.8 (Google) or any other provider here.
ehow.com     :   the domain you wish to query for.

Вы получите ответ вроде:

; <<>> DiG 9.7.2-P2 <<>> @4.2.2.2 ehow.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43699
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ehow.com.          IN  A

**;; ANSWER SECTION:
ehow.com.       118 IN  A   98.124.249.20**

;; Query time: 1 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Mon Apr 11 01:51:12 2011
;; MSG SIZE  rcvd: 42

РАЗДЕЛ ОТВЕТА — важная часть. Если вы получите ответ, то вы знаете, что ваш iMac в порядке и он может «получить» доступ к этому домену.

Следующий шаг — заменить @4.2.2.2 на IP или имя хоста вашего обычного DNS-сервера. Обычно это предоставляется вам вашим интернет-провайдером. Если вы получаете тот же ответ, то вы знаете, что DNS не является вашей проблемой, и вы можете начать искать в другом месте. Вы также должны выполнить эти тесты несколько раз, чтобы убедиться, что вы получаете хорошее время отклика. Если вы когда-либо получите:

;; connection timed out; no servers could be reached

Тогда вы знаете, что не получаете ответ. Если это происходит периодически, вы можете заметить это больше на iMac, чем на машинах с Windows из-за кэширования. По моему опыту, машины с Windows кэшируют ответы DNS дольше, чем Mac.

решение2

Для устранения неполадок DNS в Mac OS X вам придется использовать как традиционный инструмент поиска DNS Unix, такой как (выберите один:) host, digи nslookup, а также современный инструмент, который вызывает API поиска DNS, специфичные для Mac OS X, например dns-sd -Q, .

API поиска DNS, которые вызывает большинство приложений Cocoa, маршрутизируются через mDNSResponderдемон, а это значит, что если у ваших приложений с графическим интерфейсом возникают проблемы с поиском DNS, dns-sd -Qвы, вероятно, увидите то же самое.

Традиционные инструменты поиска DNS в Unix используют более традиционный код преобразователя DNS в Unix, что означает, что они могут разрешать вещи, которые приложения Cocoa не могут (и наоборот).

Если вы можете что-то найти с помощью , digно не с помощью dns-sd, то вы можете попробовать завершить работу mDNSResponderдемона и позволить launchdему автоматически перезапуститься (я обнаружил, что HUPping mDNSResponder не всегда достаточно).

sudo killall mDNSResponder

решение3

Установлено ли на вашем iMac программное обеспечение для блокировки IP-адресов или что-то подобное?

Также попробуйте зайти в «Настройки»->«Сеть»->«Дополнительно»->«DNS» и сбросить записи DNS; избавьтесь от всех ненужных записей.

Если это не сработает, попробуйте (временно) создать новую учетную запись на своем iMac или войти в другую учетную запись и посмотреть, сможете ли вы получить доступ к веб-сайтам с них.

решение4

Чтобы что-то проверить, вы можете перейти в Preferences->Network->Advanced->DNS и добавить запись DNS для публичного DNS Google 8.8.8.8. Если это решит проблему, то вам придется выяснить, какие настройки DHCP использует ваш маршрутизатор при раздаче IP-адресов и информации DNS. Если ваш маршрутизатор получает информацию DNS от вашего интернет-провайдера, то это может быть вашей проблемой, возможно, просто медленный ответ. Вам не обязательно использовать настройки DNS вашего интернет-провайдера.

Я часто использую 8.8.8.8 для тестирования, но в основном использую OpenDNS для дополнительного контроля.

надеюсь, это поможет

Связанный контент