系统优化-网络-常用工具

DNS相关

DNS:即域名系统,是互联网中最基础的一项服务,主要提供域名和 IP 地址之间映射关系的查询服务。

我们常见的DNS记录有以下几种:

  • A:用来把域名转换成 IP 地址;
  • CNAME:用来创建别名
  • NS:则表示该域名对应的域名服务器地址。

    DNS的域名查找从跟(.)开始进行递归查找,我们可以通过nslookup后者dig这俩个工具查看DNS解析的全过程

1
2
3
4
5
6
7
8
9
$ nslookup time.geekbang.org
# 域名服务器及端口信息
Server: 114.114.114.114
Address: 114.114.114.114#53

# 非权威查询结果
Non-authoritative answer:
Name: time.geekbang.org
Address: 39.106.233.17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

# +trace表示开启跟踪查询
# +nodnssec表示禁止DNS安全扩展
$ dig +trace +nodnssec time.geekbang.org

; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> +trace +nodnssec time.geekbang.org
;; global options: +cmd
. 322086 IN NS m.root-servers.net.
. 322086 IN NS a.root-servers.net.
. 322086 IN NS i.root-servers.net.
. 322086 IN NS d.root-servers.net.
. 322086 IN NS g.root-servers.net.
. 322086 IN NS l.root-servers.net.
. 322086 IN NS c.root-servers.net.
. 322086 IN NS b.root-servers.net.
. 322086 IN NS h.root-servers.net.
. 322086 IN NS e.root-servers.net.
. 322086 IN NS k.root-servers.net.
. 322086 IN NS j.root-servers.net.
. 322086 IN NS f.root-servers.net.
;; Received 239 bytes from 114.114.114.114#53(114.114.114.114) in 1340 ms

org. 172800 IN NS a0.org.afilias-nst.info.
org. 172800 IN NS a2.org.afilias-nst.info.
org. 172800 IN NS b0.org.afilias-nst.org.
org. 172800 IN NS b2.org.afilias-nst.org.
org. 172800 IN NS c0.org.afilias-nst.info.
org. 172800 IN NS d0.org.afilias-nst.org.
;; Received 448 bytes from 198.97.190.53#53(h.root-servers.net) in 708 ms

geekbang.org. 86400 IN NS dns9.hichina.com.
geekbang.org. 86400 IN NS dns10.hichina.com.
;; Received 96 bytes from 199.19.54.1#53(b0.org.afilias-nst.org) in 1833 ms

time.geekbang.org. 600 IN A 39.106.233.176
;; Received 62 bytes from 140.205.41.16#53(dns10.hichina.com) in 4 ms

设置DNS的方法

1
2
$ cat /etc/resolv.conf
nameserver 114.114.114.114

如果DNS的解析不稳定我们可以开启dnsmasq dns缓存来加速

1
2
/etc/init.d/dnsmasq start
* Starting DNS forwarder and DHCP server dnsmasq [ OK ]

抓包工具

常用的抓包工具有tcpdump和wireshark,其中tcpdump用于服务器抓包,wireshark由于有图形界面适合我们对tcpdump导出的文件在本地分析

tcpdump的常用参数

avator

tcpdump的常用表达式

avator

tcpdump的输出格式

1
时间戳 协议 源地址.源端口 > 目的地址.目的端口 网络包详细信息

wireshark

avator

你可以看到

  • IP 层(Internet Protocol)的源地址和目的地址
  • 传输层的 UDP 协议(Uder Datagram Protocol)
  • 应用层的 DNS 协议(Domain Name System)的概要信息。

继续点击每层左边的箭头,就可以看到该层协议头的所有信息。比如点击 DNS 后,就可以看到 Transaction ID、Flags、Queries 等 DNS 协议各个字段的数值以及含义。当然,Wireshark 的功能远不止如此。接下来我再带你一起,看一个 HTTP 的例子,并理解 TCP 三次握手和四次挥手的工作原理。