您好,有人要求我在 Redhat 服务器中通过主机名(或别名)检查 IP 地址。在某些 sh 脚本中,有一个 lftp 打开与外部 ftp 服务器的连接的代码。第一个 lftp 连接使用“host1”。ping host1 显示 host1.domain.com。再 ping host2 显示未知主机。我如何在 Redhat 中检查绑定到 host2 的 ip 地址?我尝试检查主机文件,没有它的条目。还有其他地方可以将主机/别名映射到真实 IP 吗?
etc/nsswitch.conf:
# #/etc/nsswitch.conf # # 示例名称服务交换机配置文件。该文件应 # 按最常用的服务排序在最前面。 # # 条目 '[NOTFOUND=return]' 表示搜索 如果前一个条目中的搜索变为 # 没有结果。请注意,如果搜索由于其他原因失败 #(例如没有 NIS 服务器响应)则继续搜索 # 下一个条目。 # # 合法条目包括: # # nisplus 或 nis+ 使用 NIS+(NIS 版本 3) # nis 或 yp 使用 NIS(NIS 版本 2),也称为 YP # dns 使用 DNS(域名服务) # files 使用本地文件 # db 使用本地数据库(.db)文件 # compat 在兼容模式下使用 NIS # hesiod 使用 Hesiod 进行用户查找 # [NOTFOUND=return] 如果未找到则停止搜索 # # 要使用 db,请将要作为条目的“files”前面加上“db”。 # 首先在数据库中查找 # # 例子: #passwd: db 文件 nisplus nis #shadow:db 文件 nisplus nis #group: db 文件 nisplus nis 密码:文件 影子:文件 组:文件 #hosts: db 文件 nisplus nis dns 主机:文件 DNS # 例如 - 只遵守 nisplus 告诉我们的内容…… #服务:nisplus [NOTFOUND=return] 文件 #networks: nisplus [NOTFOUND=return] 文件 #protocols: nisplus [NOTFOUND=return] 文件 #rpc: nisplus [NOTFOUND=return] 文件 #ethers:nisplus [NOTFOUND=return] 文件 #netmasks: nisplus [NOTFOUND=return] 文件 bootparams:nisplus [NOTFOUND=return] 文件 以太:文件 网络掩码:文件 网络:文件 协议:文件 rpc:文件 服务:文件
谢谢。
答案1
用于限定非限定主机名的域可以在您的/etc/resolv.conf
文件中设置。如果文件host2
中提到的域中不存在该域resolv.conf
,则无法解析该名称,因此您会收到错误消息。
答案2
通常,任何主机都会尝试使用 hosts 文件来解析名称。如果失败,它将尝试查询配置的 DNS 服务器来解析名称。
有一个名为的配置文件/etc/nsswitch.conf
,它决定了名称解析过程的顺序。
如果你发现如下一行:
hosts: files dns
这意味着先查询 hosts 文件,然后查询 DNS 服务器。DNS 服务器可以在 中配置/etc/resolv.conf
。
您可以使用以下命令查询 DNS 服务器以进行名称解析:
$ dig host1.example.com
nslookup
可以做类似的工作。