我熟悉编辑 /etc/hosts 文件以将您的计算机流量定向到特定 IP 地址的技巧。现在,我正在寻找一个局域网范围的解决方案。当然,我可以编辑所有计算机的 /etc/hosts 文件(手动或自动),但这并不理想。
一个理想的解决方案将涉及一台运行 DNS 服务器的机器,并且路由器将其识别为优先于互联网范围内的 DNS 服务器可能提供的任何东西的服务器。或者,也许路由器可以充当 DNS 服务器(毕竟,它知道如何将计算机名称转换为 IP 地址作为 DHCP 的一部分)。我宁愿不需要更改网络上计算机上的任何设置。
有什么建议么?我希望这会很容易。
在机器上设置 DNS,并告诉路由器将该 IP 地址作为 DNS 服务器作为 DHCP 配置的一部分分发。如果您的路由器不支持这一点,那么也许考虑一些不那么糟糕的东西。
这可能是我对问题的误读,但听起来您正在尝试为一个或两个特定域提供特定地址,而不是为 LAN 上的一组主机提供完整的外部 DNS 查找/缓存功能。如果是这种情况,您可以通过设置仅限内部的绑定服务器来完成此操作,并将其配置为将您尝试修改的域作为区域提供服务。
例如,如果 foocorp.com 通常将 4.2.2.2 的外部地址返回给外部世界,但是对于您局域网上的主机,您希望它返回 192.168.0.95,请告诉您的内部专用 BIND 服务器它拥有区域 'foocorp.com' 并给它一个区域文件,该文件将 www.foocorp.com 的 A 记录定义为 192.168.0.95。当您的 LAN 主机查询“foocorp.com”时,您的内部 BIND 服务器甚至不会费心进行外部查找。它只会说“啊哈哈,我在这里有一个 foocorp.com 的区域文件,我要从中返回数据”。
高温下,
——李
dnsmasq应该满足您的所有需求。它可以充当 DNS 服务器,从您的主机文件中获取条目。此外,它可以配置为 DHCP 服务器,因此 LAN 上的所有其他机器将自动获取它们的地址、网关地址和本地 DNS 服务器的地址
您可以在专用服务器上设置绑定。(http://www.bind9.net/)然后在充当 DHCP + DNS 服务器的路由器(或防火墙)上,您告诉路由器应该使用您的 DNS 服务器作为主要服务器。当人们更新他们的地址时,他们会将您的 DNS 服务器作为主要服务器。主要/次要区别很重要:当用户请求主服务器无法响应的域名时,将询问第二个域名。如果您在 dns 服务器上创建自定义主机,人们会要求它并且它会起作用。
本质上,我只是重复 Womble 已经说过的话。但是,我要补充一点,阅读并了解 DNS、DHCP 和主机文件将符合您的最佳利益。它们是网络的基本组成部分,如果你不理解它们就会遇到麻烦。
如果您使用的是消费级路由器,我建议您研究一下 DDWRT,因为 ddwrt 是一个 linux 操作系统,因此在其上设置绑定服务器或 djbdns 应该不难,但这很痛苦如果您不知道自己在做什么,请进行设置。
另请注意,由于配置和漏洞,dns 服务器往往存在安全风险,甚至是内部风险。一个解决方案可能是运行一个在系统上的虚拟机中正确配置的轻量级操作系统(knoppix 或减少 centOS),这样如果它确实受到攻击,您可以轻松地将其快照回原来的位置,这也意味着您不需要“专用”机器,但可以有效地拥有一台。