我刚刚注册了一个域名并支付了 CentOS 托管费用,我发现我必须按照冗长的步骤自己进行绑定http://www.linux-sxs.org/internet_serving/bind9.html
我想知道,有没有更简单的方法来进行这种绑定?我认为在 Apache 中配置 dns 名称就足够了,这是错误的吗?
任何反馈表示赞赏。
答案1
他们提供的步骤有效地设置了缓存名称服务:
zone "." {
type hint;
file "root.hints";
};
为 192.168.1.0/24 和 127.0.0.0/8 netblock 反向 DNS 区域提供 DNS 服务:
zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
allow-update { none; };
};
和
zone "1.168.192.in-addr.arpa" {
type master;
file "pz/192.168.1";
allow-update { none; };
};
它们都包含在视图中,以便只有来自这两个网络块的主机才能解析 DNS。它还从远程查询中隐藏了绑定的版本:
zone "." {
type hint;
file "/dev/null";
};
您可以通过添加以下内容来提供相同的内容:
127.0.0.1 localhost
192.168.1.1 localhost
并/etc/hosts
删除/停止任何现有的 BIND 服务。如果他们允许 DNS 查询(如果他们想要允许从根提示区域进行 DNS 递归,则必须这样做,以提供缓存名称服务器),那么您可以使用外部 DNS 提供商(例如 Google):
echo "nameserver 8.8.8.8" > /etc/resolv.conf
这也足以让 apache 确定其主机名并节省您创建绑定名称服务器的冗长过程。
[编辑]OP 已做出这些更改,但仍然存在问题。我怀疑这与原来的问题无关,所以会问一些额外的问题。
如果dig <domain-name>. @8.8.8.8
提供正确的详细信息,则您的外部 DNS 是正确的,并且很可能是内部 ip 配置/路由/防火墙。
show Interfaces的输出是否ifconfig
不止 127.0.0.1 和 192.168.1.1?如果只是这些,那么主机外部的某些东西会将您的地址 NAT 到您的外部 IP,并且还可能决定您所允许的开放端口。如果global-ip
是您的外部 IP 地址并出现在此列表中,则您可能需要编辑 Apache 配置以侦听该地址而不是 192.168.1.x。
你有iptables
安装类似的东西吗?显示什么iptables -nvL INPUT
? (这必须以 root 身份运行,或通过sudo
)。 IPTables 可能会阻止传入/传出请求。
[编辑2]OP 对 DNS 的工作原理很感兴趣。
YouTube 上的一位用户提供了基本 DNS 101 视频。它具有说明性和直接性,足以让您了解 DNS 的基础知识。
如果你真的想彻底了解DNS O'Reilly《Grashopper》一书DNS 和绑定第五版是一个极好的资源,还将教您如何与 BIND 结合使用。
答案2
许多域名注册商提供基本的 DNS 服务。如果他们这样做,那么您只需A
在他们的控制面板中添加一条记录即可。这不需要配置您自己的 DNS 服务器,其中bind
之一。除非您愿意花时间学习如何防止您的 DNS 服务器成为开放中继,否则我建议您使用注册商的服务。它还可以帮助您节省寻找某人提供备份 DNS 服务器的精力。
为域以及一个或多个子域配置 IP 地址是很常见的。如果我要为 注册一个网络服务器example.com
,我会A
为example.com.
和创建一个www.example.com.
。该表格可能不需要输入域。
如果您计划运行电子邮件服务器,则应创建其他记录类型,例如MX
、TXT
和SPF
。 SPF 记录通常创建为TXT
和SPF
类型,因为旧软件会查找TXT
记录。您还应该让您的 IP 地址供应商设置 PTR 记录,以匹配A
您的邮件服务器的记录。
对于非电子邮件域,您可能需要创建一条TXT
记录“v=spf1 -all”。如果可能,请创建具有相同内容的 SPF 记录。
如果您决定使用bind
,请查找有关设置拆分服务器的信息。另请查看有关如何防止在 Internet 上提供递归请求的信息。