DNS服务器无法parsing本地主机名称

我试图在RHEL6.4虚拟机上设置一个Apache服务器,因为dnsmasq由于某种原因无法识别主机名:

 nslookup rhel64.example.com Server: xxx.xxx.xx.1 Address: xxx.xxx.xx.1#53 server can't find rhel64.exmple.com: NXDOMAIN 

/etc/hosts

 xxx.xx1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 

/etc/resolv.conf

 ; generated by /sbin/dhclient-script search novalocal example.com nameserver xxx.xxx.xx.1 

请让我知道是否有什么你需要看到解决我的问题。 我不能使用不同的DNS服务器。

寻找一种方法来使dnsmasqparsing主机名而不更改DNS服务器。

我希望你的服务器的IP地址是固定的。 你的/etc/hosts应该包含

 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 xxx.xx1 rhel64.example.com rhel64 

localhost不应该指向127.0.01或者:: 1以外的地址。 根据需要将具有固定地址的其他主机添加到/etc/hosts

对于dynamic地址,请确保已在/etc/dnsmasq.conf设置了正确的域,并确保主机名在请求中发送。 检查应该在/var/lib目录下的dnsmasq.leases文件,尝试validation。 域应该像这样指定。

 domain=example.com 

或者,您可以在dnsmasq.conf文件或/etc/ethers提供固定地址。 像这样的一条线将MAC地址aa.bb.cc.dd.ee.ff映射到192.0.2.1 。 如上所述,DNS名称将在/etc/hosts指定。

  aa.bb.cc.dd.ee.ff 192.0.2.1 

编辑:我会使用包括诊断。

在运行dnsmasq的主机上运行getent。

  getent hosts rhel64 

这应该返回您在hosts文件中input的值或由DNS返回的值。 如果这样做的话,尝试使用host命令来查找地址。 如果主机不可用,请使用nslookup 。 试试这些命令。 (看起来你的dnsmasqapache服务器在同一个主机上。

  hosts rhel64. hosts rhel64.example.com. hosts rhel64. localhost hosts rhel64.example.com. localhost hosts rhel64. rhel64. hosts rhel64.example.com. rhel64. hosts rhel64. rhel64.example.com. hosts rhel64.example.com. rhel64.example.com. 

哪个命令失败以及如何失败应该帮助您确定问题。 你也可能要确保dnsmasq正在监听所有的IP地址。

在诊断问题时:请求rhel64. 适用于域名不合格的主机名称,并请求rhel64.example.com. 是完全合格的名字。 名称上的最后一个点告诉parsing器不要从search列表中尝试域名。 如果指定了第二个主机名,将覆盖/etc/resolv.conf列出的名称服务器。 在这种情况下,我使用了/etc/resolv.conf的服务器,本地主机地址(127.0.0.1或1),从DNS查找的主机名地址,以及完全限定名的地址从名字服务器抬起头来。 如果最初查找名称失败,则最后两台服务器将不起作用。

  netstat -an | grep :53 

编辑:在重新阅读您的文章,我注意到你正在从DHCP获取您的地址,关于设置一个固定的IP地址的说明适用于Unix风格的DHCP服务器。 它们应该被应用到可能是xxx.xx1的路由器的dchp-server,这不是你的服务器地址。 您应该能够通过命令ifconfig或较新的命令ip addr来获得curent IP地址。 这是在/ etc / hosts文件中应该与您的主机名称匹配的地址。

如果您无法访问路由器,则可以尝试使用DHCP为您更新DNS服务。 将以下条目添加到我们的DHCPconfiguration文件中:option fqdn.fqdn rhel64.example.com; 或选项fqdn.fqdn rhel64;

添加条目后,您将需要重新启动dhclient进程。 尝试命令

 sudo dhclient -r sudo dhclient 

否则,您将需要重新启动界面或整个联网设置。