VPS 搭建代理服务器指南
utils
本文字数:2.4k 字 | 阅读时长 ≈ 10 min

VPS 搭建代理服务器指南

utils
本文字数:2.4k 字 | 阅读时长 ≈ 10 min

搭建 V2Ray 服务器 (ws+tls+web)

本文是搭建 V2Ray 服务器的完整教程,主要包含以下内容:

相比传统的 SS、SSR 等方案,V2Ray + ws + tls + web 具有以下优势:

  1. 更强的稳定性 - 采用真实 HTTPS 流量,无需额外混淆
  2. 更高的安全性 - 完整的 TLS 加密保护
  3. 更好的伪装性 - 流量特征与普通网站无异

1. 工作原理

1.1 传统代理方案的问题

传统的 V2Ray/SS 代理方案存在一个明显的缺陷:服务器直接暴露在公网上,容易被主动探测识别。如图所示,当防火墙对可疑 IP 进行主动探测时,可以直接发现代理服务的存在。

// 传统架构
Client --> GFW --> V2Ray/SS --> Internet
            |         ^
            |         |
            +-- Probe-+

1.2 改进后的架构

通过添加 HTTPS 服务器作为前置代理,我们可以:

这种架构极大地提高了服务的隐蔽性和安全性,是目前最推荐的部署方案。

// 改进架构
Client --> GFW --> HTTPS --> V2Ray --> Internet
            |       ^
            |       |
            +-Probe-+

在配置了真实网站之后,只有你自己知道这是个代理服务器,在外界看来就是一个普通的网站。这里的"HTTPS 流量"实际上是"TLS 流量",就是普通的加密网页浏览流量。

1.3 安全提示

如果服务器之前运行过 SS、SSR、V2Ray(非 TLS)等服务,请确保:

这是因为翻墙服务的隐蔽性取决于最薄弱的环节。如果服务器上同时运行其它代理软件,这些软件仍可能被探测到,从而影响 V2Ray+ws+tls+web 的隐蔽性。

2. 域名设置

需要从域名服务商购买一个域名,并使用 Cloudflare 提供域名解析。使用 Cloudflare 是为了方便配置 CDN。如果遇到连接问题或 IP 被封禁等极端情况,只需简单配置就可以切换成 v2ray+ws+tls+web+cdn 模式。虽然使用 CDN 会导致速度较慢,但稳定性极高。

Cloudflare 是世界上最大的 CDN 提供商,全球半数的网站都在使用其服务。注册时不用担心隐私泄露或钓鱼风险。

2.1 域名托管

Cloudflare 域名托管步骤:

  1. 注册并登录 Cloudflare 账号
  2. 添加你的域名到 Cloudflare
  3. Cloudflare 会提供两个 nameserver 地址
  4. 登录域名注册商后台,将 nameserver 更改为 Cloudflare 提供的地址
  5. 等待 24-48 小时完成域名托管转移

2.2 域名地址解析

在 Cloudflare 控制面板中配置域名解析:

  1. 进入 DNS 设置页面,点击【Add record】添加解析记录

  2. 需要添加两条 A 记录:

    • 第一条: Name=www, Address=你的服务器IP, TTL=1小时
    • 第二条: Name=@, Address=你的服务器IP, TTL=1小时
  3. 重要: 确保记录旁边的云朵图标为灰色(DNS only),不要启用 CDN

  4. 验证配置:

    ping your-domain.com  # 替换成你的域名
    

    如果能 ping 通,说明解析配置成功

名词解释:

  • A 记录: 将域名指向 IPv4 地址
  • www: 解析带 www 的域名 (www.domain.com)
  • @: 解析裸域名 (domain.com)
  • TTL(Time To Live): DNS 缓存时间,建议设置 1 小时或 Auto

图 1: DNS设置界面

3. VPS 服务器购买

购买一个海外的 VPS 服务器,这里不赘述

4. v2ray 使用

4.1 安装脚本

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

# 常用管理命令
systemctl start v2ray     # 启动服务
systemctl stop v2ray      # 停止服务
systemctl restart v2ray   # 重启服务
systemctl status v2ray    # 查看状态

4.2 配置流程

V2Ray 的主配置文件位于 /usr/local/etc/v2ray/config.json。以下是基础配置示例:

id 是你的 v2ray 的 uuid,可以使用 v2ray uuid 生成

{
    "inbound": {
        "protocol": "vmess",
        "listen": "127.0.0.1",
        "port": =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=,
        "settings": {
            "clients": [
                {
                    "id": "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=",
                    "alterID":0
                }
            ]
        },
        "streamSettings": {
            "network": "ws",
            "security": "none",
            "wsSettings": {
                "path": "/=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
            }
        }
    },
    "outbound": {
        "protocol": "freedom",
        "settings": {}
    }
}

结束后重启 v2ray 即可,systemctl restart v2ray

4.3 证书申请

# 1. 安装必要工具
curl https://get.acme.sh | sh
apt install socat

# 2. 配置 acme.sh
ln -s /root/.acme.sh/acme.sh /usr/local/bin/acme.sh
acme.sh --set-default-ca --server letsencrypt

# 3. 申请证书
# 如果有 www 子域名,使用:
acme.sh --issue -d your_domain -d www.your_domain --standalone -k ec-256
# 如果只有主域名,使用:
acme.sh --issue -d your_domain --standalone -k ec-256

