第4章 常见代理协议详解¶
在了解了科学上网的基础原理后,本章将深入介绍主流的代理协议。这些协议是实现科学上网的核心技术,各有特点和适用场景。
4.1 Shadowsocks系列(SS/SSR)¶
4.1.1 Shadowsocks诞生背景¶
历史时刻:
- 2012年:@clowwindy 在GitHub发布Shadowsocks
- 设计理念:轻量、快速、安全、易部署
- 核心思想:SOCKS5代理 + 流量加密
为什么叫Shadowsocks?
Shadowsocks:在SOCKS代理的阴影下,隐藏真实流量
4.1.2 Shadowsocks工作原理¶
完整通信流程:
客户端 服务器
│ │
│────────── ①本地应用发起SOCKS5请求 ──────────────────►│
│ (如访问google.com) │
│ │
│────────── ②SS客户端加密请求 ───────────────────────► │
│ [加密(目标地址 + 数据)] │
│ 使用预设密码和加密算法 │
│ │
│ │─── ③SS服务器解密
│ │ 获取真实目标地址
│ │
│ │─── ④连接目标网站
│ │ (google.com)
│ │
│◄────────── ⑤返回加密响应 ───────────────────────────
│ [加密(网站返回数据)] │
│ │
│─────── ⑥本地解密,返回给应用 │
数据包结构:
Shadowsocks数据包格式:
┌────────────┬──────────────┬──────────┬─────────────┐
│ IV/Salt │ 目标地址类型 │ 目标地址 │ 加密的数据 │
│ (随机) │ (1字节) │ (变长) │ │
└────────────┴──────────────┴──────────┴─────────────┘
目标地址类型:
0x01 = IPv4地址 (4字节)
0x03 = 域名 (1字节长度 + 域名)
0x04 = IPv6地址 (16字节)
加密方式:
使用密码派生密钥
每个连接使用唯一的IV(初始化向量)
4.1.3 加密方法详解¶
支持的加密算法:
| 加密方法 | 密钥长度 | 安全性 | 速度 | 推荐度 |
|---|---|---|---|---|
| aes-128-gcm | 128位 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅ 推荐 |
| aes-256-gcm | 256位 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ✅ 推荐 |
| chacha20-ietf-poly1305 | 256位 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ✅✅ 强烈推荐 |
| aes-256-cfb | 256位 | ⭐⭐⭐ | ⭐⭐⭐ | ⚠️ 旧版本 |
| rc4-md5 | 128位 | ⭐ | ⭐⭐⭐⭐⭐ | ❌ 已淘汰 |
AEAD加密方法(推荐):
AEAD = Authenticated Encryption with Associated Data
认证加密,防篡改
为什么推荐:
✓ 加密 + 认证,双重保护
✓ 防止中间人攻击
✓ 检测数据是否被篡改
✓ 现代密码学标准
推荐选择:
1. chacha20-ietf-poly1305 (移动端优先)
2. aes-256-gcm (桌面端优先,CPU支持AES-NI)
3. aes-128-gcm (性能和安全平衡)
4.1.4 ShadowsocksR (SSR)¶
SSR的增强功能:
ShadowsocksR是Shadowsocks的分支版本,增加了混淆和协议插件。
主要特性:
-
协议插件(Protocol)
-
混淆插件(Obfs)
SSR配置示例:
{
"server": "example.com",
"server_port": 8388,
"password": "your_password",
"method": "chacha20-ietf-poly1305",
"protocol": "auth_aes128_sha1",
"protocol_param": "",
"obfs": "tls1.2_ticket_auth",
"obfs_param": "cloudflare.com"
}
混淆参数说明:
4.1.5 SS vs SSR对比¶
| 特性 | Shadowsocks | ShadowsocksR |
|---|---|---|
| 开发者 | clowwindy | breakwa11 |
| 发布时间 | 2012年 | 2015年 |
| 协议纯净度 | 简洁 | 复杂(增加协议层) |
| 混淆能力 | 基础 | 强(协议+混淆) |
| 抗封锁 | 中 | 强 |
| 性能 | 优秀 | 良好(有额外开销) |
| 维护状态 | 活跃 | 较少更新 |
| 推荐场景 | 一般环境 | 封锁严重地区 |
选择建议:
选择Shadowsocks:
✓ 网络环境较好
✓ 追求极致性能
✓ 使用AEAD加密方法
✓ 配合CDN等其他手段
选择ShadowsocksR:
✓ 网络封锁严重
✓ SS经常被断连
✓ 需要流量混淆
✓ 配合协议和混淆插件
4.1.6 实战配置案例¶
服务器端配置(以ss-rust为例):
{
"server": "0.0.0.0",
"server_port": 8388,
"password": "myStrongPassword123!",
"method": "chacha20-ietf-poly1305",
"timeout": 300,
"fast_open": true,
"mode": "tcp_and_udp"
}
客户端配置:
{
"server": "your-server-ip",
"server_port": 8388,
"local_address": "127.0.0.1",
"local_port": 1080,
"password": "myStrongPassword123!",
"method": "chacha20-ietf-poly1305",
"timeout": 300
}
启动命令:
# 服务器端
ss-server -c config.json
# 客户端
ss-local -c config.json
# 后台运行
nohup ss-server -c config.json > ss.log 2>&1 &
4.1.7 Shadowsocks插件系统¶
常用插件:
1. simple-obfs(简单混淆)
# 服务器端
ss-server -c config.json --plugin obfs-server --plugin-opts "obfs=tls"
# 客户端
ss-local -c config.json --plugin obfs-local --plugin-opts "obfs=tls;obfs-host=cloudflare.com"
2. v2ray-plugin(V2Ray混淆)
3. kcptun(KCP加速)
4.2 V2Ray/Xray协议族¶
4.2.1 V2Ray项目简介¶
V2Ray的定位:
- 不仅是代理工具,更是一个平台
- 模块化设计,灵活组合
- 支持多种协议和传输方式
- 强大的路由功能
核心架构:
┌─────────────────────────────────────┐
│ V2Ray Core │
│ │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ 入站 │ │ 路由 │ │ 出站 │ │
│ │ Inbound│─►│Routing │─►│Outbound│ │
│ └────────┘ └────────┘ └────────┘ │
│ ▲ │ │ │
│ │ ▼ ▼ │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ 协议层 │ │ 规则库 │ │ 协议层 │ │
│ │ VMess │ │ 域名/IP │ │ Freedom│ │
│ │ VLESS │ │ GeoIP │ │ VMess │ │
│ │ Socks │ │ 自定义 │ │ Socks │ │
│ └────────┘ └────────┘ └────────┘ │
│ │
│ ┌──────────────────────────────┐ │
│ │ 传输层 (StreamSettings) │ │
│ │ TCP / WebSocket / HTTP/2 │ │
│ │ mKCP / QUIC / gRPC │ │
│ └──────────────────────────────┘ │
└─────────────────────────────────────┘
Xray的关系:
V2Ray (原项目)
↓
Project X (新团队)
↓
Xray-core (性能增强版)
Xray特点:
✓ 完全兼容V2Ray配置
✓ 性能优化(更快)
✓ 新协议支持(VLESS、XTLS)
✓ 更活跃的开发
4.2.2 VMess协议¶
VMess特点:
- V2Ray原创协议
- 基于时间的动态认证
- 强加密,支持多种加密方式
- 内置混淆和伪装
VMess数据包结构:
┌──────────┬──────────┬──────────┬──────────┐
│ 认证信息 │ 指令部分 │ 数据部分 │ 校验和 │
└──────────┴──────────┴──────────┴──────────┘
认证信息:
- 时间戳 (Unix time)
- UUID (用户ID)
- 随机值
→ 防重放攻击
指令部分:
- 目标地址
- 端口
- 命令类型(TCP/UDP)
数据部分:
- 实际传输数据
- 使用AES加密
VMess配置示例:
{
"inbounds": [{
"port": 10086,
"protocol": "vmess",
"settings": {
"clients": [{
"id": "UUID-HERE",
"alterId": 0
}]
},
"streamSettings": {
"network": "tcp"
}
}],
"outbounds": [{
"protocol": "freedom"
}]
}
alterId参数说明:
alterId: 额外ID数量
alterId = 0 (推荐):
✓ 不生成额外ID
✓ 更安全(减少攻击面)
✓ 新版推荐设置
alterId = 64/100 (旧版):
✗ 生成额外ID混淆
✗ 已过时
✗ 可能有安全隐患
4.2.3 VLESS协议¶
VLESS设计理念:
- VMess的轻量化版本
- 去除加密层(由TLS负责)
- 更少的协议开销
- 更快的传输速度
⚠️ 重要提示:
VLESS vs VMess:
| 特性 | VMess | VLESS |
|---|---|---|
| 加密 | 内置加密 | 依赖TLS |
| 性能 | 良好 | 更优 |
| 协议开销 | 较多 | 极少 |
| 时间校验 | 严格(±90s) | 无 |
| 复杂度 | 较高 | 简单 |
| 抗检测能力 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 推荐场景 | 不使用TLS时 | 配合TLS/Reality使用 |
VLESS配置示例:
{
"inbounds": [{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [{
"id": "UUID-HERE",
"level": 0
}],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"certificates": [{
"certificateFile": "/path/to/cert.pem",
"keyFile": "/path/to/key.pem"
}]
}
}
}]
}
VLESS + XTLS:
XTLS = 极致的TLS优化
原理:
当内层已经是TLS加密时(如HTTPS)
外层TLS不再加密,直接转发
↓
避免双重加密的性能损失
↓
速度提升20%-40%
配置:
"security": "xtls",
"xtlsSettings": {
"alpn": ["h2", "http/1.1"]
}
VLESS + Reality(推荐):
Reality = 新一代伪装技术
核心优势:
✓ 完美模仿真实TLS指纹
✓ 无需购买域名和证书
✓ 抗主动探测能力极强
✓ GFW难以通过TLS特征识别
工作原理:
1. 使用真实网站的TLS指纹
2. 客户端认证通过 → 建立代理连接
3. 认证失败 → 转发到真实网站
4. 防火墙无法区分真假流量
为什么是最佳选择:
• 能够有效抵抗基于TLS特征的检测
• GFW的检测技术不断升级,Reality应对能力最强
• 配置相对简单,性能优秀
• 适合需要高安全性和稳定性的用户
配置示例:
{
"protocol": "vless",
"settings": {
"clients": [{
"id": "UUID-HERE",
"flow": "xtls-rprx-vision"
}],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"dest": "www.microsoft.com:443",
"serverNames": ["www.microsoft.com"],
"privateKey": "YOUR_PRIVATE_KEY",
"shortIds": [""]
}
}
}
推荐目标网站(dest):
- www.microsoft.com
- www.apple.com
- www.cloudflare.com
- www.amazon.com
选择访问量大、信誉好的网站
4.2.4 Trojan协议¶
Trojan设计哲学:
"最好的伪装就是不被发现"
核心思想:
Trojan工作流程:
客户端连接 ──► Trojan服务器
│
验证密码hash
│
┌────────┴────────┐
│ │
密码正确 密码错误
│ │
建立代理连接 返回真实网站内容
│ │
访问目标网站 (伪装成普通访问)
│ │
◄────┘ │
│
防火墙无法识别
Trojan数据包格式:
┌─────────────┬──────┬──────────┬──────┬──────────┐
│ 密码SHA224 │ CRLF │ 目标地址 │ CRLF │ 数据 │
└─────────────┴──────┴──────────┴──────┴──────────┘
56字节 2字节 2字节
外层:TLS加密
内层:Trojan协议
防火墙看到:标准TLS 1.2/1.3流量
实际传输:代理数据
Trojan配置示例:
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"your_password_here"
],
"ssl": {
"cert": "/path/to/fullchain.pem",
"key": "/path/to/privkey.pem",
"sni": "yoursite.com"
}
}
Trojan-Go增强版:
4.2.5 传输方式详解¶
V2Ray支持多种传输方式(Transport),可灵活组合。
1. TCP传输
{
"network": "tcp",
"tcpSettings": {
"header": {
"type": "none" // 或 "http" 伪装
}
}
}
特点:
✓ 最简单、最直接
✓ 延迟低
✗ 容易被识别
2. WebSocket (WS)
{
"network": "ws",
"wsSettings": {
"path": "/v2ray",
"headers": {
"Host": "yoursite.com"
}
}
}
特点:
✓ CDN友好(可过Cloudflare)
✓ 伪装成Web应用
✓ 可配合Nginx
✗ 性能略有损失
3. HTTP/2
{
"network": "h2",
"httpSettings": {
"host": ["yoursite.com"],
"path": "/v2ray"
}
}
特点:
✓ 多路复用
✓ 流量特征像真实HTTPS
✓ 性能优秀
✗ 必须配合TLS
4. mKCP
{
"network": "mkcp",
"kcpSettings": {
"mtu": 1350,
"tti": 50,
"uplinkCapacity": 12,
"downlinkCapacity": 100,
"congestion": true,
"header": {
"type": "wechat-video" // 伪装成微信视频
}
}
}
特点:
✓ 基于UDP
✓ 高丢包环境表现好
✓ 可伪装(wechat-video/dtls/wireguard)
✗ 流量消耗大(约2-3倍)
5. QUIC
{
"network": "quic",
"quicSettings": {
"security": "aes-128-gcm",
"key": "your_key",
"header": {
"type": "dtls"
}
}
}
特点:
✓ 0-RTT连接
✓ 移动网络友好
✓ HTTP/3基础协议
✗ 部分地区UDP受限
6. gRPC
{
"network": "grpc",
"grpcSettings": {
"serviceName": "your_service_name",
"multiMode": true
}
}
特点:
✓ Google的RPC框架
✓ 流量特征真实
✓ 支持多路复用
✓ 性能优秀
传输方式选择建议:
场景推荐:
常规使用:
TCP + TLS (简单稳定)
通过CDN:
WebSocket + TLS (Cloudflare友好)
高速传输:
gRPC + TLS 或 HTTP/2 + TLS
丢包环境:
mKCP (游戏、移动网络)
极致隐蔽:
WebSocket + TLS + CDN + 真实网站
4.2.6 Hysteria协议¶
Hysteria简介:
Hysteria是基于QUIC协议的高性能代理协议,专为不稳定网络环境优化。
核心特点:
Hysteria vs 传统协议:
| 特性 | Hysteria | Shadowsocks | VMess |
|---|---|---|---|
| 传输协议 | QUIC (UDP) | TCP | TCP |
| 弱网表现 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 速度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 流量消耗 | 较高 | 正常 | 正常 |
| 抗检测 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
配置示例:
// 服务器配置
{
"listen": ":443",
"protocol": "udp",
"cert": "/path/to/cert.pem",
"key": "/path/to/key.pem",
"up_mbps": 100,
"down_mbps": 100,
"auth": {
"mode": "password",
"config": {
"password": "your_password"
}
}
}
// 客户端配置
{
"server": "your-server.com:443",
"protocol": "udp",
"up_mbps": 50,
"down_mbps": 100,
"auth_str": "your_password",
"socks5": {
"listen": "127.0.0.1:1080"
}
}
适用场景:
推荐使用:
✓ 网络不稳定(高丢包、高延迟)
✓ 大文件传输
✓ 4K视频流媒体
✓ 移动网络(4G/5G频繁切换)
✓ 游戏加速
注意事项:
⚠️ 长时间大流量可能被GFW针对
⚠️ 流量消耗约为正常的1.5-2倍
⚠️ 部分地区UDP受限
⚠️ 需要服务器支持高带宽
使用建议:
主力方案:VLESS + Reality(稳定隐蔽)
备用方案:Hysteria(速度优先)
组合策略:根据场景智能切换
场景切换:
- 日常浏览 → VLESS + Reality
- 视频下载 → Hysteria
- 游戏加速 → Hysteria
- 敏感时期 → VLESS + Reality
4.3 Clash内核与规则¶
4.3.1 Clash简介¶
Clash是一个基于规则的多协议代理客户端。
Clash家族:
Clash (原版)
├── Clash Premium (闭源增强版)
│ ✓ TUN模式
│ ✓ 规则增强
│ ✓ 脚本支持
│
└── Clash.Meta (开源增强版)
✓ 完全开源
✓ 更多协议支持
✓ 性能优化
支持的协议:
- Shadowsocks / ShadowsocksR
- VMess / VLESS
- Trojan / Trojan-Go
- Snell
- SOCKS5 / HTTP(S)
- WireGuard (Meta)
4.3.2 Clash配置文件结构¶
基本配置框架:
# Clash配置文件 (config.yaml)
# 端口配置
port: 7890 # HTTP代理端口
socks-port: 7891 # SOCKS5代理端口
mixed-port: 7892 # 混合端口
allow-lan: false # 允许局域网连接
bind-address: "*" # 绑定地址
mode: rule # 运行模式: rule/global/direct
log-level: info # 日志级别
# DNS配置
dns:
enable: true
listen: 0.0.0.0:53
enhanced-mode: fake-ip
nameserver:
- 223.5.5.5
- 119.29.29.29
fallback:
- 8.8.8.8
- 1.1.1.1
# 代理节点
proxies:
- name: "节点1"
type: ss
server: server1.com
port: 8388
cipher: chacha20-ietf-poly1305
password: "password"
- name: "节点2"
type: vmess
server: server2.com
port: 443
uuid: your-uuid
alterId: 0
cipher: auto
tls: true
# 代理组
proxy-groups:
- name: "🚀 代理选择"
type: select
proxies:
- "♻️ 自动选择"
- "节点1"
- "节点2"
- name: "♻️ 自动选择"
type: url-test
proxies:
- "节点1"
- "节点2"
url: 'http://www.gstatic.com/generate_204'
interval: 300
# 规则
rules:
- DOMAIN-SUFFIX,google.com,🚀 代理选择
- DOMAIN-KEYWORD,youtube,🚀 代理选择
- GEOIP,CN,DIRECT
- MATCH,🚀 代理选择
4.3.3 代理组类型详解¶
1. select(手动选择)
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies:
- "香港节点"
- "美国节点"
- "日本节点"
用途:手动切换节点
场景:看不同地区Netflix、游戏切换
2. url-test(自动选择)
proxy-groups:
- name: "♻️ 自动选择"
type: url-test
proxies:
- "节点A"
- "节点B"
- "节点C"
url: 'http://www.gstatic.com/generate_204'
interval: 300
tolerance: 150
原理:
定期测试所有节点延迟
自动选择最快的节点
延迟差<tolerance时不切换(避免频繁切换)
3. fallback(故障转移)
proxy-groups:
- name: "🌐 故障转移"
type: fallback
proxies:
- "主节点"
- "备用节点1"
- "备用节点2"
url: 'http://www.gstatic.com/generate_204'
interval: 300
原理:
按顺序测试节点
使用第一个可用的节点
主节点故障时自动切换到备用
主节点恢复后自动切回
4. load-balance(负载均衡)
proxy-groups:
- name: "⚖️ 负载均衡"
type: load-balance
proxies:
- "节点1"
- "节点2"
- "节点3"
url: 'http://www.gstatic.com/generate_204'
interval: 300
strategy: consistent-hashing # 或 round-robin
策略:
consistent-hashing: 同一域名总是走同一节点(保持会话)
round-robin: 轮流使用各节点(分散负载)
4.3.4 规则类型详解¶
规则语法:
常用规则类型:
# 1. 域名规则
- DOMAIN,www.google.com,Proxy # 完整匹配
- DOMAIN-SUFFIX,google.com,Proxy # 后缀匹配(含子域名)
- DOMAIN-KEYWORD,google,Proxy # 关键词匹配
# 2. IP规则
- IP-CIDR,192.168.0.0/16,DIRECT # IP段
- IP-CIDR6,2001:db8::/32,DIRECT # IPv6段
- GEOIP,CN,DIRECT # 地理位置(中国IP直连)
# 3. 端口规则
- DST-PORT,80,DIRECT # 目标端口
- SRC-PORT,7777,DIRECT # 源端口
# 4. 进程规则(Clash Premium)
- PROCESS-NAME,chrome.exe,Proxy # Windows
- PROCESS-NAME,telegram,Proxy # Linux/Mac
# 5. 规则集
- RULE-SET,google,Proxy # 引用规则集
# 6. 最终规则
- MATCH,Proxy # 兜底规则(匹配所有)
规则集(Rule Providers):
rule-providers:
google:
type: http
behavior: domain
url: "https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt"
path: ./ruleset/google.yaml
interval: 86400
rules:
- RULE-SET,google,Proxy
4.3.5 实用配置案例¶
完整的分流配置:
proxy-groups:
- name: "🚀 节点选择"
type: select
proxies:
- "♻️ 自动选择"
- "🇭🇰 香港节点"
- "🇺🇸 美国节点"
- "🇯🇵 日本节点"
- "DIRECT"
- name: "♻️ 自动选择"
type: url-test
use:
- all
url: 'http://www.gstatic.com/generate_204'
interval: 300
- name: "🎬 流媒体"
type: select
proxies:
- "🇭🇰 香港节点"
- "🇺🇸 美国节点"
- "🇯🇵 日本节点"
- name: "📲 Telegram"
type: select
proxies:
- "🚀 节点选择"
- "🇭🇰 香港节点"
- name: "🍎 Apple"
type: select
proxies:
- "DIRECT"
- "🚀 节点选择"
- name: "🎯 国内直连"
type: select
proxies:
- "DIRECT"
rules:
# 本地网络
- DOMAIN-SUFFIX,local,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
# Telegram
- DOMAIN-SUFFIX,t.me,📲 Telegram
- DOMAIN-SUFFIX,telegram.org,📲 Telegram
- IP-CIDR,91.108.0.0/16,📲 Telegram
- IP-CIDR,149.154.160.0/20,📲 Telegram
# 流媒体
- DOMAIN-SUFFIX,netflix.com,🎬 流媒体
- DOMAIN-SUFFIX,youtube.com,🎬 流媒体
- DOMAIN-KEYWORD,disney,🎬 流媒体
# Apple服务
- DOMAIN-SUFFIX,apple.com,🍎 Apple
- DOMAIN-SUFFIX,icloud.com,🍎 Apple
# 国内直连
- DOMAIN-SUFFIX,cn,🎯 国内直连
- GEOIP,CN,🎯 国内直连
# 兜底规则
- MATCH,🚀 节点选择
4.4 WireGuard现代VPN¶
4.4.1 WireGuard优势¶
在第3章我们简要介绍了WireGuard,这里深入探讨其在科学上网中的应用。
性能对比(实测数据):
测试环境:1Gbps带宽,100ms延迟
OpenVPN (TCP): ~200 Mbps
OpenVPN (UDP): ~300 Mbps
IPsec/IKEv2: ~450 Mbps
WireGuard: ~950 Mbps
CPU占用:
OpenVPN: 15-20%
WireGuard: 3-5%
4.4.2 WireGuard配置实战¶
服务器配置 (wg0.conf):
[Interface]
# 服务器私钥
PrivateKey = SERVER_PRIVATE_KEY
# 服务器虚拟IP
Address = 10.0.0.1/24
# 监听端口
ListenPort = 51820
# 启动后执行的命令(配置NAT)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# 客户端1
[Peer]
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.0.0.2/32
# 客户端2
[Peer]
PublicKey = CLIENT2_PUBLIC_KEY
AllowedIPs = 10.0.0.3/32
客户端配置:
[Interface]
# 客户端私钥
PrivateKey = CLIENT_PRIVATE_KEY
# 客户端虚拟IP
Address = 10.0.0.2/24
# 客户端DNS
DNS = 1.1.1.1, 8.8.8.8
[Peer]
# 服务器公钥
PublicKey = SERVER_PUBLIC_KEY
# 服务器地址和端口
Endpoint = your-server-ip:51820
# 允许的IP(0.0.0.0/0表示全局流量)
AllowedIPs = 0.0.0.0/0
# 保持连接(NAT穿透)
PersistentKeepalive = 25
生成密钥对:
# 生成私钥
wg genkey > privatekey
# 从私钥生成公钥
cat privatekey | wg pubkey > publickey
# 查看密钥
cat privatekey
cat publickey
启动服务:
# 启动WireGuard
wg-quick up wg0
# 查看状态
wg show
# 停止
wg-quick down wg0
# 开机自启
systemctl enable wg-quick@wg0
4.4.3 分流配置(部分流量走WireGuard)¶
仅代理国外流量:
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24
DNS = 1.1.1.1
# 路由表编号
Table = 12345
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = your-server-ip:51820
# 仅代理国外IP
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1
PersistentKeepalive = 25
# 添加自定义路由
PostUp = ip rule add table 12345
PostUp = ip route add default via 10.0.0.1 table 12345
PostDown = ip rule delete table 12345
4.4.4 WireGuard与科学上网¶
优势:
- ✅ 速度快,延迟低
- ✅ 电池友好(移动设备)
- ✅ 自动重连(IP变化)
- ✅ 代码简洁安全
劣势:
- ❌ 流量特征明显(易识别为VPN)
- ❌ 不支持混淆伪装
- ❌ 在某些地区可能被封锁
适用场景:
4.5 其他协议对比¶
4.5.1 协议综合对比¶
| 协议 | 速度 | 安全性 | 隐蔽性 | 配置难度 | 推荐度 | 备注 |
|---|---|---|---|---|---|---|
| VLESS+Reality | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ✅✅✅ 最推荐 | 最佳选择 |
| Trojan | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ✅✅ 强烈推荐 | 极致伪装 |
| Hysteria | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ✅✅ 特定场景推荐 | 弱网环境优选 |
| VLESS | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ✅✅ 强烈推荐 | 配合TLS使用 |
| VMess | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⚠️ 易被检测 |
| Shadowsocks | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⚠️ 直连易识别 |
| ShadowsocksR | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | 更新较少 |
| WireGuard | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ | 特征明显 |
4.5.2 选择建议¶
新手入门:
推荐顺序:
1. 购买机场服务(支持Clash订阅)
2. 自建Trojan(一键脚本)
3. 自建VLESS + Reality(最佳隐蔽性)
⚠️ 重要提醒:
避免使用纯Shadowsocks或VMess直连
优先选择带混淆/伪装的方案
追求性能:
最佳组合:
VLESS + Reality + gRPC
或
Hysteria(高带宽场景)
性能排序:
1. Hysteria(弱网环境)
2. VLESS + XTLS(一般环境)
3. WireGuard(网络环境允许时)
追求隐蔽:
最佳方案:
首选:VLESS + Reality(无需域名证书)
次选:Trojan + 真实网站(需域名证书)
备选:VMess + WebSocket + TLS + CDN
隐蔽性排序:
1. VLESS + Reality ⭐⭐⭐⭐⭐
2. Trojan + 真实网站 ⭐⭐⭐⭐⭐
3. 其他协议 + 混淆 ⭐⭐⭐
综合方案:
主力协议:VLESS + Reality(日常使用)
备用协议:Hysteria(高速场景)
应急备份:Shadowsocks + 插件混淆
客户端:Clash Meta / sing-box(规则分流)
多协议策略:
- 平时:VLESS + Reality(稳定隐蔽)
- 看视频:Hysteria(高速传输)
- 敏感期:多协议轮换使用
4.5.3 协议组合策略¶
多协议部署:
单台VPS部署多个协议:
443端口:Trojan (HTTPS伪装)
↓
Nginx反向代理
├─► /trojan → Trojan服务
├─► /vmess → V2Ray VMess
├─► /vless → V2Ray VLESS
└─► / → 真实网站
优势:
✓ 灵活切换
✓ 互为备份
✓ 资源利用最大化
本章小结¶
本章详细介绍了主流代理协议的原理和配置:
核心要点:
- Shadowsocks:轻量快速,适合入门
- V2Ray/Xray:功能强大,灵活组合
- Trojan:极致伪装,难以检测
- Clash:规则分流,智能代理
- WireGuard:现代VPN,性能卓越
协议选择原则:
- 网络环境宽松 → WireGuard / Shadowsocks
- 封锁严重地区 → Trojan / VMess+WS+TLS
- 追求便利性 → 机场服务 + Clash
- 技术爱好者 → 自建V2Ray/Xray
最佳实践:
下一章我们将学习各平台客户端工具的具体使用方法。
实践任务:
- 尝试配置一个Shadowsocks服务器
- 理解Clash配置文件结构
- 对比不同协议的速度和稳定性
- 编写自己的分流规则
延伸阅读:
- Shadowsocks协议规范
- V2Ray配置指南
- Trojan协议文档
- WireGuard白皮书