Administrator
发布于 2026-02-25 / 1 阅读
0
0

Ubuntu 22.04 网络代理方案实现描述

📋 方案概览

本服务器采用 Nginx + Xray 的双层代理架构,实现稳定、隐秘的网络代理服务,代理服务端口可单开新端口也可直接用443端口。 我最开始为保证nginx 443端口的网络纯粹性,搞得稍微复杂了点,单开了8443作为代理专用端口,其实完全可以多域名同时指向服务器IP的443端口,代理服务专用一个特定域名。

┌─────────────────────────────────────────────────────────────────┐
│                         外部用户请求                             │
└─────────────────────────────┬───────────────────────────────────┘
                              │
                              ▼
                    ┌─────────────────┐
                    │    Nginx (443)  │ ← SSL加密层
                    │  反向代理入口    │
                    └────────┬────────┘
                             │
              ┌──────────────┼──────────────┐
              ▼              ▼              ▼
        ┌──────────┐   ┌──────────┐   ┌──────────┐
        │伪装网站  │   │ 其他服务  │   │代理服务  │
        │端口443   │   │   (可选)  │   │端口8443  │
        └──────────┘   └──────────┘   └──────────┘
                                             │
                                             ▼
                                    ┌─────────────────┐
                                    │     Xray        │ ← 核心代理
                                    │   (VLESS+WS)    │   端口10086
                                    └────────┬────────┘
                                             │
                                             ▼
                                    ┌─────────────────┐
                                    │   外部网络访问   │
                                    └─────────────────┘

🏗️ 架构详解

1️⃣ Nginx 反向代理层

作用: 流量入口、SSL加密、请求分发

监听端口:

  • 443 - 主站 + 伪装网站
  • 8443 - 代理专用端口(非标准端口)
  • 80 - HTTP强制跳转HTTPS

服务分发:

域名 路径 目标 用途
主域名 /[伪装路径1] 静态文件 伪装网站1
主域名 /[伪装路径2] 静态文件 伪装网站2
主域名 /[代理路径] localhost:10086 Xray代理服务

关键配置:

# WebSocket 代理配置
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

# 转发真实IP
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

2️⃣ Xray 核心代理层

作用: 实际的流量转发、协议转换

监听端口: 127.0.0.1:10086(仅本地访问)

协议配置:

  • 传输协议: VLESS
  • 传输方式: WebSocket (WS)
  • 加密方式: none(依赖TLS加密)
  • 访问控制: UUID验证

配置结构:

{
  "inbounds": [{
    "port": 10086,
    "protocol": "vless",
    "streamSettings": {
      "network": "ws",
      "wsSettings": {
        "path": "/[代理路径]"
      }
    }
  }],
  "outbounds": [{
    "protocol": "freedom"
  }]
}

🔐 安全机制

1. SSL/TLS 加密

证书来源: Let's Encrypt (Certbot自动续期) 支持的TLS版本: TLSv1.2, TLSv1.3

用户 → (TLS加密) → Nginx → (明文) → Xray → 目标网站
       ←───────────←─────────←───────────

2. UUID 身份验证

只有配置了正确UUID的客户端才能使用代理服务。

3. 端口隔离

  • 443 - 公开访问,正常流量
  • 8443 - 非标准端口,降低被发现风险
  • 10086 - 仅本地监听,外部无法直接访问

4. 路径伪装

WebSocket路径伪装成普通API路径:

/api/v1/stream  ← 看起来像正常的API接口

5. 流量混淆

通过Nginx的WebSocket代理,代理流量看起来像正常的WebSocket通信。


🌐 流量伪装

伪装网站访问流程

普通用户访问
    ↓
Nginx (443端口)
    ↓
根据路径分发:
    ├→ /[伪装路径1] → 伪装网站1
    ├→ /[伪装路径2] → 伪装网站2
    └→ /[代理路径] → Xray代理服务

目的: 让服务器看起来像一个普通的Web服务器,降低被封风险。


📱 客户端配置

推荐客户端:v2rayN

支持平台:

  • ✅ Windows
  • ✅ Android

下载地址:

连接信息(示例):

协议:vless
地址:[你的域名]
端口:8443
UUID:[你的UUID]
传输方式:ws
路径:/[代理路径]
TLS:开启

其他支持客户端:

  • ✅ V2Ray / Xray 全平台客户端
  • ✅ Clash
  • ✅ Qv2ray
  • ✅ Shadowrocket (iOS)
  • ✅ Quantumult X (iOS)

⚡ 性能优化

Nginx 优化

  1. Worker连接数: 768
  2. SSL会话缓存: 10MB
  3. SSL会话超时: 10分钟
  4. Gzip压缩: 已启用

Xray 优化

  1. 无日志: 降低I/O开销
  2. 本地监听: 减少网络跳数
  3. WebSocket流式传输: 低延迟

🛠️ 服务管理

Nginx

# 查看状态
systemctl status nginx

# 重启服务
systemctl restart nginx

# 测试配置
nginx -t

# 查看日志
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

Xray

# 查看状态
systemctl status xray

# 重启服务
systemctl restart xray

# 测试配置
xray run -test -config [配置文件路径]

📊 端口映射表

端口 监听地址 服务 外部访问
80 0.0.0.0 Nginx (HTTP)
443 0.0.0.0 Nginx (HTTPS)
8443 0.0.0.0 Nginx (代理)
10086 127.0.0.1 Xray

🔍 故障排查

问题1:无法连接代理

检查步骤:

# 1. 检查Nginx状态
systemctl status nginx

# 2. 检查Xray状态
systemctl status xray

# 3. 检查端口监听
netstat -tlnp | grep -E "443|8443|10086"

# 4. 查看错误日志
tail -f /var/log/nginx/error.log

问题2:SSL证书过期

解决方案:

# Certbot自动续期
certbot renew

# 手动续期
certbot certonly --standalone -d [域名]

问题3:代理速度慢

可能原因:

  • 网络带宽限制
  • 服务器负载过高
  • 客户端网络问题

解决方法:

# 查看服务器负载
htop

# 查看网络使用
iftop

📝 配置文件路径

服务 配置文件 路径
Nginx 主配置 /etc/nginx/nginx.conf
Nginx 站点配置 /etc/nginx/sites-enabled/
Xray 配置文件 /usr/local/etc/xray/config.json
SSL 证书路径 /etc/letsencrypt/live/[域名]/

⚠️ 注意事项

  1. 定期备份配置文件
  2. 监控服务状态(建议设置自动重启)
  3. 及时更新SSL证书(Certbot已配置自动续期)
  4. 修改默认路径(提高安全性)
  5. 定期更换UUID(防止泄露)
  6. 监控流量使用(避免超限)

📌 总结

方案特点:

  • ✅ 双层架构,安全稳定
  • ✅ SSL加密,保护隐私
  • ✅ 流量伪装,降低风险
  • ✅ WebSocket传输,低延迟
  • ✅ 多服务共存,提高利用率


评论