Linux和Unix主机命令示例

时间:2020-01-09 10:42:16  来源:igfitidea点击:

如何使用主机命令行实用程序来验证Linux和类似Unix的操作系统上的DNS设置?
如何使用dig命令查找主机名的IP地址或者IP地址的主机名?

host是一个简单且必不可少的命令行工具。
它用于以下目的:

  • 执行DNS名称查找。
  • 查找主机的IP地址,反之亦然。
  • 列出并验证各种类型的DNS资源记录,例如NS和MX名称。
  • 验证ISP dns服务器和Internet连接。
  • 验证垃圾邮件和黑名单记录。
  • 验证dns服务器问题并进行故障排除。

语法

基本语法:

host ip-address-here 
host host-name-here 
host host-name-here [DNS-Server-Name-Here] 
host [options] IPAddress | Hostname [DNS-Server-Name-Here] 

DNS记录类型列表

使用host命令之前,您应该了解DNS资源记录的常见类型。
以下是最常见的资源记录:

类型目的示例
AIPv4 IP地址192.168.1.5或者75.126.153.206
AAAAIPv6 IP地址2607:f0d0:1002:51 :: 4
CNAME规范名称记录(别名)cdn.theitroad.orgwww.theitroad.com的别名
MX电子邮件服务器主机名smtp.theitroad.local或者mx1.theitroad.com
NS名称(DNS)服务器名称ns1.theitroad.local或者ns-243.awsdns-30.com
PTR指向规范名称的指针。通常用于实现反向DNS查找82.236.125.74.in-addr.arpa
SOA有关DNS区域的权威信息请参见下文
TXT文本记录请参见下文

默认情况下,主机命令仅查找A,AAAA和MX记录。

host命令示例

让我们看看如何在Linux和Unix上使用host命令。
您需要提供主机名或者IP地址作为参数,以获取有关该主机的各种信息。
打开终端应用程序,然后执行以下命令。

查找主机名的IP地址

要查找名为wks05的主机的地址,请运行:

host wks05

输出示例:

theitroad.local has address 192.168.1.5

要显示名为google.com或者theitroad.local的域的地址,请执行:

host google.com

或者

host www.theitroad.local

输出示例:

www.theitroad.local has address 75.126.153.206
www.theitroad.local has IPv6 address 2607:f0d0:1002:51::4

查找IP地址的主机名

要查找地址为192.168.1.254的主机,请执行:

host 192.168.1.254

输出示例:

254.1.168.192.in-addr.arpa domain name pointer router.localdomain.

在本示例中,查找域名whois地址为75.126.153.206,运行:

host 75.126.153.206

输出示例:

206.153.126.75.in-addr.arpa domain name pointer www.theitroad.local.

如何选择DNS查询类型?

如下传递-t选项以指定查询类型:

host -t query Hostname|IPAddress

要查询域theitroad.local的NS记录类型,请执行:

host -t ns theitroad.local

输出示例:

theitroad.local name server ns-1075.awsdns-06.org.
theitroad.local name server ns-1947.awsdns-51.co.uk.
theitroad.local name server ns-243.awsdns-30.com.
theitroad.local name server ns-866.awsdns-44.net.

要查询CNAME记录类型,请执行

host -t CNAME s0.theitroad.org

输出示例:

host -t CNAME s0.theitroad.org

要查询域的SOA记录类型,请输入

host -t SOA theitroad.local

输出示例:

theitroad.local has SOA record ns-1075.awsdns-06.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

要查询域的TXT记录类型,请输入

host -t txt google.com

输出示例:

google.com descriptive text "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all"

提示:查询域的ANY记录类型,执行:

host -a theitroad.local

或者

host -v theitroad.local

-a选项显示任何类型的dns记录

显示DNS区域名称的SOA记录

传递-C选项以显示该区域所有列出的权威名称服务器中区域名称的SOA记录。
这对于在权威名称服务器上比较SOA记录很有用。
语法为:

$ host -C theitroad.local

通过TCP/IP强制查询

默认情况下,主机命令在进行查询时将使用UDP协议。
查询名称服务器时,传递-T选项以使用TCP连接。
这对于查看名称服务器是否可以在TCP上运行以及防火墙是否允许通过TCP进行查询很有用:

host -T IPAddress
host -T theitroad.local
host -a -T google.com

指定UDP数据包的重试次数

如果您在unraialbe网络上,则可以设置Packat的重试编号。
在此示例中,尝试重试三次以找出名为example.com的域的IP地址:

host -t a -R 3 example.com

使用IPv4或者IPv6传输

要使用IPv4查询传输,只需将-4选项传递给host命令:

host -4 IP|Host
host -4 example.com

要使用IPv6查询传输,只需将-6选项传递给host命令。
这对于测试启用了IPv6的名称服务器是否正常工作很有用:

host -6 IP|Host
host -6 example.com

如何列出名为example.com的域中的所有主机?

传递-l选项以列出域中的所有主机名和服务器。
仅当您仅从从属服务器(辅助)和/或者主dns服务器IP地址进行查询时,此方法才有效。
作为DNS服务器管理员,您无需打开区域文件即可获取域中所有主机的列表:

# Note must be on slave/master server where AXFR is alowed ##
host -l example.com

请注意,AXFR是一种特殊的资源记录类型。
它用于权威性区域传输,即,将整个区域文件从主名称服务器传输到辅助名称服务器。

host命令选项

以下是Linux或者类似Unix的操作系统上host命令的所有重要选项的摘要:

选项用法
-a等同于-v -t ANY选项。
-c指定非IN数据的查询类
-C比较权威名称服务器上的SOA记录
-d等效于-v
-l使用AXFR
-iIP6.INT反向查询
-N更改完成根查找之前允许的点数
-r禁用递归处理
-R指定UDP数据包的重试次数
-sSERVFAIL响应应停止查询
-t指定查询类型
-T启用TCP/IP模式
-v启用详细输出
-w指定永远等待答复
-W指定等待回复的时间
-4仅使用IPv4查询传输
-6仅使用IPv6查询传输
-m设置内存调试标志(跟踪