细节:有一个网站应该部署在网络内部(局域网)只有 LAN 用户才能访问。现在要访问该网络,该网站的客户端必须转到其在 LAN 中的 IP 地址(这是静态的,因此 DHCP 服务器总是为服务器机器提供相同的 IP)到目前为止这都很好,但我想要的是,除了 IP 地址,还有其他方法吗,用户可以实际输入域名,然后路由器将对该特定域名的所有请求转发到 LAN 中的 IP 地址?
是否有任何路由器支持主机名映射到 LAN IP?(请提供具体型号)
如果路由器不支持主机名映射到 LAN IP,还有其他方法吗?
不可行的解决方案:设置本地 DNS 服务器,其主机名将映射到该 LAN IP,但问题是它是一家餐厅,因此不同的客户端将使用它,因此向每台客户端机器添加本地 DNS 服务器地址是不可行的。由于 Android 浏览器等的支持问题,mDNS 也是不可能的……
答案1
据我所知,它无法通过“路由器”工作。如果浏览器尝试确定网站的 IP 地址,则解析域名的请求将发送到 DNS 服务器,而不是路由器(除非路由器也充当 DNS 服务器)。
我看到的唯一方法是设置本地 DNS 服务器。您有两种选择:
手动设置一些 DNS 服务器软件(例如,在您用来运行 Web 服务器的机器上)。您不必在每个客户端上手动设置 DNS,DCHP 会为您完成此操作。
按照 NetworkKingPin 在其评论中所建议的那样,使用路由器上的 DNS 功能 (DNSMasq)。具有此功能的最终消费者路由器可让您将“主机名”映射到 IP 地址。但请注意:这是 DNS 功能,而不是路由器功能,这与设置您自己的 DNS 服务器没有什么不同。
就我个人而言,我建议选择选项 1。有很多免费和开源 DNS 服务器可供选择。而且设置起来真的并不难 - 互联网上有很多适合您情况的操作方法。而且您不需要购买额外的硬件(如果您当前的路由器不支持 DNSMasq)。
不过,我很好奇是否还有其他解决方案(无需 DNS 服务器)。
由于特定产品建议超出了 Superuser 的范围,因此我不会提及任何特定设备,只需搜索路由器和 DNSMasq 即可,您会在出厂固件或使用替代固件(Ubiquity、Linksys、Fritz!、AsusWRT、DD-WRT 等)上找到各种品牌的大量选项。如果您找不到,请回到这里询问。
PS. 我想你考虑的是每个客户端上的本地 HOST-IP 映射,必须在每个客户端上手动设置。DNS 服务器的地址通过 DHCP 提供(除非手动配置)。
答案2
有些路由器允许为本地定义的设备分配名称,以方便访问该设备。这通常不是完整的 DNS 服务器,只是路由器提供的一项服务。
我的路由器提供这项服务,即 Orange Livebox。我刚刚测试过,它确实有效。
您必须找到您的路由器。例如,(昂贵的) Linksys LRT214 千兆 VPN 路由器 有 DNS 本地数据库功能。
基于路由器 DD-WRT 固件 可能可以完成这项工作,其他具有 DNSMasq 的基于 Linux 的路由器也可以。请参阅 DNSMasq 作为 DHCP 服务器。