我有一台安装了 CentOS 5.9 32 位的 OpenVZ VPS 服务器。我还从本地提供商 (masterwebnet.com) 购买了域名 sehattotal.com。目前 sehattotal.com 托管在 hostgator.com 上。
我的目的是在 VPS 服务器中创建 DNS 服务器并将我的域名指向它。
因此我尝试在我的服务器中像这样配置 Bind9:
/etc/named.conf:
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
allow-transfer { localhost; 0.0.0.0; };
recursion no;
dnssec-enable yes;
dnssec-lookaside . trust-anchor dlv.isc.org.;
};
logging
{
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.root";
};
zone "localdomain." IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost." IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa." IN {
type master;
file "named.local";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa." IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa." IN {
type master;
file "named.zero";
allow-update { none; };
};
zone "sehattotal.com" IN {
type master;
file "sehattotal.com.zone";
allow-update { none; };
};
include "/etc/rndc.key";
/var/named/chroot/var/named/sehattotal.com.zone:
$TTL 86400
@ IN SOA ns1.sehattotal.com. root.sehattotal.com. (
2013122901 ;Serial
21600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ) ;Minimum TTL
@ IN NS ns1.sehattotal.com.
ns1 IN A 116.251.208.167
当我尝试启动命名服务时没有错误。
问题我认为它不起作用,因为我无法 ping ns1.sehattotal.com。
有什么建议吗?
笔记: 目前 sehattotal.com 有 NS2227.HOSTGATOR.COM 和 NS228.HOSTGATOR.COM 我仍然无法将其更改为 NS1.SEHATTOTAL.COM,因为当我 ping 到 NS1.SEHATTOTAL.COM 时它返回:
Ping 请求无法找到主机 ns1.sehattotal.com。请检查名称并重试。
答案1
您的提供商尚未正确委派区域:
[me@risby tmp]$ whois sehattotal.com
[Querying whois.verisign-grs.com]
[Redirected to whois.tucows.com]
[Querying whois.tucows.com]
[whois.tucows.com]
Domain Name: SEHATTOTAL.COM
[...]
Name Server: NS2227.HOSTGATOR.COM
Name Server: NS2228.HOSTGATOR.COM
和
[root@bill ~]# dig NS2227.HOSTGATOR.COM
[...]
;; ANSWER SECTION:
NS2227.HOSTGATOR.COM. 43200 IN A 192.254.235.98
[...]
[root@bill ~]# dig NS2228.HOSTGATOR.COM
[...]
;; ANSWER SECTION:
NS2228.HOSTGATOR.COM. 43200 IN A 192.254.235.99
[...]
由于这两者都不是您为 设置的 IP 地址ns1
,即116.251.208.167
,我认为委派是不正确的。
仅仅注册域名和设置名称服务器并不能神奇地将两者联系起来:必须告诉全世界,当它查找域名时,它应该使用您的名称服务器(是的,即使您只是两次列出相同的地址,也需要两个名称服务器)。这是您的注册商(在本例中为 tucows)提供的粘合剂。
我会把这个问题投票否决为“没有表现出任何研究努力“,但您很好地给出了完整的域名和地址,并且没有在问题中隐晦任何内容。谢谢您 - 这并没有让回答变得更容易。
答案2
似乎你缺少反向 DNS 区域,
还要在 resolve.conf 文件中添加 dns 服务器的 ip
不要忘记在防火墙中允许 DNS 流量
iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT
将 eth0 更改为监听 ip 的接口,或者只是为了测试目的,使用以下命令停止防火墙
service iptables stop
然后启动命名的服务。
下面有一个很好的指南,您只需要设置主 DNS 部分。
http://www.unixmen.com/dns-server-installation-step-by-step-using-centos-6-3/