第2章 网络基础知识¶
在深入学习科学上网技术之前,我们需要掌握一些必要的网络基础知识。这些知识将帮助你理解代理工作原理、排查连接问题,以及优化网络性能。
2.1 IP地址与DNS解析¶
2.1.1 IP地址基础¶
什么是IP地址?
IP地址(Internet Protocol Address)是互联网中每个设备的唯一标识,就像现实中的门牌号码。
IPv4地址
IPv4地址分类:
| 类别 | IP范围 | 用途 |
|---|---|---|
| A类 | 1.0.0.0 - 126.255.255.255 | 大型网络 |
| B类 | 128.0.0.0 - 191.255.255.255 | 中型网络 |
| C类 | 192.0.0.0 - 223.255.255.255 | 小型网络 |
| 私有IP | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | 内网使用 |
| 回环地址 | 127.0.0.1 | 本机测试 |
IPv6地址
格式:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
示例:2001:0db8:85a3:0000:0000:8a2e:0370:7334
简写:2001:db8:85a3::8a2e:370:7334
总数:约2^128个
公网IP vs 内网IP
家庭网络拓扑:
公网IP: 222.79.44.112
互联网 ◄──────────► 路由器(NAT)
│
┌─────────────┼─────────────┐
│ │ │
电脑A 电脑B 手机C
192.168.1.100 192.168.1.101 192.168.1.102
(内网IP) (内网IP) (内网IP)
2.1.2 DNS域名解析系统¶
DNS的作用
DNS(Domain Name System)将人类易记的域名转换为计算机使用的IP地址。
DNS解析过程详解:
完整DNS查询流程:
1. 用户输入 www.example.com
↓
2. 浏览器检查本地DNS缓存
↓ (未命中)
3. 查询操作系统hosts文件
↓ (未找到)
4. 向本地DNS服务器查询(通常是ISP提供)
↓
5. 本地DNS向根域名服务器查询 "."
↓
6. 根服务器返回 .com 顶级域名服务器地址
↓
7. 查询 .com 服务器,获取 example.com 的权威DNS
↓
8. 查询权威DNS,获取 www.example.com 的IP
↓
9. 返回结果并缓存(TTL时间内有效)
DNS记录类型:
| 记录类型 | 说明 | 示例 |
|---|---|---|
| A记录 | 域名指向IPv4地址 | example.com → 222.79.44.112 |
| AAAA记录 | 域名指向IPv6地址 | example.com → 2606:2800:220:1:248:... |
| CNAME | 域名别名 | www.example.com → example.com |
| MX记录 | 邮件服务器 | mail.example.com → 优先级10 |
| TXT记录 | 文本信息 | 用于域名验证、SPF记录等 |
| NS记录 | 域名服务器 | 指定权威DNS服务器 |
DNS污染问题
在某些网络环境下,DNS查询会被劫持返回错误IP:
解决DNS污染的方法:
- 使用国外公共DNS(8.8.8.8 - Google DNS)
- 使用加密DNS(DoH、DoT)
- 通过代理服务器进行DNS查询
- 修改hosts文件直接指定IP
2.1.3 常用公共DNS服务¶
| DNS提供商 | 首选DNS | 备用DNS | 平均响应时间 | 特点 |
|---|---|---|---|---|
| Cloudflare | 1.1.1.1 | 1.0.0.1 | ~10ms | 全球最快,隐私优先,24小时删除日志 |
| 8.8.8.8 | 8.8.4.4 | ~20ms | 稳定可靠,支持DoH/DoT | |
| Quad9 | 9.9.9.9 | 149.112.112.112 | ~15ms | 安全防护,自动拦截恶意域名 |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | ~18ms | 内容过滤,家长控制 |
| 阿里DNS | 223.5.5.5 | 223.6.6.6 | ~8ms(国内) | 国内访问最快 |
| 腾讯DNS | 119.29.29.29 | 182.254.116.116 | ~10ms(国内) | 国内优化,支持HttpDNS |
| NextDNS | 45.90.28.0 | 45.90.30.0 | ~12ms | 可定制规则,广告拦截 |
加密DNS协议:
- DoH(DNS over HTTPS):通过HTTPS加密DNS查询,端口443,主流浏览器已原生支持
- DoT(DNS over TLS):通过TLS加密DNS查询,端口853,Android 9+原生支持
- DoQ(DNS over QUIC):基于QUIC的新一代加密DNS,RFC 9250标准(2022年发布)
- DoH3(DNS over HTTP/3):基于HTTP/3的DNS查询,性能更优
- DNSCrypt:独立加密DNS协议,需专用客户端
2.2 HTTP/HTTPS协议基础¶
2.2.1 HTTP协议详解¶
HTTP(HyperText Transfer Protocol)超文本传输协议
HTTP是Web的基础协议,定义了客户端和服务器之间的通信规则。
HTTP请求结构:
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
[请求体(POST请求时包含)]
HTTP响应结构:
HTTP/1.1 200 OK
Date: Mon, 16 Dec 2025 10:00:00 GMT
Server: nginx/1.25.3
Content-Type: text/html; charset=UTF-8
Content-Length: 1024
Connection: keep-alive
<!DOCTYPE html>
<html>
<head><title>示例页面</title></head>
...
</html>
常见HTTP方法:
| 方法 | 说明 | 特点 |
|---|---|---|
| GET | 获取资源 | 无请求体、可缓存 |
| POST | 提交数据 | 有请求体、不可缓存 |
| PUT | 更新资源 | 完整替换 |
| DELETE | 删除资源 | 删除指定资源 |
| HEAD | 获取头信息 | 仅返回响应头 |
| OPTIONS | 查询支持的方法 | CORS预检请求 |
HTTP状态码:
| 状态码 | 含义 | 示例 |
|---|---|---|
| 1xx | 信息性 | 100 Continue |
| 2xx | 成功 | 200 OK, 201 Created |
| 3xx | 重定向 | 301 永久重定向, 302 临时重定向 |
| 4xx | 客户端错误 | 404 Not Found, 403 Forbidden |
| 5xx | 服务器错误 | 500 Internal Server Error, 502 Bad Gateway |
2.2.2 HTTPS加密通信¶
HTTPS = HTTP + TLS
HTTPS通过TLS协议(SSL已废弃)对HTTP通信进行加密,保护数据安全。
TLS版本演进: - TLS 1.0/1.1:已废弃(2021年起) - TLS 1.2:当前主流,广泛支持 - TLS 1.3:最新标准(2018年发布),性能更优
加密过程示意:
客户端 服务器
│ │
│─────── ①ClientHello ──────────────►│
│ (支持的加密算法列表) │
│ │
│◄────── ②ServerHello ────────────── │
│ (选择的加密算法+服务器证书) │
│ │
│─────── ③验证证书 ──────────────────►│
│ (检查证书有效性) │
│ │
│◄────── ④密钥交换 ──────────────── │
│ (协商加密密钥) │
│ │
│═══════ ⑤加密通信 ═══════════════►│
│ (使用对称加密传输数据) │
└────────────────────────────────────┘
HTTPS的优势:
- ✅ 加密传输:数据无法被中间人窃取
- ✅ 身份验证:确认服务器身份真实性
- ✅ 数据完整性:防止数据被篡改
- ✅ SEO优化:搜索引擎优先排名
- ✅ 浏览器信任:显示安全锁图标
TLS握手过程:
- 客户端发送支持的TLS版本和加密套件
- 服务器选择加密套件并发送证书
- 客户端验证证书(CA签名、有效期、域名)
- 使用非对称加密协商会话密钥
- 切换到对称加密进行后续通信
2.2.3 证书与CA¶
数字证书的作用
证书用于证明服务器身份的真实性,包含: - 域名信息 - 公钥 - 有效期 - CA签名
证书链验证:
常见CA机构:
- Let's Encrypt(免费、自动化)
- DigiCert
- GlobalSign
- Comodo
证书类型:
- DV证书(域名验证):仅验证域名所有权
- OV证书(组织验证):验证组织身份
- EV证书(扩展验证):最高级别验证,浏览器显示绿色地址栏
2.3 TCP/UDP传输协议¶
2.3.1 TCP协议详解¶
TCP(Transmission Control Protocol)传输控制协议
TCP是面向连接的可靠传输协议,保证数据按序到达。
TCP三次握手建立连接:
客户端 服务器
│ │
│──── ①SYN ────────────►│
│ (Seq=X) │
│ │
│◄─── ②SYN+ACK ─────────│
│ (Seq=Y, Ack=X+1) │
│ │
│──── ③ACK ────────────►│
│ (Ack=Y+1) │
│ │
│═══ 连接建立,开始传输 ══│
为什么是三次握手?
- 第一次:客户端发送能力正常
- 第二次:服务器收发能力正常
- 第三次:客户端接收能力正常,防止旧连接请求
TCP四次挥手断开连接:
客户端 服务器
│ │
│──── ①FIN ────────────►│
│ (我要关闭了) │
│ │
│◄─── ②ACK ─────────────│
│ (知道了,等我发完数据) │
│ │
│◄─── ③FIN ─────────────│
│ (我也发完了) │
│ │
│──── ④ACK ────────────►│
│ (好的,再见) │
└────────────────────────┘
TCP特性:
- ✅ 面向连接(建立连接后才能通信)
- ✅ 可靠传输(丢包重传、顺序保证)
- ✅ 流量控制(滑动窗口机制)
- ✅ 拥塞控制(慢启动、拥塞避免)
- ❌ 开销较大(三次握手、ACK确认)
TCP常见端口:
- 80:HTTP
- 443:HTTPS
- 22:SSH
- 21:FTP
- 3306:MySQL
2.3.2 UDP协议详解¶
UDP(User Datagram Protocol)用户数据报协议
UDP是无连接的不可靠传输协议,追求速度。
UDP通信过程:
客户端 服务器
│ │
│──── 数据包1 ──────────►│
│──── 数据包2 ──────────►│ (可能丢失)
│──── 数据包3 ──────────►│
│ │
无需建立连接,直接发送
无需等待确认,继续发送
UDP特性:
- ✅ 无连接(无需握手,直接发送)
- ✅ 低延迟(无ACK确认等待)
- ✅ 开销小(无连接维护)
- ❌ 不可靠(可能丢包、乱序)
- ❌ 无拥塞控制(可能造成网络拥堵)
UDP适用场景:
- 🎮 在线游戏(实时性要求高)
- 📹 视频直播(丢帧可接受)
- 🎤 语音通话(VoIP)
- 📡 DNS查询(快速响应)
- 🔄 QUIC协议(HTTP/3基础)
TCP vs UDP对比表:
| 特性 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接 | 无连接 |
| 可靠性 | 可靠(重传机制) | 不可靠 |
| 速度 | 较慢 | 较快 |
| 开销 | 大 | 小 |
| 顺序保证 | 是 | 否 |
| 应用场景 | 文件传输、网页浏览 | 游戏、视频直播 |
2.3.3 端口的概念¶
什么是端口?
端口是网络通信的"门牌号",用于区分同一主机上的不同服务。
端口范围:
- 0-1023:系统端口(需要管理员权限)
- 1024-49151:注册端口(常用软件)
- 49152-65535:动态端口(临时分配)
常用端口速查:
Web服务:
80 - HTTP
443 - HTTPS
8080 - 备用HTTP
远程控制:
22 - SSH
23 - Telnet
3389 - Windows远程桌面
数据库:
3306 - MySQL
5432 - PostgreSQL
6379 - Redis
27017 - MongoDB
代理服务:
1080 - SOCKS5代理
8388 - Shadowsocks常用端口
10808 - Clash默认端口
2.4 代理的概念与分类¶
2.4.1 代理服务器基础¶
什么是代理?
代理服务器是客户端和目标服务器之间的中间者,代替客户端向目标服务器发起请求。
代理的作用:
- 隐藏真实IP:保护隐私
- 突破限制:访问被封锁的网站
- 加速访问:通过缓存提高速度
- 内容过滤:企业网络管控
- 负载均衡:分散流量压力
2.4.2 代理类型分类¶
按工作层次分类:
1. HTTP代理
- 工作在应用层
- 仅能代理HTTP/HTTPS流量
- 配置简单,使用广泛
- 例如:Squid、Nginx
2. SOCKS代理
- 工作在会话层
- 可代理任何TCP/UDP流量
- 更加通用和灵活
- SOCKS4:仅支持TCP
- SOCKS5:支持TCP/UDP + 身份验证
3. 透明代理
- 用户无感知,自动转发
- 常用于企业网关
- 可能缓存内容
按匿名程度分类:
| 类型 | HTTP头 | 匿名性 | 说明 |
|---|---|---|---|
| 透明代理 | Via: proxy_IPX-Forwarded-For: 真实IP |
低 | 目标服务器知道你使用了代理和真实IP |
| 匿名代理 | Via: proxy_IP无真实IP |
中 | 知道你用了代理,但不知道真实IP |
| 高匿代理 | 无任何代理标识 | 高 | 完全无法察觉使用了代理 |
按部署位置分类:
1. 正向代理(Forward Proxy)
- 代理客户端访问外网 - 客户端需要配置代理 - 科学上网属于正向代理2. 反向代理(Reverse Proxy)
- 代理服务器接收外部请求 - 分发到内部多台服务器 - 常见:Nginx、HAProxy2.4.3 科学上网常用代理协议¶
1. HTTP/HTTPS代理
- 简单易用
- 浏览器原生支持
- 易被识别封锁
2. SOCKS5代理
3. Shadowsocks系列
4. V2Ray/Xray(VMess/VLESS)
特点:
✓ 强大的流量伪装能力
✓ 多种传输方式(TCP/WebSocket/HTTP/2/gRPC/QUIC)
✓ 灵活的路由规则
✓ 抗封锁能力强
✓ Xray性能优于V2Ray
✓ 支持XTLS、Vision等新特性
5. Trojan/Trojan-Go
6. Hysteria2/TUIC(基于QUIC)
2.5 加密技术基础¶
2.5.1 加密的重要性¶
在科学上网过程中,加密技术保护你的:
- 🔒 访问内容不被窃听
- 🔒 真实目的不被识别
- 🔒 流量特征不被检测
- 🔒 身份隐私不被泄露
2.5.2 对称加密¶
原理: 加密和解密使用相同的密钥。
常见算法:
| 算法 | 密钥长度 | 特点 | 应用 | 状态 |
|---|---|---|---|---|
| AES | 128/192/256位 | 安全性高、速度快 | 广泛使用,硬件加速 | ✅推荐 |
| ChaCha20 | 256位 | 移动端性能优异 | Shadowsocks首选 | ✅推荐 |
| XChaCha20 | 256位 | 更大nonce空间 | 新协议采用 | ✅推荐 |
| DES/3DES | 56/168位 | 已被破解 | 完全淘汰 | ❌禁用 |
优点:
- ✅ 加解密速度快
- ✅ 适合大量数据
缺点:
- ❌ 密钥分发困难
- ❌ 密钥泄露风险大
2.5.3 非对称加密¶
原理: 使用公钥加密,私钥解密(或反之)。
常见算法:
- RSA:最广泛使用,2048位以上安全
- ECC(椭圆曲线):更短密钥达到同等安全性
- Ed25519:性能优异的签名算法
应用场景:
- TLS握手中的密钥交换
- 数字签名和身份认证
- SSL证书验证
2.5.4 混合加密(HTTPS的方式)¶
结合两种加密的优点:
TLS连接建立:
1. 服务器发送公钥证书 ────────► 客户端
2. 客户端生成随机会话密钥
3. 用服务器公钥加密会话密钥 ──► 服务器
4. 服务器用私钥解密获得会话密钥
5. 双方使用会话密钥进行对称加密通信
(AES加密实际数据传输)
2.5.5 哈希算法¶
特点:
- 单向函数,不可逆
- 输入任意长度,输出固定长度
- 微小改变导致完全不同的结果
常见算法:
MD5: 128位输出(已不安全,仅用于文件校验)
SHA-1: 160位输出(已废弃,不应使用)
SHA-256:256位输出(当前推荐标准)
SHA-512:512位输出(更高安全性)
SHA-3: 可变输出(最新标准,2015年)
BLAKE2/BLAKE3: 高性能哈希(现代选择)
应用:
- 密码存储(加盐哈希)
- 数据完整性校验
- 数字签名
2.5.6 加密强度对比¶
科学上网推荐加密方案:
| 用途 | 推荐算法 | 安全性 | 性能 | 备注 |
|---|---|---|---|---|
| 流量加密 | AES-256-GCM | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | CPU硬件加速 |
| 流量加密 | ChaCha20-Poly1305 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 移动设备首选 |
| 流量加密 | XChaCha20-Poly1305 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | SS2022新标准 |
| 密钥交换 | X25519(ECDH) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 椭圆曲线DH |
| 身份认证 | Ed25519 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 现代签名算法 |
| TLS握手 | RSA-2048+ | ⭐⭐⭐⭐ | ⭐⭐⭐ | 传统方案 |
不推荐的加密:
- ❌ RC4(已被完全破解)
- ❌ DES/3DES(密钥过短,已淘汰)
- ❌ MD5用于安全目的(仅可用于文件校验)
- ❌ SHA-1(已被攻破,禁止使用)
- ❌ RSA-1024(密钥长度不足)
- ❌ 任何自创加密算法
- ❌ Shadowsocks旧式流加密(非AEAD)
本章小结¶
本章介绍了科学上网所需的网络基础知识:
核心概念:
- IP与DNS:互联网寻址的基础,DNS污染是主要封锁手段之一
- HTTP/HTTPS:Web通信协议,HTTPS加密是现代网络安全基石
- TCP/UDP:传输层协议,科学上网工具灵活运用两者优势
- 代理技术:流量中转的核心机制,多种协议各有特点
- 加密技术:保护通信安全,对抗流量检测的关键
知识应用:
- 理解DNS污染才能选择正确的DNS方案
- 掌握TCP/UDP特性才能优化连接性能
- 了解加密原理才能选择安全的配置
- 熟悉代理类型才能排查连接问题
在下一章,我们将学习这些基础知识如何应用于科学上网的核心技术原理。
实践建议:
- 尝试使用
nslookup命令查询域名解析 - 用
ping测试延迟,理解网络往返时间 - 使用浏览器开发者工具观察HTTP请求
- 查看HTTPS网站的证书信息
延伸阅读:
- RFC 791(IP协议规范)
- RFC 793(TCP协议规范)
- RFC 1035(DNS协议规范)
- RFC 8446(TLS 1.3规范,2018)
- RFC 9000(QUIC协议,2021)
- RFC 9250(DNS over QUIC,2022)