Как в OS X найти самый быстрый DNS для вашей сети
Скорость работы интернета зависит не только от ограничений вашего тарифного плана, но и от скорости работы DNS серверов. DNS сервера это такие таблицы, в которых содержится информация об IP адресах запрашиваемого вами сайта.
Как только вы вводите в Safari адрес любимого «apple.com» ваш компьютер обращается к DNS серверу, чтобы узнать по какому IP адресу находится этот сайт, этот запрос занимает считанные мгновения, но если в вашем Mac прописаны не самые быстрые DNS адреса, то ваш интернет может работать не так быстро, как хотелось бы. Например, при попытке открыть какой-то любимый сайт он открывается медленно или с задержками.
Как посмотреть текущий DNS сервер в OS X
Откройте Системные настройки / Сеть / Wi-Fi (или Ethernet, в зависимости от вашего типа подключения к интернету) / Дополнительно / DNS. В нашем случае DNS сервером по умолчанию назначен 10.0.1.1 (выданный AirPort Express).
Как подобрать самый быстрый DNS в OS X
Сотрудники компании Google 20% своего рабочего времени тратят на личные проекты, благодаря чему они создали бесплатное приложение namebench, которое позволяет протестировать все доступные DNS сервера и выбрать самый быстрый именно для вашего интернета.
Скачайте и запустите namebench и в появившемся окне в разделе Query Data Source выберите Cache Latency Test (50% hit, 50% miss) (5000), нажмите кнопку Star. Остальные настройки можно не менять. Пока идет тестирование желательно не пользоваться интернетом, чтобы не мешать результатам анализа. После того, как анализ вашей линии завершен в браузере откроется веб-страница с результатами тестов.
В нашем случае namebench определило, что использование OpenDNS-2 будет быстрее на 169%, по сравнению с текущим DNS сервером. В таблице справа namebench отображает три DNS сервера, которые нужно прописать в настройках OS X именно в таком же порядке.
Откройте Системные настройки снова / Сеть / Wi-Fi / Дополнительно / DNS / и с помощью кнопки + введите рекомендованные утилитой DNS адреса. После ввода новых адресов, закройте системные настройки и новые параметры будут сразу применены.
Источник
Где найти настройки DNS в MacOS
Недавно передо мной встала задача отладить процесс резолва DNS имен в MacOS. Полноценного материала, о том как именно он происходит, я не нашел, пришлось собирать информацию самому.
Вот что удалось выяснить.
За задачи, связанные с DNS в macOS, отвечает демон по имени mDNSResponder. В его жизни встречались приключения — на его смену приходил демон discoveryd (Yosemite), который много что поломал и создал кучу проблем. Через год Apple опомнилась и вернула (El Capitan) проверенный mDNSResponder, что сразу починило около 300 багов и вернуло стабильность.
mDNSResponder является частью Bonjour — набора технологий нацеленных на работу устройства в сети без необходимости конфигурации, включает в себя поиск сервисов, автоназначение адреса и резолв имен. Именно Bonjour используется когда вы достаете свой iPhone и ищете Apple TV или принтер.
У Bonjour открытый исходный код, и у mDNSResponder соответственно тоже. Это упрощает задачу, если вам нужно докопаться до конечной истины и показать все что скрыто. В архиве уже есть готовые реализации под Windows, Posix и VxWorks.
Демон обрабатывает unicastDNS и multicastDNS. UnicastDNS — это обычный DNS к которому мы привыкли и знаем. MulticastDNS — это протокол для использования DNS в локальных сетях, не требующий сервера. Если устройству нужно кого-то найти — оно отправляет вопрос — «question» мультикаст пакетом и получает ответ от устройства с запрошенным именем (если оно конечно существует). Сам протокол подробно описан в одноименном RFC.
Именно особенностями MulticastDNS злоупотребляет Responder — софт для атак в локальной сети. После запуска он коварно начинает отвечать на все mDNS запросы, заманивая ничего не подозревающих жертв в свои лапы.
Это было лирическое отступление — а теперь к главному вопросу — как увидеть текущий DNS кеш и общий статус DNS настроек.
Итак, выполняем следующие шаги:
- В терминале пишем:
эта команда позволит нам увидеть вывод, иначе он будет спрятан под заглушкой private
Открываем console, выбираем наш девайс:
и в фильтре пишем mDNSResponder
Выполняем в терминале:
Открываем обратно console и получаем прекрасный вывод, который мы сейчас немного разберем:
Статус DNS настроек представляет из себя большое полотно, разделенное на секции. Наиболее интересные из них:
Cache — здесь непосредственно хранится DNS cache:
Содержимое файла /etc/hosts — на всякий случай:
Статистика по mDNS — дубликаты имен, количество пакетов, события интерфейсов:
Список сетевых интерфейсов:
Список DNS серверов:
Мир внутренних и внешних взаимодействий подсистем MacOS обширен и полон загадок. Работа с доменными именами — лишь его маленькая часть. Для дальнейшего чтения рекомендую:
- Официальную документацию Apple
- Блог malware исследователя и *OS энтузиаста Patrick Wardle
- Сайт и книги исследователя и практика *OS Johnatan Levin
Источник
Ввод настроек DNS и поискового домена на Mac
Сервер DNS сопоставляет доменные имена и IP-адреса. При использовании совместно с поисковыми доменами он позволяет быстро перейти на веб-сайт или на сервер, который Вы посещаете часто, не вводя весь адрес целиком.
Например, если задать домен поиска «apple.com», и ввести «store», веб-браузер перейдет на сайт store.apple.com. Или, если в качестве домена поиска используется campus.university.edu, можно ввести «server1» в диалоговом окне Finder «Подключиться к серверу», чтобы подключиться к server1.campus.university.edu.
На Mac выберите меню Apple
> «Системные настройки», затем нажмите «Сеть».
В списке слева выберите сетевое подключение, которое Вы хотите использовать (например, Wi-Fi или Ethernet), затем нажмите «Дополнительно».
Нажмите «DNS», затем нажмите «Добавить» под списком DNS-серверов. Введите адрес IPv4 или IPv6 для DNS-сервера.
Нажмите кнопку «Добавить» под списком «Домены поиска», затем введите домены поиска, например apple.com.
Когда готовы, нажмите «ОК».
Домены будут найдены в том порядке, в котором они перечислены. Поиск будет прекращен, когда подходящее имя найдено.
Источник
Поднимаем локальный DNS сервер под Mac OS X
Есть в Mac OS небольшая проблемка. Если у нас имеется несколько VPN соединений и у каждого свой DNS, иногда при разрыве соединения DNS либо вообще теряется, либо подставляется неправильный. Как-либо решить это через настройки ОС не получается. Поэтому было придумано решение: свой собственный DNS. Во-первых, мы получаем полную независимость от DNS провайдера. Все адреса будут резолвиться на локальной машине и кешироваться. Что еще и добавит скорости. Во-вторых, мы можем как угодно рулить внешними DNS серверами.
DNS сервер уже включен в состав ОС. Это и неудивительно, поскольку ядро юниксовое. Называется он bind и нам лишь надо его настроить и активировать. Инструкцию по настройке bind я позаимствовал вот здесь:
Во-первых, нам нужно создать секретный ключ, по которому bind будет опознавать хосты, которые к нему подключаются. По идее, нам он не нужен, так как мы подключаемся с локальной машины и не выставляем его наружу. Однако, без этого bind работать не будет.
Для простоты открываем shell с правами рута:
# rndc-confgen > /etc/rndc.conf
# head -n 6 /etc/rndc.conf > /etc/rndc.key
Далее нам нужно отредактировать файл конфигурации bind. Находится он в /etc/named.conf. Редактировать можно любым редактором, но при этом он должен быть запущен из под root. Например:
# sudo nano /etc/named.conf
Дальше нам нужно прописать DNS сервера для тех доменов, которые мы не знаем и которые находятся за VPN. Предположим, у нас есть домен office.local, который должен резолвиться через DNS сервер по адресу 192.168.0.50:
zone «office.local» <
type forward;
forward only;
forwarders < 192.168.0.50; >;
>;
Если мы хотим все-таки использовать DNS сервер провайдера (хотя непонятно, зачем это может быть нужно), то добавляем вот такую запись:
forwarders <
x.x.x.x;
x.x.x.x;
>;
Вместо x.x.x.x вписываем адреса DNS серверов провайдера.
Но это полдела. Теперь нам надо, чтобы bind запускался при старте системы, а также чтобы система им пользовалась. Второе делается очень просто через настройки сети — удаляем оттуда DNS провайдера и вместо него вписываем 127.0.0.1.
# cd /System/Library/StartupItems
# mkdir BIND
# cd BIND
# touch BIND; pico -w BIND
Перед нами текстовый редактор. Вводим туда следующий текст:
if [ «$
ConsoleMessage «Starting BIND DNS Server»
/usr/sbin/named
fi
Сохраняем файл, выходим из редактора.
# touch StartupParameters.plist; pico -w StartupParameters.plist
Опять попадаем в текстовый редактор, вводим текст:
<
Description = «Local Caching DNS Server»;
Provides = («DNS Server»);
OrderPreference = «None»;
Messages =
<
start = «Starting BIND DNS Server»;
stop = «Stopping BIND DNS Server»;
>;
>
Даем скрипту права на исполнение:
# chmod +x BIND
Запускаем bind при старте системы:
# pico -w /etc/hostconfig
Добавляем в этот файл запись:
DNSSERVER=-YES-
# sudo /System/Library/StartupItems/BIND/BIND
Источник
Указание DNS-сервера для Mac
Система доменных имен (DNS) преобразует интернет-имена в IP-адреса, поэтому Вам не обязательно знать IP-адрес запрашиваемого сервера. Например, благодаря DNS‑серверу Вы можете зайти на сайт Apple, введя «www.apple.com» в браузере: Вам не нужно знать IP‑адрес сервера, на котором расположен сайт Apple. В большинстве случаев компьютер подключается к DNS-серверу автоматически, когда Вы подключаетесь к Интернету, но параметры DNS-сервера можно ввести и вручную.
Чтобы определить, нужно ли Вам подключаться к какому-то конкретному серверу DNS, и узнать его адрес, обратитесь к интернет-провайдеру или к администратору сети.
На Mac выберите меню Apple
> «Системные настройки», затем нажмите «Сеть».
В списке слева выберите службу, которую Вы используете для подключения к Интернету (например, Ethernet).
Убедитесь, что IP-адрес для DNS-сервера, который Вы хотите использовать, введен корректно в поле «DNS-сервер». Если адрес указан неправильно, нажмите «Дополнения», нажмите DNS, затем введите правильный адрес.
Вы можете ввести адреса для нескольких серверов, используя запятую между адресами при вводе.
Если при попытке посетить веб-сайт Вы получили сообщение «сервер не найден», Ваш компьютер, вероятно, не может соединиться с DNS-сервером. Если сервер DNS выбирался вручную, Вы могли неверно указать его адрес или на указанном сервере DNS могли возникнуть неполадки.
Источник