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

前端之家收集整理的这篇文章主要介绍了domain-name-system – 即使没有Internet连接,也可以在OS X上设置DNS服务器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经安装了,配置了DNS服务器(Dnsmasq的本地实例),它根据需要解析为localhost,一切正常.

当我离线时,它停止工作,因为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@

注意:当您关闭所有接口时,无法在Pref中设置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@

原文链接:https://www.f2er.com/html/229966.html

猜你在找的HTML相关文章