我希望在我的本地测试服务器(Win XP)上运行 example.com。为此,我能够为 example.com 设置 BIND 和配置区域。本地 DNS 服务器和本地 Apache Web 服务器都运行良好。但是,当我在浏览器上尝试 example.com 时,它会将我带到原始 example.com 而不是本地版本。
那么我在这里错过了什么?为什么 example.com 不能指向 Apache 中的本地版本。
example.com 的区域记录
$TTL 3h
example.com. IN SOA ns1.example.com. ns2.example.com. (
1 ; Serial
3h ; Refresh after 3 hours
1h ; Retry after 1 hour
1w ; Expire after 1 week
1h ) ; Negative caching TTL of 1 hour
;
; Name servers
;
example.com. IN NS ns1.example.com.
;
; Addresses for the canonical names
;
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
- ISC BIND 服务正在运行。
- 阿帕奇正在运行。
- 挖掘@192.168.1.2 example.com - 显示预期结果。
- 将我的主 DNS 更改为 192.168.1.2
- 不使用任何代理。一切都在同一个盒子里工作。浏览器、DNS 和 Apache。
如何使本地 example.com 工作?
更新:我试过 -nslookup example.com
得到以下回应 -
;; Got recursion not available from 192.168.1.2, trying next server
Server: 4.2.2.2
Address: 4.2.2.2#53
Non-authoritative answer:
Name: example.com
Address: 208.77.188.166
对于 nslookup 192.168.1.2 我得到了 -
;; Got recursion not available from 192.168.1.2, trying next server
;; Got recursion not available from 192.168.1.2, trying next server
Server: 4.2.2.2
Address: 4.2.2.2#53
** server can't find 2.1.168.192.in-addr.arpa.: NXDOMAIN
因为Dig example.com
,我得到了——
; <<>> DiG 9.6.1 <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 494
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;example.com. IN A
;; AUTHORITY SECTION:
example.com. 3600 IN SOA ns1.example.com. ns2.example.com. 1 10800 3600 604800 3600
;; Query time: 15 msec
;; SERVER: 192.168.1.2#53(192.168.1.2)
;; WHEN: Sat Jul 04 17:05:05 2009
;; MSG SIZE rcvd: 73
您的网络浏览器是否有可能使用一些代理而不是直接互联网连接?
可能不是——但仍然值得一问。
当您在使用网络浏览器的计算机上启动它时,您的 windows nslookup会说什么?它是否说 192.168.1.2 是唯一的 dns 服务器?当您输入 example.com 作为查询时会发生什么?
[编辑:我是盲人..这个应该解决问题]添加
到您的绑定区域文件,更改序列号并重新加载绑定。
您刚刚安装和配置的 DNS 服务器 (BIND) 是权威名称服务器。这很好,但您不能将它用作递归名称服务器,这是您在“将我的主 DNS 更改为 192.168.1.2”时所做的。因此,nslookup 的尖叫声“从 192.168.1.2 获得递归不可用,尝试下一个服务器”。
权威名称服务器是……对某些域(此处为 )具有权威性,但
example.com
不是通用解析服务器。为此,您需要一个递归名称服务器。两种解决方案:
使您的 BIND 名称服务器为您的本地机器递归。(基本上,这意味着
recursion yes;
在视图中添加一个,或者确保您的 BIND 仅侦听本地 IP 地址。)请注意,让名称服务器既具有递归性又具有权威性是不好的做法,但是对于仅用于个人计算机的测试,没什么大不了的。告诉常规递归它必须
example.com
为您的机器转发请求。我不能说更多,这取决于谁管理它,它运行什么软件等。我同意 pQd,您也可以运行诸如wireshark之类的工具来查看哪里出错了。
如果您使用的是代理服务器,请暂时禁用代理服务器并选择直接连接到 Internet 并打开 example.com。(不要打开 www.example.com)
如果直接连接到 Internet 选项一切正常。然后重新启用代理服务器并把不使用代理
在 Firefox 中或放置绕过代理
127.0.0.1,localhost,*.example.com
在 Internet Explorer 中。
尝试从同一台机器进行 nslookup 时出现此错误。我
named.conf.options
看起来像这样:我不知道为什么,因为我认为 nslookup 请求无论如何都要通过我的 ipv6 网络。但是添加 localhost 和 localnets 为我解决了这个问题: