跳转至

第2章 网络基础知识

在深入学习科学上网技术之前,我们需要掌握一些必要的网络基础知识。这些知识将帮助你理解代理工作原理、排查连接问题,以及优化网络性能。

2.1 IP地址与DNS解析

2.1.1 IP地址基础

什么是IP地址?

IP地址(Internet Protocol Address)是互联网中每个设备的唯一标识,就像现实中的门牌号码。

IPv4地址

格式:xxx.xxx.xxx.xxx
示例:192.168.1.1
范围:0.0.0.0 - 255.255.255.255
总数:约43亿个(2^32)

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地址。

用户输入:www.google.com
DNS查询
返回IP:142.250.77.14
浏览器连接该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:

正常情况:
查询 x.com → 返回 162.159.140.229

DNS污染:
查询 x.com → 被劫持返回 0.0.0.0 或错误IP
                 → 用户无法访问

解决DNS污染的方法:

  1. 使用国外公共DNS(8.8.8.8 - Google DNS)
  2. 使用加密DNS(DoH、DoT)
  3. 通过代理服务器进行DNS查询
  4. 修改hosts文件直接指定IP

2.1.3 常用公共DNS服务

DNS提供商 首选DNS 备用DNS 平均响应时间 特点
Cloudflare 1.1.1.1 1.0.0.1 ~10ms 全球最快,隐私优先,24小时删除日志
Google 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握手过程:

  1. 客户端发送支持的TLS版本和加密套件
  2. 服务器选择加密套件并发送证书
  3. 客户端验证证书(CA签名、有效期、域名)
  4. 使用非对称加密协商会话密钥
  5. 切换到对称加密进行后续通信

2.2.3 证书与CA

数字证书的作用

证书用于证明服务器身份的真实性,包含: - 域名信息 - 公钥 - 有效期 - CA签名

证书链验证:

根证书(Root CA)
   ↓ 签名
中间证书(Intermediate CA)
   ↓ 签名
网站证书(example.com)

常见CA机构:

  • Let's Encrypt(免费、自动化)
  • DigiCert
  • GlobalSign
  • Comodo

证书类型:

  1. DV证书(域名验证):仅验证域名所有权
  2. OV证书(组织验证):验证组织身份
  3. 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 端口的概念

什么是端口?

端口是网络通信的"门牌号",用于区分同一主机上的不同服务。

IP地址:指向哪台计算机(192.168.2.28)
端口号:指向哪个应用程序(80端口=Web服务器)

完整地址:192.168.2.28:80

端口范围:

  • 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暴露)

通过代理访问:
用户 ──────► 代理服务器 ──────► 目标网站
   (加密)    (代理IP)      (看到的是代理IP)

代理的作用:

  1. 隐藏真实IP:保护隐私
  2. 突破限制:访问被封锁的网站
  3. 加速访问:通过缓存提高速度
  4. 内容过滤:企业网络管控
  5. 负载均衡:分散流量压力

2.4.2 代理类型分类

按工作层次分类:

1. HTTP代理

  • 工作在应用层
  • 仅能代理HTTP/HTTPS流量
  • 配置简单,使用广泛
  • 例如:Squid、Nginx

2. SOCKS代理

  • 工作在会话层
  • 可代理任何TCP/UDP流量
  • 更加通用和灵活
  • SOCKS4:仅支持TCP
  • SOCKS5:支持TCP/UDP + 身份验证

3. 透明代理

  • 用户无感知,自动转发
  • 常用于企业网关
  • 可能缓存内容

按匿名程度分类:

类型 HTTP头 匿名性 说明
透明代理 Via: proxy_IP
X-Forwarded-For: 真实IP
目标服务器知道你使用了代理和真实IP
匿名代理 Via: proxy_IP
无真实IP
知道你用了代理,但不知道真实IP
高匿代理 无任何代理标识 完全无法察觉使用了代理

按部署位置分类:

1. 正向代理(Forward Proxy)

企业内网场景:
员工电脑 ──► 公司代理服务器 ──► 互联网
           (统一管理、内容过滤)
- 代理客户端访问外网 - 客户端需要配置代理 - 科学上网属于正向代理

2. 反向代理(Reverse Proxy)

网站服务器场景:
用户 ──► Nginx反向代理 ──► 后端服务器1
                         ──► 后端服务器2
                         ──► 后端服务器3
- 代理服务器接收外部请求 - 分发到内部多台服务器 - 常见:Nginx、HAProxy

2.4.3 科学上网常用代理协议

1. HTTP/HTTPS代理

配置示例:
代理地址:proxy.example.com
端口:8080
用户名:user
密码:pass

  • 简单易用
  • 浏览器原生支持
  • 易被识别封锁

2. SOCKS5代理

特点:
✓ 支持TCP和UDP
✓ 支持身份验证
✓ 协议通用性强
✓ 可代理任何应用
✓ 性能开销小

3. Shadowsocks系列

优势:
✓ 加密流量,难以检测
✓ 轻量级,速度快
✓ 支持多种加密算法(2022版本强制AEAD)
✓ 开源,生态完善
✓ SIP003插件系统支持

4. V2Ray/Xray(VMess/VLESS)

特点:
✓ 强大的流量伪装能力
✓ 多种传输方式(TCP/WebSocket/HTTP/2/gRPC/QUIC)
✓ 灵活的路由规则
✓ 抗封锁能力强
✓ Xray性能优于V2Ray
✓ 支持XTLS、Vision等新特性

5. Trojan/Trojan-Go

设计理念:
✓ 模仿HTTPS流量
✓ 流量特征与正常网站一致
✓ 难以被主动探测
✓ 配置相对简单
✓ Trojan-Go支持多路复用

6. Hysteria2/TUIC(基于QUIC)

新兴协议:
✓ 基于QUIC(UDP),拥塞控制优秀
✓ 弱网环境表现优异
✓ 0-RTT握手,延迟更低
✓ 多路复用无队头阻塞
✓ 适合高丢包率网络

2.5 加密技术基础

2.5.1 加密的重要性

在科学上网过程中,加密技术保护你的:

  • 🔒 访问内容不被窃听
  • 🔒 真实目的不被识别
  • 🔒 流量特征不被检测
  • 🔒 身份隐私不被泄露

2.5.2 对称加密

原理: 加密和解密使用相同的密钥。

明文 ──[密钥K加密]──► 密文 ──[密钥K解密]──► 明文

常见算法:

算法 密钥长度 特点 应用 状态
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)

本章小结

本章介绍了科学上网所需的网络基础知识:

核心概念:

  1. IP与DNS:互联网寻址的基础,DNS污染是主要封锁手段之一
  2. HTTP/HTTPS:Web通信协议,HTTPS加密是现代网络安全基石
  3. TCP/UDP:传输层协议,科学上网工具灵活运用两者优势
  4. 代理技术:流量中转的核心机制,多种协议各有特点
  5. 加密技术:保护通信安全,对抗流量检测的关键

知识应用:

  • 理解DNS污染才能选择正确的DNS方案
  • 掌握TCP/UDP特性才能优化连接性能
  • 了解加密原理才能选择安全的配置
  • 熟悉代理类型才能排查连接问题

在下一章,我们将学习这些基础知识如何应用于科学上网的核心技术原理。


实践建议:

  1. 尝试使用nslookup命令查询域名解析
  2. ping测试延迟,理解网络往返时间
  3. 使用浏览器开发者工具观察HTTP请求
  4. 查看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)