我已经使用 bind9 设置了 DNS 服务器。目的是创建一个区域,这样开发人员就可以浏览他们的工作,只要 Apache2 配置中有匹配的虚拟主机,任何地方都可以something.dev.di
。something
这在我的 OSX 机器上按预期运行。但在 Windows 8.1 机器上测试时产生了令人困惑的结果。
我有一个虚拟主机,其中服务器名称设置是example_site.dev.di
- 这在 OSX 机器上运行良好,但在 Windows 机器上我得到“未找到服务器”。
因此我做了一些随机测试,发现几个地址在 OSX 上可以运行,但在 Windows 上却不行。
例如,在 OSX 上,test.dev.di 可以正常运行,它会按预期显示默认网站,因为没有等效的虚拟主机。但在 Windows 上,它会失败。
其他在 OSX 上运行但在 Windows 上运行不成功的示例:
something.dev.di
(但anything.dev.di
确实有效),,testing.dev.di
(a.dev.di
但y.dev.di
确实有效),实际上除了“t”和“y”以及数字 6 和 8 之外,所有单个字符都失败。
以下是我对 bind9 配置所做的唯一更改:
我在/etc/bind/named.conf.local
空白处添加了一些评论:
zone "dev.di" {
type master;
file "/etc/bind/db.dev.di";
};
我创建了一个名为的文件/etc/bind/db.dev.di
并输入以下内容:
;
; BIND data file for development server
;
$TTL 14400
@ IN SOA dev.di. root.dev.di. (
2014072001 ; Serial
86400 ; Refresh
7200 ; Retry
3600000 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS dev.di.
@ IN A 192.168.1.201
* IN A 192.168.1.201
@ IN AAAA ::1
我不知道如何解决这个问题,因为成功/失败似乎是如此随机。
答案1
嗯……令人困惑……我找到了解决这个问题的方法。我仍然不明白最初的问题是什么,但当我执行以下操作时,它就消失了:
我已经在用于测试的每台机器上设置了 DNS 服务器,因为我不想惹恼今天早上全力攻击互联网的“超级用户”。超级用户指的是我的妻子。
无论如何,当她离开她的机器时,我在路由器上设置了 DNS 服务器并从所有本地机器上删除了对它的引用,然后重新启动了一切。
现在它正常工作了。而且我的妻子甚至没有注意到我关闭了网络。我认为总体来说效果不错!