无法通过 LAN 解析主机名

无法通过 LAN 解析主机名

有时我们的 LAN 会停止解析主机名。我们不知道为什么会发生这种情况。我们如何诊断这些问题?

我们有两个路由器。一个连接到互联网(通过光纤调制解调器)。另一个设置为无线交换机。即它通过第一个路由器为互联网提供服务,但它位于不同的房间,用于与该房间中的计算机建立以太网连接。

问题似乎源于第一个路由器(或其他东西)。我怀疑是交换机路由器,或者是网络配置方面的问题。这是因为我们通常键入http://home以进入互联网连接路由器的路由器配置,但这不起作用。但是,我们可以输入 IP 地址并进入配置页面。无论我们连接到原始路由器还是交换机路由器,都会发生这种情况。

类似地,我们在局域网上有一个网络服务器,我们通常使用计算机的主机名来访问,但我们无法通过网络进行访问(不过 IP 地址也可以)。

类似地,在网络上 ping IP 地址可以工作,但主机名则不工作。

我不知道我们该如何解决这个问题。我们通常会重启路由器等,然后它们就会恢复。但这次却没有,所以我想多了解一下为什么会发生这种情况。

答案1

根据您提供的信息,您应该首先确定路由器的 DNS 服务是否正常工作。您应该能够通过查看路由器的配置来确定服务是否正常,但如果没有任何指标可以帮助您,您可以求助于端口扫描。


如果您的路由器告诉您 DNS 处于活动状态,请跳过此部分:

使用以下工具nmap。您可以快速将其下载到您的 Linux 服务器,因为它包含在大多数标准 Linux 发行版(Debian、Ubuntu、CentOS、Mint、Fedora、Redhat 等)的默认软件包存储库中。根据您运行的是基于 Debian 还是基于 RPM 的发行版,您的命令语法可能会有所不同。

  • 对于 Debian:

    • 搜索nmap:sudo apt-cache search nmap
    • 安装nmapsudo apt-get install nmap
  • 对于 RPM(Fedora、Centos、RedHat 及类似版本):

    • dnf search nmap
    • dnf install nmap
  • (之前版本dnf:)

    • yum search nmap
    • yum install nmap

扫描 DNS

假设您的路由器的 IP 是,您想要对端口 53 ( )192.168.1.1执行服务-UDP 扫描 ( )并使用激进分辨率 ( ) 来确定它是否处于活动状态并正常工作:-sU-p53-A

nmap -sU -p53 -A 192.168.1.1

只要服务恢复开放|未过滤,那么你就成功了。如果它显示为关闭然后仔细研究一下配置,看看是否有选项允许您重新配置 DNS 或简单地重新启动路由器,希望它能恢复正常。如果一切都失败了,请致电制造商并大肆抱怨。有时这种方法很有效 :)


配置Windows主机:

回到手头的任务:只要您确定 DNS 在路由器上正常运行,您就会想尝试让 Windows 客户端工作,因为它更简单,而且您有一个可以依赖的 GUI。我建议在路由器上设置备用 DNS,以便在一个 DNS 服务器发生故障时可以查询多个 DNS 服务器。

我个人最喜欢的:

  • 8.8.8.8是 Google 1
  • 8.8.4.4是 Google 2
  • 208.67.220.220是 OpenDNS 1
  • 208.67.222.222是 OpenDNS 2

完成后,下一步应该是查看是否可以通过在 TCP/IPv4 网络设置中手动配置 Windows 系统来解析路由器上的 DNS。

  1. 右键单击任务栏右下角的网络图标,然后前往Networking and Sharing Center
  2. 单击您的网络接口(应该是ethernet 1或类似的)并转到properties
  3. 再次点击Internet Protocol Version 4 (TCP/IPv4)并点击,properties
  4. 点击User the following DNS server addresses圆形按钮,
  5. 输入路由器/DNS服务器的IP作为首选DNS,
  6. 输入8.8.8.8(谷歌的公共 DNS)作为备用 DNS,用于回退
  7. Validate Settings退出时检查
  8. 点击OK应用并等待网络接口排除故障/重新启动

此时您应该能够在 Windows 系统上解析 DNS 主机名。如果可以,那么您就知道,无论出于何种原因,您的路由器的 DHCP 服务都没有广播正确的设置,您可能需要让制造商参与进来,或者您可以自己动手,希望它能帮到您。请务必参考文档。

另一方面,如果它不起作用,我会怀疑电缆本身或路由器硬件。除了开始更换物理设备外,目前没有太多事情可做。


配置Linux服务器:

(如果您发现任何权限错误,则可能需要从root/用户运行这些命令。)sudo

如果您对 Linux 没有太多经验,这对您来说可能将是一次新的冒险,但不用担心。

首先使用以下命令检查/etc/resolv.conf文件:

cat /etc/resolv.conf

此文件用于配置名称服务器、域名和搜索域。通常,您会看到:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1

有两种可能,具体取决于您的设置。一种是您安装了 dnsmasq,并且您收到了警告横幅,告诉您不要更改 resolv.conf。在这种情况下,它将具有环回(127.0.0.1 或 127.0.1.1),就像您在我的配置中看到的那样,表明它通过 dnsmasq 运行自己的 DNS 服务。如果您看到此消息,请运行以下命令:

/etc/init.d/dnsmasq status

如果您看到No such file or directorydnsmasq 未安装,则没有问题。您可以继续操作,也可以使用
apt-get install dnsmasq(或dnf install dnsmasq)快速安装它。

如果您选择不安装/重新启动 dnsmasq,您可以简单地/etc/resolv.conf用您最喜欢的文本编辑器(我更喜欢nano)编辑您的文件以包含以下几行:

nameserver 192.168.1.1 8.8.8.8 8.8.4.4    # That's your router and two fallback DNS servers

如果您看到 dnsmasq 状态为 Active/Running,则表示它已正确安装并运行。如果 dnsmasq 处于非活动状态/已停止运行,则应使用以下命令启动它:

/etc/init.d/dnsmasq start

dnsmasq 通常通过动态更改文件来处理 DNS 解析/etc/resolv.conf。如果您的解析器无法正确处理请求,或者 dnsmasq 配置不正确,我强烈建议您阅读其可爱的文档

但实际上您只需确保您的设置到位/etc/dnsmasq.conf

server=/yourlocaldomain/192.168.1.1
local=/yourlocaldomain/

这些将服务器设置为您的本地域名和 DNS 服务器的 IP,并且local=/yourlocaldomain/当您的域出现在您尝试解析的主机的 FQDN 中时,阻止 dnsmasq 尝试解析为上游名称服务器。

例如,如果您未设置此设置,并尝试解析 emailserver.localdomain,dnsmasq 将询问 Google 公共 DNS 在哪里emailserver.localdomain……它当然会回答“我不知道!”

设置此项将使 dnsmasq 说:“ emailserver.**localdomain**...我应该问192.168.1.1这是在哪里。” - 并且192.168.1.1,您的路由器可以使用正确的 DNS 响应和 IP 进行适当的响应emailserver.localdomain


我希望这个解释和冗长的解决方案能帮到你。我尝试解释我能想到的每一种情况,但如果我遗漏了什么或有什么问题,请告诉我。

答案2

如果 LAN 中没有太多计算机,并且/或者不依赖内部 DNS 路由,请将 pv4 配置中的 DNS 参数设置为:

8.8.8.8

8.8.4.4

这会将 DNS 解析工作交给 Google 的服务器。

相关内容