如何设定本地域名(.home)?

如何设定本地域名(.home)?

假设我的本地网络中有两台计算机,主机名为pc1和。我的路由器有 ip 地址,其说明说也可以通过 访问,我试过了,确实如此。pc210.0.0.0/2410.0.0.138modem.home

我想通过 ssh 从 连接到pc1pc2使用其主机名,而不是其 ip。但是,host当使用 的 ip 地址时,linux 下的 commando 给出了以下结果pc2

host 10.0.0.53
Host 53.0.0.10.in-addr.arpa not found: 2(SERVFAIL)

我尝试研究一下这意味着什么,我认为它表明

现在回答我的问题:

  1. 域名到底是什么.home?这是通常的域名还是我的路由器设置的域名?
  2. 我如何将我的(Linux)计算机添加到该域,以便我可以检索其他设备(在本地网络中)的主机名?

答案1

.home 域名到底是什么?它是常用域名还是只是我的路由器设置的域名?

这只是您的路由器设置的东西。

与许多路由器一样,它在内部运行 DNS 缓存/代理,并在所有 DHCP 响应中将自己宣传为 DNS 服务器。路由器的 DNS 代理配置为*.home从本地配置中提供名称,而不是将查询转发到 ISP 的 DNS。(如果您打算自己制作,可以在 dnsmasq 中找到此功能。)

路由器具有modem.home静态定义的名称以始终返回其自己的 IP,但其他*.home子域通常从 DHCP 服务器的租约数据库中读取。

我如何将我的(Linux)计算机添加到该域,以便我可以检索其他设备(在本地网络中)的主机名?

确保您的计算机使用 DHCP,并且其 DHCP 客户端始终在请求中填写“主机名”选项 (12)。例如,如果计算机使用dh客户端,添加send host-name = gethostname();到其配置中。

答案2

域名到底是什么.home?这是通常的域名还是我的路由器设置的域名?

尽管.homes.home.arpa是为特定用途而定义的,但.home目前该域似乎还没有定义(据我所知)。话虽如此,.home.arpa 的 RFC笔记:

家庭网络控制协议 (HNCP) 已更新为使用“home.arpa.”域而不是“.home”。

因此,.home在这种情况下,可能存在用于高血压脑病能够自动发现、配置等的设备。但这只是猜测。

如何将我的(Linux)计算机添加到该域,以便我可以检索其他设备(在本地网络中)的主机名?

您可能需要检查您的路由器设置,看看它是否有任何选项可以添加额外的主机名和 IP 以进行本地解析。

否则,正如该问题的另一个答案中详细说明的那样,最简单的方法是使用hosts每台 PC 上的文件来定义主机名/IP 地址映射:

例如hosts(PC 1 → 10.0.0.10)

10.0.0.20        pc2.home

例如hosts(PC 2 → 10.0.0.20)

10.0.0.10        pc1.home

hosts文件通常位于/etc/hostsLinux/MacOS 和C:\windows\system32\drivers\etc\hostsWindows 中。

请注意,如果您在 Linux 上使用文件时遇到问题hosts,则可能需要编辑/etc/nsswitch.conf并确保该files条目在下列出hosts:

其他选项

本地 DNS 服务器

即使不知道有关路由器的所有详细信息,您(理论上)也可以简单地设置一个本地 DNS 服务器来为.home域提供服务。

本质上,您需要:

  1. 指定一台 PC 作为 DNS 服务器。它可以是网络上的任何 PC,但需要始终可用(持续打开)以进行 DNS 解析。

  2. 在该电脑上安装 DNS 服务器软件(例如绑定域名管理系统, ETC。)

  3. 配置 DNS 服务器软件以:

    • 例如通过单独的区域文件进行识别,pc1.homepc2.home使用适当的 IP 地址映射(可能是最佳选择)。

    或者

    • 解析整个.home域并添加例如,pc1.homepc2.home使用适当的 IP 地址映射将区域文件添加到该区域文件(可能不是最佳选择)。

    • 将所有其他请求发送到上游(例如,发送到您的 ISP DNS 服务器)。

  4. 将路由器指向 DNS 服务器以进行 DNS 解析(在路由器的域名服务器 (DNS) 地址设置下)。您可能还需要将端口 53 和 953 转发到 DNS 服务器。

.local 域名

如果你不受域名限制.home.local通常用于mDNS(ZeroConf)DNS. 根据维基百科关于多播 DNS (mDNS) 的文章

在计算机网络中,多播 DNS (mDNS) 协议将主机名解析为不包含本地名称服务器的小型网络中的 IP 地址。它是一种零配置服务,使用与单播域名系统 (DNS) 基本相同的编程接口、数据包格式和操作语义。

mDNS通常可在各种Linux发行版上使用,通过阿瓦希

答案3

我认为,对于两台计算机,您不需要域。在本地 HOSTS 文件中设置另一台计算机的名称。对每台计算机执行此操作。然后,您可以按名称寻址计算机。

本地 hosts 文件在这里: https://www.makeuseof.com/tag/modify-manage-hosts-file-linux/

相关内容