如何在OS X上刷新主机文件?


75

我正在尝试使用OSX上的子域进行开发,但不想重新启动计算机以刷新主机文件。通常在linux上我会这样做,/etc/init.d/networking restart但是我不知道如何在OSX上这样做。


您可能只需要清除Web浏览器的缓存。
ma11hew28

Answers:


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



2
确保您显然也使用正确的顺序(IP地址,然后是DNS)。
user1442960 2014年

@ user1442960听起来很简单,但是我放屁了,并添加了不正确的主机条目。正如vzwick所说,所做的更改会在我更正后立即应用。
Nate Barbettini

OSX 10.12在这里sudo dscacheutil -flushcache仅足以清除缓存
oski86

在MacOS 10.14.5上dscacheutil -flushcache就足够了
zengabor

4

对于El Capitan,请转到“终端”应用程序,然后输入:

须藤killall -HUP mDNSResponder

资源



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命令无法识别主机。但是,ping确实可以识别它们。

networksetup命令替代了“旧的”处理方式,或使用了网络GUI。例如,指定要使用的dns服务器:

sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

-1

您将需要输入命令以打开Nano文本编辑器。您还将需要您的管理员密码。键入sudo nano / etc / hosts,然后按回车键。输入管理员密码,然后按回车键。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.