我在使用域将域与服务器连接时遇到了一些困难。首先,我使用的是 Debian Linux(当然实际上是 Raspbian,因为服务器在 Raspberry Pi 3 上运行)。
假设我的域名是 lalala.co.kr(从域名提供商处购买),我的 IP 是 1.1.1.1。我发现 Raspberry Pi 可以有一个 DNS 服务器,但我不认为 DNS 会帮助与这些(域名和 IP)建立连接。
解释一下,我的域名提供商有一些“名称服务器”。他们为域名提供了“更改名称服务器”选项,如果我使用他们的“名称服务器”并为“名称服务器托管”创建一些 A 记录,那么我就可以与这些服务器建立连接。
但是我无法想出在 Raspberry Pi 自己的系统中配置“名称服务器”并创建 A 记录。
假设域名提供商的名称服务器 IP 是 2.2.2.2。我该如何解决这个问题?我不想使用域名提供商的默认名称服务器配置,因为这会导致一些费用。我对一些网络概念感到困惑。我将不胜感激一些解决这个问题的直觉。可以使用直接 IP 连接来连接服务器(这意味着服务器对外开放一些 Web 端口和 DNS 端口)。
如果我提供的信息不够,请要求提供。
答案1
我认为 DNS 无助于与这些(域和 IP)建立连接。
这实际上就是 DNS 所做的。
解释一下,我的域名提供商有一些“名称服务器”。他们为域名提供了“更改名称服务器”选项,如果我使用他们的“名称服务器”并为“名称服务器托管”创建一些 A 记录,那么我就可以与这些服务器建立连接。
但是我无法想出在 Raspberry Pi 自己的系统中配置“名称服务器”并创建 A 记录。
“名称服务器”是DNS 服务器。您可以使用 BIND 9、PowerDNS、Knot 或 NSD 等软件来托管您自己的名称服务器。
首先安装 DNS 服务器软件并为您的域创建一个新的“区域”。
创建一个包含 A/AAAA/NS/等记录的“区域文件”。不要忘记添加指向 Pi 主机名的 NS 记录。例如:
$ORIGIN example.com. @ SOA ... @ NS mypi mypi A 192.0.2.1 mypi AAAA ...
(有些程序可以将 DNS 记录保存在数据库中,如果你愿意的话,但几乎所有程序都支持简单的基于文本的格式。
使用诸如
dig @<your_ip> example.com
或 之类的命令从外部进行测试nslookup example.com <your_ip>
。转到域名注册商的“更改名称服务器”页面,然后在那里输入 Pi 的主机名(例如
mypi.example.com
)。由于它位于同一个域下,因此还需要同时输入其 IP 地址,从而创建“粘合记录”。例如:等待一段时间,以便注册商将您的更改提交到注册表,以便注册表更新其名称服务器,并等待 ISP 解析器上的旧缓存条目过期...
这可能需要几分钟到几天的时间。您可以使用类似工具
dnstrace -s . example.com
来检查名称服务器信息是否已更新。(可通过“DNS Auth Trace”获取网络版本在此页面。
您现在拥有一个自托管域名。