# 4. 安装证书到 V2Ray 目录
acme.sh --installcert -d your_domain --ecc --key-file /usr/local/etc/v2ray/server.key --fullchain-file /usr/local/etc/v2ray/server.crt

5. Nginx 配置

安装 apt install nginx
配置 nginx

/etc/nginx/sites-available 文件夹下新建一个 your_domain 文件,然后将下面内容复制进去,其中 server_name 中填写 your_domain www.your_domainlocation /xxx的路径改为你上面生成的路径即可,他会自动定位到 v2ray 的代理中,只要这个路径不暴露,墙就无法发现你

server {
    server_name =-=-=-=-=-=-=-=-=-=your_domain www.your_domain-=-=-=-=-=-=-=-=-=-=-=;
    listen 80;  # http 80 端口
    # 将所有 HTTP 请求重定向到 HTTPS
    return 301 https://$server_name$request_uri;
}

server {
    server_name =-=-=-=-=-=-=-=-=-=your_domain www.your_domain-=-=-=-=-=-=-=-=-=-=-=;
    listen 443 ssl http2;  # https 443 端口
    charset utf-8;

    # SSL 证书配置
    ssl_certificate /usr/local/etc/v2ray/server.crt;
    ssl_certificate_key /usr/local/etc/v2ray/server.key;

    # 优化的 SSL 配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    
    # SSL 会话配置
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 10s;

    # 安全性配置
    add_header X-Frame-Options "DENY" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    add_header Content-Security-Policy "default-src * data: blob: 'unsafe-inline' 'unsafe-eval';" always;

    # 限制请求方法
    if ($request_method !~ ^(GET|POST)$) {
        return 405;
    }

    # v2ray 路径优先匹配
    location /=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= {
        proxy_redirect off;
        proxy_pass http://127.0.0.1:=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # Bing 反向代理作为默认路由
    location / {
        proxy_pass https://www.bing.com;
        proxy_set_header Host "www.bing.com";
        
        # 处理动态请求
        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;
        
        # 处理 Cookie
        proxy_cookie_domain bing.com $server_name;
        proxy_cookie_domain www.bing.com $server_name;
        proxy_cookie_path / "/";
        
        # 更全面的子域名替换
        sub_filter_once off;
        sub_filter_types *;  # 处理所有内容类型
        sub_filter "https://www.bing.com" "https://$server_name";
        sub_filter "https://bing.com" "https://$server_name";
        sub_filter "//www.bing.com" "//$server_name";
        sub_filter "//bing.com" "//$server_name";
        
        # 处理重定向
        proxy_redirect https://www.bing.com/ https://$server_name/;
        proxy_redirect https://bing.com/ https://$server_name/;
        
        # 确保正确处理 WebSocket
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # 其他设置保持不变...
        proxy_ssl_server_name on;
        proxy_ssl_protocols TLSv1.2 TLSv1.3;
        proxy_ssl_verify off;
        proxy_buffer_size 16k;
        proxy_buffers 8 16k;
        proxy_busy_buffers_size 32k;
    }

    # 静态文件配置
    root /usr/share/nginx/html;
    index index.html index.htm index.php;
    
    # 基础安全配置
    autoindex off;
    server_tokens off;
}

然后将这个文件链接到 sites-enabled

sudo ln -s /etc/nginx/sites-available/your_domain_file /etc/nginx/sites-enabled/your_domain_file

6. 配置客户端

v2ray 客户端配置

v2ray配置

surge 客户端配置

v2ray配置

7. 安全性与性能优化

7.1 配置防火墙

如果 VPS 上没有其它服务,建议开启防火墙以提高安全性。服务器只需对外暴露必要的端口(80、443、SSH),可以有效降低被探测的风险。

# 安装 ufw
apt install ufw   # Ubuntu/Debian

# 配置防火墙规则
ufw disable  # 先禁用防火墙
ufw allow ssh  # 允许 SSH(默认端口 22)
ufw allow http  # 允许 HTTP
ufw allow https  # 允许 HTTPS
ufw enable  # 启用防火墙

# 如果使用自定义 SSH 端口(如 14320)
ufw allow port  # 替换为你的实际 SSH 端口

注:ufw 和 firewalld 都基于 Linux iptables,功能本质上相同。选择其一即可。

7.2 BBR 加速配置

BBR 是 Google 开发的 TCP 拥塞控制算法,可以显著提升网络性能。要使用 BBR,需要 Linux 内核版本 ≥ 4.10。

  1. 检查内核版本:
uname -a
  1. 如果内核版本满足要求,执行以下命令开启 BBR:
# 添加 BBR 配置
bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
sysctl -p

# 验证 BBR 是否启用
sysctl net.ipv4.tcp_congestion_control

如果输出显示 net.ipv4.tcp_congestion_control = bbr,则表示 BBR 已成功启用。

通过以上配置,我们实现了:

  1. 最小化暴露端口,提高服务器安全性
  2. 启用 BBR 加速,优化网络性能

故障排查

如果设置了不能访问外网

  1. 检查防火墙状态
# 检查 UFW 防火墙状态
ufw status

# 检查 firewalld 防火墙状态
firewall-cmd --list-ports

# 确保以下端口已开放:
# - 80 (HTTP)
# - 443 (HTTPS)
# - 你的 V2Ray 端口

注意:服务器可能使用 UFW 或 firewalld 其中之一作为防火墙,使用对应的命令即可。

  1. 检查 IP 状态
  1. 实用检测工具
4月 06, 2025
3月 10, 2025
12月 31, 2024