
где я могу найти файл, содержащий IP-адрес DNS-сервера, который я использую на своем Mac?
Я попробовал папку /Network, но там ничего нет.
решение1
Используйте scutil --dns
, чтобы увидеть, как настроен DNS в macOS. Также посмотрите на networksetup -getdnsservers
и networksetup -setdnsservers
(и networksetup -listallnetworkservices
).
Современная macOS имеет сложную подсистему "scoped routing" для DNS-запросов, контролируемую системой "System Configuration" (configd, scutil, scselect), а также mDNSResponder. Это помогает справляться с современными сетевыми сценариями, например, когда у вас есть VPN-подключение к вашей работе, и DNS-запросы, относящиеся к доменным именам и IP-адресам вашей работы, должны проходить по VPN-туннелю, но все остальные DNS-запросы не должны проходить через VPN-туннель.
Для поддержки старых инструментов Unix (и старых фанатов Unix), которые ожидают найти IP-адрес DNS-сервера, указанный в /etc/resolv.conf, в macOS все еще есть этот файл, но он автоматически генерируется более современными подсистемами, о которых я упоминал выше. Редактирование этого файла не изменит конфигурацию основной подсистемы DNS-резолвера вашей системы. Редактирование этого файла, вероятно, изменит только то, какой DNS-сервер используется старыми инструментами Unix для отладки DNS, которые содержат собственный код DNS-резолвера вместо того, чтобы полагаться на системные вызовы (такие вещи, как nslookup(1)
и dig(1)
и, возможно host(1)
).