pt1*_*her 4 domain-name-system linux redhat resolv.conf localhost
我正在尝试在我的 RHEL6.4 vm 上设置一个 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
Run Code Online (Sandbox Code Playgroud)
/etc/hosts
:
xxx.x.x.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Run Code Online (Sandbox Code Playgroud)
/etc/resolv.conf
:
; generated by /sbin/dhclient-script
search novalocal example.com
nameserver xxx.xxx.xx.1
Run Code Online (Sandbox Code Playgroud)
如果您需要查看任何内容来解决我的问题,请告诉我。我不能使用不同的 DNS 服务器。
寻找一种dnsmasq
在不更改 DNS 服务器的情况下解析主机名的方法。
我希望您的服务器的 IP 地址是固定的。你/etc/hosts
应该包含
127.0.0.1 localhost
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
xxx.x.x.1 rhel64.example.com rhel64
Run Code Online (Sandbox Code Playgroud)
localhost
绝不应指向 127.0.0.1 或 ::1 以外的地址。/etc/hosts
根据需要添加具有固定地址的其他主机。
对于动态地址,请确保您在 中设置了正确的域/etc/dnsmasq.conf
,并确保在请求中发送主机名。检查dnsmasq.leases
应该在/var/lib
目录中的文件尝试验证。域应该像这样指定。
domain=example.com
Run Code Online (Sandbox Code Playgroud)
或者,您可以在dnsmasq.conf
文件或/etc/ethers
. 像这样的一行会将 mac 地址映射aa.bb.cc.dd.ee.ff
到192.0.2.1
. /etc/hosts
如上所述,将指定 DNS 名称。
aa.bb.cc.dd.ee.ff 192.0.2.1
Run Code Online (Sandbox Code Playgroud)
编辑:我会使用的诊断包括。
在运行 dnsmasq 的主机上运行 getent。
getent hosts rhel64
Run Code Online (Sandbox Code Playgroud)
这应该返回您在主机文件中输入或由 DNS 返回的值。如果可行,请尝试使用该host
命令查找地址。使用nslookup
如果主机不可用。试试这些命令。(看起来您dnsmasq
和apache
服务器在同一台主机上。
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.
Run Code Online (Sandbox Code Playgroud)
哪个命令失败以及它如何失败应该可以帮助您确定问题。您可能还想确保 dnsmasq 正在侦听所有 IP 地址。
诊断问题时: 请求rhel64.
是针对不带域限定的主机名,而请求rhel64.example.com.
是针对完全限定名称。名称上的最后一个点告诉解析器不要尝试搜索列表中的域。如果指定,第二个主机名会覆盖 中列出的名称服务器/etc/resolv.conf
。在这种情况下,我使用了来自 的服务器/etc/resolv.conf
、本地主机地址(127.0.0.1 或 ::1)、从 DNS 查找的主机名地址以及从名称服务器查找的完全限定名称的地址。如果名称的初始查找失败,则最后两个服务器将无法工作。
netstat -an | grep :53
Run Code Online (Sandbox Code Playgroud)
编辑:在重新阅读您的帖子时,我注意到您是从 DHCP 获取地址的,有关设置固定 IP 地址的说明适用于 Unix 风格的 DHCP 服务器。它们应该应用于 dchp-server,它可能是 xxx.xx1 处的路由器,它不会是您的服务器地址。您应该能够使用命令ifconfig
或更新的命令获取当前 IP 地址ip addr
。这是应该与 /etc/hosts 文件中的主机名匹配的地址。
如果您无权访问路由器,您可以尝试让 DHCP 为您更新 DNS 服务。将以下条目添加到我们的 DHCP 配置文件中:option fqdn.fqdn rhel64.example.com; 或选项 fqdn.fqdn rhel64;
添加条目后,您将需要重新启动该dhclient
过程。试试命令
sudo dhclient -r
sudo dhclient
Run Code Online (Sandbox Code Playgroud)
否则,您将需要重新启动界面或整个网络设置。
归档时间: |
|
查看次数: |
57738 次 |
最近记录: |