我有基于 CentOS 的 VPS,目前我在其上运行基于 Web 的应用程序。最近我购买了一个域名,并想将此名称映射到我的 VPS。我认为购买域名后他们会处理 DNS 问题,将 IP 映射到名称只是一件轻而易举的事情。
但似乎我必须在自己的 VPS 上安装 DNS 服务器才能解析域名。我上网查了一下,大致了解了应该怎么做。我配置了必要的文件,但我认为部分内容不正确(或者我忽略了某个步骤)。以下是我执行的步骤:
- 已安装 BIND
- 配置named.conf
- 创建区域文件(正向和反向查找)
- 配置网络适配器(添加 dns2=127.0.0.1 和域名“example.ir”)
- 防火墙配置
长话短说,这是我的 example.ir.zone 文件的内容:
$ORIGIN examle.ir.
$TTL 86400
@ IN SOA ns2.example.ir. hostmaster.example.ir. (
199609203 ; Serial
28800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
IN NS ns2.example.ir.
IN MX 10 mail.example.ir.
IN A 127.0.0.1
ns2 IN A 127.0.0.1
ftp IN A 127.0.0.1
h88-150-136-1.host.redstation.co.uk IN A 127.0.0.1
mail IN CNAME h88-150-136-1.host.redstation.co.uk
www IN CNAME h88-150-136-1.host.redstation.co.uk`
请注意,我已经启动了命名服务,没有任何问题,但只能从 vps 内部看到我的域名,而不能从外部看到...
这可能看起来很新;但是有人可以给我指明正确的方向或者告诉我我做错了什么吗?!
答案1
有几件事:在绑定简写中,不以 a 结尾的主机名.
会附加区域名称。
如果您的区域是example.ir
条目mail
的简写mail.example.ir.
,并且您的 CNAME 记录实际上指向h88-150-136-1.host.redstation.co.uk.example.ir.
除非您尝试使用 127.0.0.1 来掩盖您的 ip 地址,否则在大多数情况下您不会将 DNS 记录指向本地主机,而是指向可路由的 ip 地址,例如88.150.136.1
(显示为 h88-150-136-1.host.redstation.co.uk 的 ip 地址。)