我一直在圈出一段时间,试图弄清楚这一点。 我在Windowsnetworking上有许多Ubuntu机器(一些是虚拟的)。 从Windows机器上,我可以ping或nslookup Ubuntu机器,但不能反向,除非Ubuntu机器指定完全合格的DNS名称。 但我似乎无法从Ubuntu环境获取资格后缀。
一个例子将澄清正在发生的事情。 假设Windows机器名为Ubu1 ,Ubuntu机器Ubu1 ,networking后缀为.notlocalatall 。
On Win1: $ echo %USERDNSDOMAINNAME% notlocalatall $ nslookup Ubu1 [...] Name: Ubu1.notlocalatall Address: 131.132.32.14 $ nslookup Ubu1.notlocalatall [...] Name: Ubu1.notlocalatall Address: 131.132.32.14 $ ping Ubu1 [works normally, with 0% packet loss] $ ping Ubu1.notlocalatall [works normally, with 0% packet loss]
On Ubu1: $ hostname -d [blank] $ nslookup Win1 [...] ** server can't find Win1: SERVFAIL $ nslookup Win1.notlocalatall [...] Name: Win1.notlocalatall Address: 131.132.32.167 $ ping Win1 ping: unknown host Win1 $ ping Win1.notlocalatall [works normally, with 0% packet loss]
对于ssh目的,我可以生活在不得不指定的DNS后缀,但我需要从一些命令或脚本的一点点。
不,解决办法是不编辑/etc/hosts ,因为整个事情都在DHCP下运行。
Ubu1运行Ubuntu 12.04.5 LTS,networking控制面板的选项:IPv4参数设置为“自动(DHCP)”。
您需要configuration您的DHCP服务器,以便在DHCP客户端上设置域search
http://linux.die.net/man/5/dhcp-options
选项domain-search domain-list; 域search选项指定一个域名的“search列表”,以供客户端用来定位未完全限定的域名。 这个选项和历史使用的域名选项之间的区别在于,这个选项是在RFC1035压缩标签上编码的。 例如:
选项域search“example.com”,“sales.example.com”,“eng.example.com”;
这样,当你执行一个nslookup时,它将尝试使用所有指定的域,直到find一个有效的响应(或直到循环遍历它们)。
所以,如果你执行nslookup server1如果将尝试查询DNS的