如何通过家庭网络上的主机名访问我的监狱?

如何通过家庭网络上的主机名访问我的监狱?

我正在使用 FreeNAS (FreeBSD),我创建了一个监狱,并为该监狱指定了一个主机名,我可以通过 IP 地址访问该监狱,但无法通过其主机名访问该监狱。 (在我的家庭网络内)

我想我需要以某种方式让本地 DNS 正常工作?但在家庭网络中,我没有合适的 DNS?我不确定名称解析在家庭网络上如何工作。

即我可以做http://192.168.1.42:8000监狱会回应这些请求。

关于监狱:

root@jailname:/ # hostname
jailname

但在网络上的其他计算机上:

mckay@mckays-macbook ~ % ping jailname
ping: cannot resolve jailname: Unknown host
C:/> ping jailname
Ping request could not find host jailname. Please check the name and try again

FWIW,我可以在 Windows 计算机上通过主机名解析我的 NAS 和 mac,但 mac 无法获取 NAS 或 Windows 计算机的主机名。 (但可以通过IP ping 通它们)。

Android 设备可以在 NAS 上进行名称解析。

答案1

您的家庭网络有一个路由器和一个将其连接到互联网的调制解调器(或终端适配器)。您可能还有一个接入点 (AP),或更可能的是,您的路由器有一个集成 AP,可让您通过 WiFi 连接到路由器。路由器为 LAN 提供的两项服务是 DHCP 和 DNS 解析。当路由器告诉 IP 客户端在哪里可以找到 DNS 解析器时,在 DHCP 期间提供 DNS 解析。

默认情况下,大多数路由器都会给出自己的本地 IP 地址以进行 DNS 解析。当 DNS 请求到达时,它们将 DNS 请求从 LAN 代理到上游 DNS 解析器。这些上游 DNS 解析器可能属于您的 ISP,或者如果您更聪明一点,您可以进入路由器设置并选择一组更好(更快、更尊重隐私、更可靠等)的公共 DNS 解析器。

您的路由器所依赖的 DNS 解析器位于您的家庭 LAN 之外,并且不了解 LAN 上通常隐藏在路由器 NAT 和/或防火墙后面的主机。

有一些自配置协议允许 IPv4 主机使用主机名(NETBIOS、AppleTalk、zeroconf/多播 DNS)在 LAN 上相互通信,但每种协议的支持都有限。您的路由器甚至可能支持其中一种或多种协议,让您可以通过名称访问 LAN 上的主机名。为了使其工作,您的路由器必须支持它,并且您必须安装该协议的客户端来发布本地主机的名称。

在 FreeBSD 上,查看用于配置多播 DNS 的端口 mDNSResponder 和 avahi、用于配置 AppleTalk over IP 的 netatalk 以及用于配置 NETBIOS 的 samba。我已经使用以上所有方法很多年了,每种方法都有不同程度的效果。

如果您想要通过 IPv4 和 IPv6 进行主机名解析的防弹“始终有效”解决方案,请运行不受约束的在您的 FreeBSD 主机上并将其绑定到 LAN 上的静态 IP 地址。按照惯例,我在路由器上方 LAN 上的下一个最高 IP 地址上运行 DNS 服务器。因此,如果路由器是 192.168.1.1,则 DNS 发布在 192.168.1.2。然后将路由器配置为使用本地 DNS 服务器的静态 IP 地址进行 DHCP 分配。

现在您已经拥有本地 DNS 服务器,您可以使用 LAN 内可靠的 DNS 解析所需的本地 A、AAAA 和 PTR 记录对其进行配置。如此配置后,LAN 上的每个主机都可以通过其 DNS 名称访问您的静态主机。

相关内容