DNS相关
DNS:即域名系统,是互联网中最基础的一项服务,主要提供域名和 IP 地址之间映射关系的查询服务。
我们常见的DNS记录有以下几种:
- A:用来把域名转换成 IP 地址;
- CNAME:用来创建别名
NS:则表示该域名对应的域名服务器地址。
DNS的域名查找从跟(.)开始进行递归查找,我们可以通过nslookup后者dig这俩个工具查看DNS解析的全过程
1 | $ nslookup time.geekbang.org |
1 |
|
设置DNS的方法
1 | $ cat /etc/resolv.conf |
如果DNS的解析不稳定我们可以开启dnsmasq dns缓存来加速
1 | /etc/init.d/dnsmasq start |
抓包工具
常用的抓包工具有tcpdump和wireshark,其中tcpdump用于服务器抓包,wireshark由于有图形界面适合我们对tcpdump导出的文件在本地分析
tcpdump的常用参数
tcpdump的常用表达式
tcpdump的输出格式
1 | 时间戳 协议 源地址.源端口 > 目的地址.目的端口 网络包详细信息 |
wireshark
你可以看到
- IP 层(Internet Protocol)的源地址和目的地址
- 传输层的 UDP 协议(Uder Datagram Protocol)
- 应用层的 DNS 协议(Domain Name System)的概要信息。
继续点击每层左边的箭头,就可以看到该层协议头的所有信息。比如点击 DNS 后,就可以看到 Transaction ID、Flags、Queries 等 DNS 协议各个字段的数值以及含义。当然,Wireshark 的功能远不止如此。接下来我再带你一起,看一个 HTTP 的例子,并理解 TCP 三次握手和四次挥手的工作原理。