代理服务器搭建完整指南

📖 阅读时间:30分钟 🎯 难度:中级 🔧 实践操作:高

本指南将详细介绍如何在VPS上搭建各种类型的代理服务器,包括V2Ray、Shadowsocks、Trojan等流行方案,以及Nginx反向代理的配置。您将学习到从基础安装到高级优化的完整流程。

⚠️
重要提示:请确保您的使用符合当地法律法规,本教程仅供技术学习和合法用途。

🌐 什么是代理服务器

代理服务器是位于客户端和目标服务器之间的中间服务器,它接收客户端的请求,然后将请求转发给目标服务器,再将响应返回给客户端。

代理服务器的作用

🔒

隐私保护

隐藏真实IP地址,保护用户隐私

🌍

访问控制

突破地理限制,访问特定资源

加速访问

通过缓存和优化路由提升速度

🛡️

安全防护

过滤恶意内容,增强网络安全

⚖️

负载均衡

分发请求到多个服务器

📊

流量监控

记录和分析网络使用情况

代理工作原理

1
客户端请求

客户端向代理服务器发送请求

2
代理转发

代理服务器转发请求到目标服务器

3
目标响应

目标服务器返回响应给代理

4
返回客户端

代理将响应返回给客户端

📊 代理类型对比

选择合适的代理协议对于搭建稳定、高效的代理服务至关重要。下面我们对比几种主流的代理方案:

主流代理方案对比

Trojan

协议: Trojan
安全性: ★★★★★
速度: ★★★★☆
难度: 中等
主要特点:
  • 伪装HTTPS
  • 难以检测
  • 稳定性高
  • 穿透力强

HTTP/SOCKS5

协议: HTTP/SOCKS5
安全性: ★★☆☆☆
速度: ★★★★★
难度: 简单
主要特点:
  • 标准协议
  • 兼容性好
  • 配置简单
  • 适合内网

选择建议

🏆 新手推荐

Shadowsocks

  • 配置简单,易于上手
  • 客户端支持广泛
  • 速度快,资源占用少

⚡ 性能优先

V2Ray (VLESS)

  • 协议先进,性能优秀
  • 支持多种传输方式
  • 可配置CDN加速

🔒 安全优先

Trojan + TLS

  • 伪装成HTTPS流量
  • 难以被检测和封锁
  • 适合高敏感环境

🚀 V2Ray搭建

V2Ray是一个功能强大的代理软件,支持多种协议和传输方式,具有强大的路由功能。

准备工作

VPS服务器(建议Ubuntu 20.04+)
域名(可选,用于TLS伪装)
SSH访问权限

安装步骤

1

安装V2Ray

使用官方脚本一键安装:

bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
2

生成UUID

生成用于认证的UUID:

cat /proc/sys/kernel/random/uuid

记录生成的UUID,稍后配置时使用

3

配置V2Ray

编辑配置文件:

nano /usr/local/etc/v2ray/config.json

基础VMess配置示例:

