我在笔记本电脑的 61337 端口上运行一个 HTTP 网站。
我的笔记本电脑的 IP 地址是 192.168.1.247。
该域名mathsrise.tk
指向192.168.1.247
,我可以(从我的笔记本电脑)访问此 URL 的网站:http://mathsrise.tk:61337
。
家里的所有其他设备都可以访问http://192.168.1.247:61337
,但无法从 访问网站http://mathsrise.tk:61337
,而是显示“找不到服务器”或类似信息。
例如从 Windows 7 桌面执行 ping 操作:
> ping mathsrise.tk
Ping request could not find host mathsrise.tk. Please check the name and try again.
为什么只有一个设备可以正确解析 DNS?或者找到这个“主机”(我不知道主机是什么意思)
答案1
在以太网网络的早期,大多数网络由执行许多不同任务的许多设备组成。
您的普通网络有一个路由器、一个交换机、防火墙/NAT、一个 DHCP 服务器、一个 DNS 服务器和 Web 服务器。
所有独立的盒子都由网络供电。随着时间的推移,家庭网络设备也不断发展,并且随着家庭网络设备开始变得更加强大(就 CPU 马力和大量内存而言),它们开始成为“组合”设备。
快进到今天,从技术上讲,普通家用路由器是路由器、交换机、网桥、防火墙/NAT、WiFi AP、DNS 转发器和 DHCP 服务器的集合。如果您不熟悉网络术语,这可能会让您感到有些困惑。请注意,大多数现成的路由器不是 DNS 服务器,而是 DNS 转发器。这仅意味着它们会将所有请求通过 WAN 链接 DHCP 传递给 ISP 分配的 DNS 服务器。
一些高端消费级路由器确实可以选择在路由器上运行 DNS 应用程序/服务。(将路由器变成 DNS 服务器。)这样做的目的是让网络上的人们不必记住 IP 号码,他们可以通过输入域格式来访问本地资源。(myshare.mylocaldomain.net,而不是 \\172.16.36.233\share-media 之类的格式)
当您说“我已经编辑了我的路由器的 /etc/hosts 来执行此操作”时。
我做出了有根据的猜测,
您的 DNS 服务器在路由器上运行,而不是在单独的盒子上运行。
您有某种运行 DNS 应用程序/服务的基于 Linux 的路由器。
您已正确设置本地/私有 DNS 记录
您的客户端电脑要么保存着错误或旧的 DNS 缓存信息,要么需要自动设置适配器的 DNS。(很多人使用 google DNS 8.8.8.8 静态设置适配器)
您可以通过多种方式清除 DNS 缓存,包括重新启动、手动刷新缓存,而且我相信 Windows 连接疑难解答程序也能清除它。某些操作系统会在您关闭适配器然后再打开时清除它。我相信您的情况就是这样的。
当您从路由器设置 DNS 时,它将充当专用 LAN 的服务器,查看已创建的记录。如果它与本地表中的记录不匹配,则它将充当 DNS 转发器,转发查询到第一个 ISP DNS 公共服务器。注意:当路由器提供 DHCP 地址时,某些路由器会根据客户端设置的主机名自动生成本地 DNS 记录。
设置本地 DNS 服务器(不在路由器上)时,所有本地客户端都必须在适配器中静态设置本地 DNS,或者让 DHCP 服务设备提供正确的 DNS 服务器进行解析。
您可以在 NIC 中像这样设置 DNS 列表:1. (192.168.1.x) 本地 DNS IP 地址,其中 x 是实际提供 DNS 服务的主机。2. ISP 连接的路由器或网关。对于家庭网络设备,它通常是 192.168.1.1。
主机将按顺序尝试解析 DNS 查询。它将首先查看本地 DNS 是否有匹配项,如果没有匹配项,它将转到下一个 DNS 服务器。
创建本地 DNS 服务器时,以及设置新的 DHCP 参数后,您应该始终释放旧的客户端 DHCP 租约,并释放 DNS 缓存中保存的任何信息。
释放Windows中的DNS缓存;
单击“开始”。在开始菜单搜索文本框中输入 cmd。
右键单击命令提示符并选择以管理员身份运行。运行以下命令:ipconfig /flushdns。
释放Linux中的DNS缓存;
“$ sudo /etc/init.d/nscd restart” 或
“# service nscd restart” 或
“# 服务 nscd 重新加载”
如果我遗漏了什么,请给我留言。抱歉,我尝试稍微概括一下,希望这不仅能帮助你,还能帮助其他搜索的人。我希望这有助于解释,并且我没有让你更加困惑。
此致,
答案2
我不太明白,但我通过更新笔记本电脑的 DHCP 租约解决了所有问题。