第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小型网络
私有IP10.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平均响应时间特点
Cloudflare1.1.1.11.0.0.1~10ms全球最快,隐私优先,24小时删除日志
Google8.8.8.88.8.4.4~20ms稳定可靠,支持DoH/DoT
Quad99.9.9.9149.112.112.112~15ms安全防护,自动拦截恶意域名
OpenDNS208.67.222.222208.67.220.220~18ms内容过滤,家长控制
阿里DNS223.5.5.5223.6.6.6~8ms(国内)国内访问最快
腾讯DNS119.29.29.29182.254.116.116~10ms(国内)国内优化,支持HttpDNS
NextDNS45.90.28.045.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对比表:

特性TCPUDP
连接方式面向连接无连接
可靠性可靠(重传机制)不可靠
速度较慢较快
开销
顺序保证
应用场景文件传输、网页浏览游戏、视频直播

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解密]──► 明文

常见算法:

算法密钥长度特点应用状态
AES128/192/256位安全性高、速度快广泛使用,硬件加速✅推荐
ChaCha20256位移动端性能优异Shadowsocks首选✅推荐
XChaCha20256位更大nonce空间新协议采用✅推荐
DES/3DES56/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)