如何配置 Linux 机器,使其假装是域的一部分以进行 DNS 查找?
网络在 Windows AD 域上运行,Windows 端没有特殊配置(除了加入域)。Windows PC 自动获取本地后缀company.local
(如 所示ipconfig /all
)和 ,ping servername
并且ping servername.company.local
两者都按预期工作。
据我所知,DHCP 服务器提供了正确的域名,尽管我不确定如何明确地验证这一点。
在连接到同一网络的 Linux 机器(Ubuntu 14.04)上,也使用 DHCP,我可以ping servername
成功(因此 DHCP 和基本 DNS 正常工作)但ping servername.company.local
失败(未知主机)。
最初dnsdomainname
是空白的。我尝试修改/etc/hosts
以添加域名,虽然它已更新dnsdomainname
并/etc/resolv.conf
成功使其能够 ping 自身+但.company.local
它仍然不适用于任何其他地址。我还尝试在网络管理器 UI 中的“IPv4/IPv6 设置”选项卡中设置“其他搜索域”。
也许最令人恼火的是,当我ping servername
说它正在 pingservername.localdomain
但随后也打印时64 bytes from servername.company.local
。因此系统的某些部分知道后缀,但显然不是正确的部分。
ping servername.company.local
在 Linux 机器上开始工作的正确方法是什么?
(我需要 FQDN 才能工作,因为各种文件包含使用 FQDN 的链接,因为使用 VPN 外部连接到网络时需要这一点。)
答案1
视情况而定。如果您指的是笔记本电脑,那么最好的解决方案是让它从本地路由器获取网络配置,但本地路由器目前显然不提供该功能。
但是,如果这是一台注定不会被移动的 PC(我怀疑是这样),那么即使您不打算为机器设置静态 IP 地址,您也可以在本地操作。编辑文件(该文件/etc/resolvconf/resolv.conf.d/head
应该存在,即使除了注释之外是空的),并在其中添加以下几行:
domain company.local
search company.local
当你重启 Ubuntu 电脑时(由于resolvconf
软件包中有 bug,你不能只需重启网络即可看到变化,必须重启电脑后,你会注意到文件/etc/resolv.conf
现在包含以下行
domain company.local
search company.local
nameserver 127.0.0.1
或者类似这样的内容。换句话说,该head
文件被添加到了您(最重要的)文件的开头resolv.conf
。这应该可以解决您的问题。