{
  "inbounds": [{
    "port": 10086,
    "protocol": "vmess",
    "settings": {
      "clients": [{
        "id": "YOUR-UUID-HERE",
        "level": 1,
        "alterId": 0
      }]
    },
    "streamSettings": {
      "network": "tcp",
      "tcpSettings": {
        "header": {
          "type": "http",
          "response": {
            "version": "1.1",
            "status": "200",
            "reason": "OK"
          }
        }
      }
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  }]
}
4

启动V2Ray服务

systemctl start v2ray systemctl enable v2ray systemctl status v2ray
5

配置防火墙

开放V2Ray端口:

ufw allow 10086/tcp ufw reload

高级配置

WebSocket + TLS配置

使用WebSocket传输并配置TLS加密:

{
  "inbounds": [{
    "port": 443,
    "protocol": "vmess",
    "settings": {
      "clients": [{
        "id": "YOUR-UUID-HERE",
        "alterId": 0
      }]
    },
    "streamSettings": {
      "network": "ws",
      "wsSettings": {
        "path": "/ray"
      },
      "security": "tls",
      "tlsSettings": {
        "certificates": [{
          "certificateFile": "/path/to/cert.pem",
          "keyFile": "/path/to/key.pem"
        }]
      }
    }
  }],
  "outbounds": [{
    "protocol": "freedom"
  }]
}

CDN加速配置

配合Cloudflare CDN使用:

  1. 将域名解析到Cloudflare
  2. 开启CDN代理(橙色云朵)
  3. SSL/TLS设置为"Full"
  4. 配置V2Ray使用WebSocket + TLS
  5. 端口使用Cloudflare支持的端口(443, 8443等)

路由规则配置

智能分流,提升访问速度:

"routing": {
  "rules": [
    {
      "type": "field",
      "domain": ["geosite:cn"],
      "outboundTag": "direct"
    },
    {
      "type": "field",
      "ip": ["geoip:cn", "geoip:private"],
      "outboundTag": "direct"
    }
  ]
}

🔐 Shadowsocks部署

Shadowsocks是一个轻量级的代理工具,以其简单、高效而广受欢迎。

Shadowsocks-libev安装

1

更新系统并安装

apt update && apt upgrade -y apt install shadowsocks-libev -y
2

配置Shadowsocks

创建配置文件:

nano /etc/shadowsocks-libev/config.json
{
  "server": "0.0.0.0",
  "server_port": 8388,
  "password": "your_strong_password_here",
  "timeout": 300,
  "method": "aes-256-gcm",
  "fast_open": true,
  "mode": "tcp_and_udp"
}
3

启动服务

systemctl restart shadowsocks-libev systemctl enable shadowsocks-libev systemctl status shadowsocks-libev
4

开放端口

ufw allow 8388 ufw reload

优化配置

🚀 开启BBR加速

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p

🔒 使用插件混淆

安装simple-obfs插件:

apt install simple-obfs -y

配置文件添加插件选项:

"plugin": "obfs-server",
"plugin_opts": "obfs=http;obfs-host=www.bing.com"

📊 多用户配置

支持多个端口和密码:

"port_password": {
  "8388": "password1",
  "8389": "password2", 
  "8390": "password3"
}

🛡️ Trojan配置

Trojan是一种将流量伪装成HTTPS的代理协议,具有极强的抗检测能力。

前置要求

域名配置

  • 拥有一个域名
  • 域名解析到VPS IP
  • 申请SSL证书

证书申请

使用Let's Encrypt申请免费证书:

apt install certbot -y certbot certonly --standalone -d your-domain.com

安装Trojan-Go

1

下载Trojan-Go

wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.6/trojan-go-linux-amd64.zip unzip trojan-go-linux-amd64.zip -d /usr/local/bin/trojan-go
2

创建配置文件

nano /usr/local/bin/trojan-go/config.json
{
  "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": "/etc/letsencrypt/live/your-domain.com/fullchain.pem",
    "key": "/etc/letsencrypt/live/your-domain.com/privkey.pem",
    "sni": "your-domain.com"
  },
  "websocket": {
    "enabled": true,
    "path": "/trojan",
    "host": "your-domain.com"
  }
}
3

创建系统服务

nano /etc/systemd/system/trojan-go.service
[Unit]
Description=Trojan-Go Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/trojan-go/trojan-go -config /usr/local/bin/trojan-go/config.json
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
4

启动Trojan服务

systemctl daemon-reload systemctl start trojan-go systemctl enable trojan-go

配置伪装网站

设置Nginx作为fallback,增强伪装效果:

apt install nginx -y

修改Nginx配置,监听80端口,部署一个真实网站。

↔️ Nginx反向代理

Nginx反向代理可以用于隐藏后端服务器、负载均衡、SSL终止等多种场景。

基础反向代理配置

1

安装Nginx

