我刚刚开始了一项新工作,我们拥有一个拥有我们自己的顶级域名(如.abc)的内联网。 因此,如果我想login到我们的“电子福利网站”,我只需打开一个网页浏览器,然后到worklink.abc并从那里login。
作为一个对DNS和系统IT知之甚less的开发者,我很好奇这是如何工作的,以及为了在家里完成类似的工作我需要做些什么。
我的名字是亚当,我想有一个家庭内部网,也许所有的域以.adm后缀结尾。 这样,我可以开发内部Java Web应用程序来映射到像http://mydomain.adm?foo=bar等页面。我很确定这将导致我进入DNS服务器和configuration的新世界,但是不要吓我
你们中的一个“系统家伙”能否给一个贫穷的Java开发者一个高层次的外行介绍我如何才能做到这一点? 在这一点上,我甚至不知道从哪里开始。 如果你能给我一个合适的打孔清单,我可以从那里研究细节。 提前致谢!
正如丹提到的,你可以使用你的系统/etc/hosts文件来完成你想要的。 这不是以任何有意义的方式“设置顶级域名”,因为它实际上与DNS没有任何关系。 /etc/hosts是(…通常是…)在您的系统检查DNS 之前引用的。 hosts文件只是简单地将地址映射到地址,而不知道任何有关域的信息。 所以如果你把这个放在/etc/hosts :
127.0.0.1 localhost apple.com
然后这样做:
curl http://apple.com/
curl会尝试连接到127.0.0.1 。 但是,如果你这样做:
curl http://www.apple.com/
您的系统将(…可能…)引用DNS,因为在hosts文件中找不到www.apple.com 。 因为大多数软件都使用系统名称parsingfunction(由/etc/nsswitch.conf控制),所以这只适用于一切。 这很简单,但也有一些缺点:
hosts文件都是最新的。 hosts文件的名称到地址映射之外的任何其他内容。 所以,没有MX或SRVlogging,没有CNAMElogging等等。 下一个最简单的解决scheme是使用dnsmasq ,这是一个非常漂亮的工具,提供DNS,DHCP和TFTP服务 – 换句话说,几乎所有你需要的一个小型networking。 使用dnsmasq ,你可以:
dnsmasqlogging很好,但是如果你在查看文档后会遇到一些具体的问题,我会看看我能做些什么。
这是一个非常简短的例子…如果你运行这个:
dnsmasq -C /dev/null --local=/localnet/ -s localnet -E
-C /dev/null是为了确保我们以“空”configuration开始,因为我不知道你的本地/etc/dnsmasq.conf可能是什么。 这个命令行dnsmasq将使你的/etc/hosts文件中的任何条目通过DNS在“localnet”域中可用。 所以例如,如果我有我的hosts文件中的以下内容:
10.10.10.10 fluff 10.10.10.11 nutella
我可以在configuration为使用dnsmasq实例的DNS系统上执行此操作:
$ host fluff.localnet fluff.localnet has address 10.10.10.10
而且我也可以使用不合格的名字:
$ host nutella nutella has address 10.10.10.11
你可以很喜欢dnsmasq ,它可能dnsmasq的家庭networking。 如果你需要服务于更大的人口,并提供冗余的DNS服务,内部/外部视图,ACL等等,那么你会看到类似于BIND的东西,但是这对于你正在做的事我在做什么,在这个问题上 – 我在家使用dnsmasq )。