当我离线时,它停止工作,因为OS X清空resolv.conf的内容并忽略尝试反映此文件中的更改.@H_301_3@
任何想法,即使离线时如何配置DNS?@H_301_3@
类似问题(未解决):http://blog.steamshift.com/geek/leopard-lookupd-and-local-web-development-sites@H_301_3@
主要动机是轻松开发使用子域作为帐户密钥的RoR应用程序.并且您不能在/ etc / hosts中使用127.0.0.1 * .yourapp.local.有些人在127.0.0.1注册域名smackaho.st和srt DNS就像.smackaho.st但是,当你离线工作时你不能使用它.@H_301_3@
编辑:尝试过scutil命令,但似乎你可以在离线时更改DNS@H_301_3@
解决方法
我也喜欢在我的本地机器上使用Dnsmasq,我遇到了这个问题
太.这是解决方案:@H_301_3@
来自man 5的解析器:@H_301_3@
The configuration for a particular client may be read from a file having the format described in this man page. These are at present located by the system in the /etc/resolv.conf file and in the files found in the /etc/resolver directory.
/ etc / resolver /默认不存在;你必须自己创造它.@H_301_3@
也可以从手册页中找到:@H_301_3@
domain Domain name associated with this resolver configuration. This option is normally not @R_301_103@ by the Mac OS X DNS search system when the resolver configuration is read from a file in the /etc/resolver directory. In that case the file name is used as the domain name.
所以如果你想要dev的顶级域的所有dns查询
路由到本地名称服务器,您将:@H_301_3@
# mkdir /etc/resolver # echo 'nameserver 127.0.0.1' > /etc/resolver/dev
configd不会改变/ etc / resolver /中的文件,所以这个设置会
坚持通过网络更改和重新启动.@H_301_3@
更新2012年7月17日@H_301_3@
不幸的是,从OS X Lion开始,顶级解析器(如scutil所示)
–dns)在没有接口处于活动状态时消失:@H_301_3@
# scutil --dns # Online DNS configuration resolver #1 nameserver[0] : 127.0.0.1 ... resolver #8 domain : dev nameserver[0] : 127.0.0.1 # scutil --dns # Offline DNS configuration resolver #1 ... resolver #8 domain : dev nameserver[0] : 127.0.0.1
请注意,解析器#1为空,但派生了/ etc / resolver
nameserver条目仍然存在.@H_301_3@
事实证明,因为您可以直接指定解析器域
/ etc / resolver /文件,指定特殊的Internet根域.
导致创建一个全局解析器条目,如下所示:@H_301_3@
resolver #8 nameserver[0] : 127.0.0.1
现在所有DNS查询都会路由到localhost,即使在脱机时也是如此.@H_301_3@
当然,您仍然需要将所选域名解析为
127.0.0.1使用类似dnsmasq的–address选项:@H_301_3@
# dnsmasq --address=/dev/127.0.0.1
综上所述:@H_301_3@
>将所有网络接口dns服务器设置为127.0.0.1:@H_301_3@
networksetup -setdnsservers Ethernet 127.0.0.1 networksetup -setdnsservers Wi-Fi 127.0.0.1 ...
>创建文件/ etc / resolver / whatever:@H_301_3@
nameserver 127.0.0.1 domain .
>设置本地DNS服务器并开心.@H_301_3@
比照http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c@H_301_3@