微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

domain-name-system – 即使没有Internet连接,也可以在OS X上设置DNS服务器

我已经安装了,配置了DNS服务器(Dnsmasq的本地实例),它根据需要解析为localhost,一切正常.

当我离线时,它停止工作,因为OS X清空resolv.conf的内容并忽略尝试反映此文件中的更改.

任何想法,即使离线时如何配置DNS?

类似问题(未解决):http://blog.steamshift.com/geek/leopard-lookupd-and-local-web-development-sites

主要动机是轻松开发使用子域作为帐户密钥的RoR应用程序.并且您不能在/ etc / hosts中使用127.0.0.1 * .yourapp.local.有些人在127.0.0.1注册域名smackaho.st和srt DNS就像.smackaho.st但是,当你离线工作时你不能使用它.

编辑:尝试过scutil命令,但似乎你可以在离线时更改DNS

注意:当您关闭所有接口时,无法在Pref中设置DNS服务器.面板.

解决方法

请看下面的更新!

我也喜欢在我的本地机器上使用Dnsmasq,我遇到了这个问题
太.这是解决方案:

来自man 5的解析器:

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 /认不存在;你必须自己创造它.

也可以从手册页中找到:

domain
  Domain name associated with this resolver configuration. This
  option is normally not required 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查询
路由到本地名称服务器,您将:

# mkdir /etc/resolver
# echo 'nameserver 127.0.0.1' > /etc/resolver/dev

configd不会改变/ etc / resolver /中的文件,所以这个设置会
坚持通过网络更改和重新启动.

更新2012年7月17日

不幸的是,从OS X Lion开始,顶级解析器(如scutil所示)
–dns)在没有接口处于活动状态时消失:

# 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条目仍然存在.

事实证明,因为您可以直接指定解析器域
/ etc / resolver /文件,指定特殊的Internet根域.
导致创建一个全局解析器条目,如下所示:

resolver #8
  nameserver[0] : 127.0.0.1

现在所有DNS查询都会路由到localhost,即使在脱机时也是如此.

当然,您仍然需要将所选域名解析为
127.0.0.1使用类似dnsmasq的–address选项:

# dnsmasq --address=/dev/127.0.0.1

综上所述:

>将所有网络接口DNS服务器设置为127.0.0.1:

    networksetup -setdnsservers Ethernet 127.0.0.1
    networksetup -setdnsservers Wi-Fi 127.0.0.1
    ...

>创建文件/ etc / resolver / whatever:

    nameserver 127.0.0.1
    domain .

>设置本地DNS服务器并开心.

比照http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c

原文地址:https://www.jb51.cc/html/229966.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