我已设置 DDNS 'example.com',指向我家中位于具有动态 IP xxxx 的路由器后面的设备。在我的设备中,我正在运行一个网站 'example.com/website'。我已经处理了端口转发,除了我工作场所中一台运行 Windows 10 的特定笔记本电脑外,其他所有设备都运行良好。
我可以看到(使用 Windows 10 中 Ubuntu 子系统中的 dig)“example.com”正确指向 IP xxxx,因此 DNS 服务器似乎可以很好地解析该域名。但是,当我尝试解析“example.com/website”时,连接超时。在浏览器中直接转到“xxxx/website”即可……
重要的是,使用同一网络中的其他设备(例如同一台机器上的 Linux、不同计算机上的 Windows 10 甚至连接到 Wifi 的手机)都可以完美运行。我已经检查过我尝试过的所有设备上的 DNS 服务器是否相同。似乎原因可能是这台特定机器中的某些设置...我尝试运行“ipconfig /flushdns”和其他相关命令,但没有帮助。
如果有人能帮助我,我将不胜感激。如果需要,我可以提供更多信息。
编辑:问题现在已经解决,我忘记了在 hosts 文件中添加的一行将域指向我的内部 IP 地址,因此它在外面不起作用也就不足为奇了...谢谢你的帮助!
答案1
您的问题表明您对 DNS 和 Web 服务器的工作方式存在误解。
DNS 服务器只会解析主机名。如果您使用浏览器访问“https://website.domain.com/whatever”,DNS 只会关注“website.domain.com”部分(它会将其转换为 IP 地址)。“/whatever”部分不会被浏览器发送到 DNS,也不会被浏览器“解析”。如果您要求类似dig
(查询 DNS)的工具解析“website.domain.com/whatever”之类的查询,它将不知道如何处理它。
“/whatever” 部分仅由运行在主机上的 Web 服务器看到,该主机由 DNS 解析并由客户端(运行在 PC 上的浏览器)寻址。Web 服务器软件将使用此信息(连同它在请求中找到的其他信息)来确定要提供哪些内容。
答案2
现在问题已经解决,我忘记了在 hosts 文件中添加的一行将域指向我的内部 IP 地址,所以它在外面不起作用也就不足为奇了...感谢所有回复者的帮助!