apt update apt install nginx -y
2

配置反向代理

创建站点配置:

nano /etc/nginx/sites-available/proxy
server {
    listen 80;
    server_name your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebSocket支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
3

启用站点配置

ln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabled/ nginx -t systemctl restart nginx

高级配置选项

负载均衡配置

upstream backend {
    least_conn;  # 最少连接数算法
    server 10.0.0.1:8080 weight=3;
    server 10.0.0.2:8080 weight=2;
    server 10.0.0.3:8080 backup;
}

server {
    listen 80;
    server_name example.com;
    
    location / {
        proxy_pass http://backend;
    }
}

SSL/TLS配置

server {
    listen 443 ssl http2;
    server_name your-domain.com;
    
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    
    location / {
        proxy_pass http://backend;
    }
}

缓存配置

proxy_cache_path /var/cache/nginx levels=1:2 
    keys_zone=my_cache:10m max_size=1g 
    inactive=60m use_temp_path=off;

server {
    location / {
        proxy_cache my_cache;
        proxy_cache_valid 200 60m;
        proxy_cache_valid 404 1m;
        proxy_pass http://backend;
    }
}

性能优化

通过系统级和应用级优化,可以显著提升代理服务器的性能和稳定性。

系统级优化

1. 开启BBR拥塞控制

BBR是Google开发的TCP拥塞控制算法,可以显著提升网络传输速度:

# 检查内核版本(需要4.9+) uname -r # 开启BBR echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p # 验证BBR已启用 sysctl net.ipv4.tcp_congestion_control lsmod | grep bbr

2. 优化内核参数

调整系统参数以提升网络性能:

nano /etc/sysctl.conf
# 网络优化参数
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000

# 增加系统文件描述符限制
fs.file-max = 1000000
fs.inotify.max_user_instances = 8192

# 增加网络缓冲区
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
sysctl -p

3. 优化文件描述符限制

nano /etc/security/limits.conf
* soft nofile 1000000
* hard nofile 1000000
root soft nofile 1000000
root hard nofile 1000000

应用级优化

V2Ray优化

  • 使用VLESS协议代替VMess
  • 关闭不必要的功能(如统计)
  • 使用mKCP或QUIC传输
  • 合理设置缓冲区大小

Shadowsocks优化

  • 使用AEAD加密(如aes-256-gcm)
  • 开启TCP Fast Open
  • 使用多端口分流
  • 配置合适的超时时间

Nginx优化

  • 调整worker进程数
  • 开启gzip压缩
  • 配置缓存策略
  • 使用HTTP/2

性能监控

系统监控工具

# 安装htop查看系统资源 apt install htop -y # 安装vnstat监控流量 apt install vnstat -y systemctl enable vnstat # 查看网络连接数 ss -s netstat -nat | awk '{print $6}' | sort | uniq -c

性能测试

# 测试网络速度 wget -O speedtest.py https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py python3 speedtest.py # 测试延迟 ping -c 10 google.com # 测试路由 traceroute google.com

🔒 安全加固

代理服务器的安全性至关重要,需要从多个层面进行加固。

安全措施

1. SSH安全配置

# 修改SSH端口 nano /etc/ssh/sshd_config
Port 22345
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
MaxSessions 5
systemctl restart sshd

2. 防火墙配置

# 配置UFW防火墙 ufw default deny incoming ufw default allow outgoing ufw allow 22345/tcp # SSH端口 ufw allow 443/tcp # HTTPS ufw allow 80/tcp # HTTP ufw allow 8388/tcp # Shadowsocks ufw enable

3. Fail2ban防暴力破解

apt install fail2ban -y nano /etc/fail2ban/jail.local
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = 22345

[nginx-limit-req]
enabled = true
systemctl restart fail2ban

4. 定期更新系统

# 设置自动更新 apt install unattended-upgrades -y dpkg-reconfigure --priority=low unattended-upgrades

最佳安全实践

🔑 访问控制

  • 使用强密码或密钥认证
  • 限制用户访问权限
  • 定期更换密码/密钥
  • 使用IP白名单(如适用)

📊 日志监控

  • 启用详细日志记录
  • 定期检查异常活动
  • 设置日志轮转
  • 备份重要日志

🛡️ 流量管理

  • 设置流量限制
  • 防止DDoS攻击
  • 监控异常流量
  • 实施速率限制

💻 客户端配置

选择合适的客户端并正确配置是使用代理服务的重要环节。

各平台客户端推荐

Windows

V2RayN
V2Ray 下载地址
Clash Verge Rev
多协议 下载地址
Karing
多协议 下载地址

macOS

Clash Verge Rev
多协议 下载地址
Stash
多协议 下载地址
Surge
多协议 下载地址

Android

V2RayNG
V2Ray 下载地址
NekoBox for Android
多协议 下载地址
Hiddify
多协议 下载地址

iOS

Shadowrocket
多协议 下载地址
Quantumult X
多协议 下载地址
Stash
多协议 下载地址

客户端配置示例

V2Ray客户端配置

{
  "v": "2",
  "ps": "我的VPS",
  "add": "your-server-ip",
  "port": "10086",
  "id": "your-uuid",
  "aid": "0",
  "net": "tcp",
  "type": "none",
  "host": "",
  "path": "",
  "tls": ""
}

可以生成为vmess://链接便于导入

Shadowsocks客户端配置

{
  "server": "your-server-ip",
  "server_port": 8388,
  "password": "your-password",
  "method": "aes-256-gcm",
  "plugin": "obfs-local",
  "plugin_opts": "obfs=http;obfs-host=www.bing.com"
}

Clash配置文件

proxies:
  - name: "my-proxy"
    type: vmess
    server: your-server-ip
    port: 10086
    uuid: your-uuid
    alterId: 0
    cipher: auto

proxy-groups:
  - name: Proxy
    type: select
    proxies:
      - my-proxy
      - DIRECT

rules:
  - MATCH,Proxy

使用技巧

🌐 PAC模式

使用PAC文件实现智能分流,国内直连,国外代理

📱 移动端优化

开启断线重连,选择合适的超时时间

🔄 订阅更新

使用订阅链接自动更新服务器配置

⚡ 延迟测试

定期测试节点延迟,选择最优服务器

🚀 一键安装脚本

为了简化部署流程,社区开发了许多优秀的一键安装脚本,可以快速搭建各种代理服务。以下是一些经过验证的优质项目:

⏺ Sing-box 全家桶

⭐ 热门推荐

功能全面的Sing-box一键部署脚本,支持多种协议,包括Reality、Hysteria2、TUIC等最新协议。

主要特点:
  • 支持最新的Reality协议
  • 多协议支持(VMess、VLESS、Trojan、SS等)
  • 自动申请和续签证书
  • 支持CDN优选IP
  • 内置BBR加速
安装命令:
bash <(wget -qO- https://raw.githubusercontent.com/fscarmen/sing-box/main/sing-box.sh)

⏺ 甬哥 Sing-box

知名开发者

甬哥开发的Sing-box管理脚本,界面友好,功能完善,特别适合新手使用。

主要特点:
  • 中文界面,操作简单
  • 支持多用户管理
  • 自动优化系统参数
  • 实时流量统计
  • 一键备份恢复
安装命令:
bash <(curl -Ls https://raw.githubusercontent.com/yonggekkk/sing-box-yg/main/sb.sh)

⏺ 甬哥 X-UI

知名开发者

基于X-UI的增强版本,提供Web面板管理,支持多协议,界面直观易用。

主要特点:
  • Web可视化管理面板
  • 支持系统状态监控
  • 多协议支持(Xray内核)
  • 用户流量统计和限制
  • 支持面板SSL配置
安装命令:
bash <(curl -Ls https://raw.githubusercontent.com/yonggekkk/x-ui-yg/main/install.sh)

⏺ 3X-UI

⭐ 社区推荐

功能强大的Xray管理面板,支持多协议、多用户,具有完善的流量统计和管理功能。

主要特点:
  • 支持XTLS/Reality等最新协议
  • 多语言支持(含中文)
  • Telegram Bot管理
  • 自动备份和恢复
  • 支持一键SSL证书申请
  • 详细的流量统计图表
安装命令:
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

使用建议

💡

选择合适的脚本

新手推荐使用带Web面板的脚本(如3X-UI),便于管理;高级用户可选择命令行脚本,更加灵活。

🔐

安全注意事项

安装后立即修改默认密码,开启防火墙,定期更新脚本和系统。

📊

性能优化

根据服务器配置选择合适的协议,低配服务器建议使用Shadowsocks,高配可选择Reality或Hysteria2。

🔄

定期维护

定期检查服务运行状态,更新脚本版本,备份配置文件,监控服务器资源使用情况。

脚本对比

脚本名称 管理方式 协议支持 难度等级 推荐场景
Sing-box 全家桶 命令行 全协议 中等 追求最新协议
甬哥 Sing-box 命令行菜单 主流协议 简单 新手友好
甬哥 X-UI Web面板 Xray协议 简单 可视化管理
3X-UI Web面板 全协议 简单 企业级部署

🔧 故障排查

遇到问题时,系统化的排查方法能帮助快速定位和解决问题。

常见问题及解决方案

❌ 无法连接到代理服务器

可能原因:

  • 服务未启动或崩溃
  • 防火墙阻止连接
  • 配置文件错误
  • 端口被占用

排查步骤:

# 检查服务状态 systemctl status v2ray # 检查端口监听 ss -tulpn | grep :10086 # 查看日志 journalctl -xe -u v2ray # 测试配置文件 v2ray -test -config /usr/local/etc/v2ray/config.json

❌ 速度慢或不稳定

可能原因:

  • 网络拥塞
  • 服务器性能不足
  • 配置未优化
  • ISP限速

解决方法:

  • 开启BBR加速
  • 更换传输协议(如使用mKCP)
  • 使用CDN中转
  • 升级服务器配置
  • 更换服务器地区

❌ 证书相关错误

常见错误:

  • 证书过期
  • 证书路径错误
  • 权限问题

解决方案:

# 更新证书 certbot renew # 检查证书权限 ls -la /etc/letsencrypt/live/ # 设置自动更新 crontab -e # 添加:0 0 * * * certbot renew --quiet

❌ 客户端配置错误

检查要点:

  • 服务器地址是否正确
  • 端口号是否匹配
  • 密码/UUID是否正确
  • 加密方式是否一致
  • 时间是否同步

调试技巧:

  • 启用客户端调试模式
  • 查看详细错误日志
  • 使用简单配置测试
  • 逐项排查配置项

诊断工具

网络诊断

# 测试TCP连接 telnet server-ip 10086 # 测试UDP连接 nc -u -v server-ip 10086 # 路由追踪 traceroute server-ip # MTU探测 ping -M do -s 1472 server-ip

服务诊断

# 查看系统资源 htop # 查看网络连接 ss -tunap # 查看防火墙规则 iptables -L -n -v ufw status verbose

🎯 最佳实践总结

🔒 安全性

  • 使用强密码和复杂UUID
  • 定期更新软件和系统
  • 启用防火墙和Fail2ban
  • 使用TLS加密传输
  • 避免使用默认端口

⚡ 性能

  • 开启BBR加速
  • 优化系统参数
  • 选择合适的加密算法
  • 使用CDN中转(如适用)
  • 定期监控服务器状态

🛠️ 维护

  • 定期备份配置文件
  • 监控日志和流量
  • 设置自动重启机制
  • 建立应急恢复方案
  • 记录配置变更