一、DNS 域名解析协议
1.1 基础定义与端口规范
DNS(Domain Name System)用于实现域名与 IP 地址的相互映射,解决网络地址记忆难题。
两种核心解析方式:
- 正向解析:域名 → IP
- 反向解析:IP → 域名
协议默认占用 53 端口:
- UDP 协议:用于快速完成日常域名解析请求;当 DNS 应答报文超过 512 字节时,查询也会改用 TCP
- TCP 协议:用于 DNS 主从服务器的数据同步,保障数据一致性
1.2 域名结构与服务器体系
完整合格域名格式:主机名.子域.二级域.顶级域.根域
全球仅有 13 台根域服务器,IPv6 架构下中国拥有 4 个名额,其余分布为美国 10 台、瑞典 1 台、英国 1 台、日本 1 台。
顶级域分为两类:
- 组织域(通用行业标识)
- .com:工商企业
- .net:网络服务
- .edu:教育机构
- .org:公益组织
- .gov:政府部门
- 国家域(代表地区归属)
- .cn:中国
1.3 核心查询机制与查询原理
递归查询:客户端向本地 DNS 服务器发起请求。本地 DNS 服务器负责把整个查询全部做完,直接返回最终 IP 结果给客户端。客户端无需参与中间过程。角色关系:客户端 ↔ 本地 DNS。
迭代查询:本地 DNS 拿到请求后,去找根服务器、顶级域服务器、二级域服务器逐级查询。每一级 DNS 不返回最终 IP,只告诉本地 DNS:下一级服务器地址,你自己接着去查。本地 DNS 不断去访问下一级,直到拿到域名对应的 IP。角色关系:本地 DNS → 根服务器 → 顶级域服务器 → 权威服务器。
缓存操作命令:Windows 系统可通过 ipconfig /displaydns 查看 DNS 缓存,ipconfig /flushdns 清空缓存;Linux 系统需安装 nscd 服务实现缓存清理。
1.4 DNS 完整查询流程
访问 www.163.com 的完整流程如下:
角色区分:
- 客户端:发起递归请求,只等待最终 IP
- 本地 DNS:接收递归请求,去做迭代查询,缓存结果
- 根 DNS:返回顶级域服务器地址
- 顶级域服务器:返回权威 DNS 服务地址
- 权威 DNS:持有域名原始记录,返回目标 IP
查询步骤:
- Step1 客户端发起请求(递归查询):浏览器向本地 DNS 服务器请求查询 www.163.com 的 IP
- Step2 本地 DNS 查询缓存,缓存无记录,则去找根 DNS 服务器发起迭代查询
- Step3 根服务器应答:告知该域名归 .com 顶级域管理,返回 .com 服务器地址
- Step4 本地 DNS 去查询 .com 顶级域服务器
- Step5 .com 服务器应答:告知去找 163.com 的权威服务器,返回权威服务器地址
- Step6 本地 DNS 去查询 163.com 权威服务器
- Step7 权威服务器返回 www.163.com 对应的 IP 地址
- Step8 本地 DNS 操作:①把 IP 缓存到自己服务器;②将 IP 返回给客户端,客户端拿到 IP 访问网站
1.5 DNS 主从服务架构
搭建 DNS 冗余,做域名解析的备份与负载分担。
- 主 DNS:权威节点,存放域名解析记录,唯一能增删修改域名记录
- 从 DNS:副本服务器,只读。定期通过 TCP 53 和主 DNS 同步域名数据,TCP 保证传输可靠,同步失败自动重试
- 客户端:通过 UDP 53 向主 / 从 DNS 查询域名,获取 IP 地址;普通查询优先 UDP,响应超过 512 字节才使用 TCP
- 作用:
- ①冗余备份,分担查询压力
- ②主 DNS 故障时,从 DNS 仍可对外解析,保证业务不中断
二、DHCP 动态主机配置协议
2.1 基础定义与端口规范
DHCP(Dynamic Host Configuration Protocol)作用:实现局域网内主机自动分配网络参数,规避手动配置的繁琐工作,有效防止局域网 IP 地址冲突,适配网络设备动态增减场景。
可分配参数:IP 地址、子网掩码、网关、DNS 服务器地址、租期等。
基于 UDP 协议:
- DHCP 服务端监听端口:UDP 67
- DHCP 客户端端口:UDP 68
为什么使用 UDP:
- TCP 是面向连接的协议,建立连接需要双方都有 IP
- UDP 是无连接协议,不需要预先建立连接,可用广播发包
- 客户机刚开机网卡是空的,没有 IP,没法建立 TCP 连接
2.2 DHCP 地址分配方式
- 自动分配:第一次分配永久使用(很少用)
- 动态分配:带租期,到期回收,最常用。拿到 169.254.x.x 地址代表 DHCP 地址分配失败,系统自动分配了链路本地地址
- 静态分配:MAC 绑定固定 IP,如服务器、监控、IP 永远不变
2.3 四步交互工作原理(DORA)
- Discover(发现):客户端无网络参数,全网广播请求,寻找局域网内 DHCP 服务器
- Offer(提供):DHCP 服务器收到请求后,从地址池筛选可用 IP,广播回应客户端
- Request(请求):客户端接收服务器邀约,确认选用对应 IP,再次广播发起正式租用请求
- Acknowledge(确认):服务器最终确认,下发完整网络参数,双方建立 IP 租赁关系(客户端拿到 Ack 之后,才正式启用 IP)
- 补充报文:Nak:否定确认,IP 不可用/地址冲突,拒绝分配;Decline:客户端检测 IP 冲突,通知服务器,拒绝该 IP;Release:客户端主动释放 IP(关机/断开网络);Inform:客户端已有静态 IP,只向 DHCP 服务器获取 DNS 等附加参数
三、FTP 文件传输协议
3.1 基础定义与端口规范
FTP(File Transfer Protocol)是一套专门用来在网络上上传、下载文件的应用层协议,工作在 TCP/IP 模型的应用层,C/S 架构。
核心特点:双连接
- 控制连接:TCP 21 端口,全程保持,负责账号认证、ls、get、put 等命令交互
- 数据连接:仅在传输文件/列目录时临时建立,传完断开。主动/被动模式,只影响数据连接是谁发起
端口:
- 20 端口:主动模式的数据端口,负责传输真实文件数据
- 21 端口:控制端口,持久连接,传输登录、指令(列出目录、上传下载命令)
3.2 核心体系与结构
FTP 服务端:搭建 FTP 服务,设置共享根目录;配置账号、用户读写权限。
FTP 客户端:工具包括 Xftp、FileZilla、浏览器、命令行 ftp。
用户类型:
- 匿名用户 anonymous:无需密码,一般仅开放下载权限
- 本地授权账号:用户名 + 密码,可配置上传、下载、删除权限
3.3 核心工作机制与原理
两种传输模式:
- 主动模式流程:
- ①客户端连接服务器 21 端口建立控制连接,完成登录认证
- ②客户端告知服务端自己监听端口
- ③服务器使用本机 20 端口主动向客户端发起数据连接
- ④数据连接完成文件/目录列表传输
- 被动模式流程:
- ①客户端连接服务器 21 端口建立控制连接,登录
- ②客户端发送 PASV 命令,服务器返回随机开放的高端口号
- ③客户端主动去连接该高端口建立数据连接
- ④传输文件或者目录信息
两类独立连接:
- 控制连接:客户端与服务器 21 端口建立,全程保持,只传输命令,不传输文件数据
- 数据连接:专门用来传输文件内容、目录列表,每次传输会新建/销毁
两种传输类型:
- ASCII:文本文件,自动转换换行符;传输程序、压缩包会损坏文件
- Binary(二进制):原样逐字节传输,图片、压缩包、程序必须 binary,生产默认二进制
3.4 常用命令(命令行 ftp)
- ls:查看远端目录
- get 文件名:下载文件到本地
- put 文件名:上传本地文件到服务端
3.5 vsftpd 简单介绍
vsftpd(Very Secure FTP Daemon)是 Linux 最常用的 FTP 服务,轻量、安全,企业常用 FTP 服务端。
配置文件:/etc/vsftpd/vsftpd.conf
核心配置项:
ini
anonymous_enable=NO # 关闭匿名用户
local_enable=YES # 允许本地系统账号登录
write_enable=YES # 允许上传写入
pasv_enable=YES # 开启被动模式