Как мне обновить файл hosts на OS X?

75

Я пытаюсь разработать с использованием поддоменов на OSX, но не хочу перезагружать компьютер, чтобы обновить файл hosts. Обычно на Linux я бы сделал, /etc/init.d/networking restartно я не могу понять, как это сделать на OSX.

chrism2671
источник
Возможно, вам просто нужно очистить кеш вашего браузера.
ma11hew28

Ответы:

105

Вам не нужно. Просто sudo vim /etc/hostsизмените то, что вам нужно, и продолжайте. Ваши изменения будут применены мгновенно.

Если ping yourdomain.comвы по-прежнему получаете неверный IP-адрес, попробуйте очистить кэш DNS:

OSX 10.4 и ниже: lookupd -flushcache
OSX 10.5 + 10.6: dscacheutil -flushcache
OSX 10.7 + 10.8: sudo killall -HUP mDNSResponder
OSX 10.9 и выше: sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
OSX 10.12 и выше:sudo dscacheutil -flushcache

vzwick
источник
Для очистки кэша DNS, см.: Support.opendns.com/entries/…
Romans-8 --- 31-39
2
Убедитесь, что вы используете правильный порядок (IP-адрес, а затем DNS).
user1442960
@ user1442960 Это звучит так просто, но у меня был мозг пердит и добавил записи хоста, которые были неправильными. Как сказал vzwick, изменения вступили в силу немедленно, как только я их исправил.
Нейт Барбеттини,
OSX 10.12 здесь sudo dscacheutil -flushcacheбыло просто достаточно, чтобы очистить кеш
oski86
На MacOS 10.14.5 dscacheutil -flushcacheбыло достаточно
zengabor
4

Для El Capitan перейдите в приложение Terminal и введите:

sudo killall -HUP mDNSResponder

Источник

Supra888
источник
0

Из https://serverfault.com/questions/478534/how-is-dns-lookup-configured-for-osx-mountain-lion я понимаю, что / etc / hosts и /etc/resolv.conf больше не используются в OS X Sierra 10.12. * (И, возможно, ранее). Действительно, когда я попытался добавить хосты в / etc / hosts и сбросить кэш с помощью приведенных выше инструкций, хосты не были распознаны с помощью команды host. Однако пинг их распознает.

Команда networksetup заменяет «старый» способ работы или использует сетевой графический интерфейс. Например, чтобы указать DNS-серверы для использования:

sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4
Кевин Бухс
источник
-1

Вам нужно будет ввести команду, чтобы открыть текстовый редактор Nano. Вам также понадобится пароль администратора. введите sudo nano / etc / hosts и затем нажмите return. Введите пароль администратора и нажмите «Ввод».

Люк Рассвет
источник