使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器

(有时,你可能于1个服务器提供商 购买NAT服务器(NAT服务器几乎总是被封锁),或是由于先前使用特征十分明显的代理协议(例如Shadowsocks、VMESS等),或是服务器的线路较差……无论如何,只需借助CDN,并使用“VLESS+XHTTP+TLS”组合,此代理服务器仍然可以继续使用呀。

几乎可以选择任意CDN提供商,此处使用Cloudflare作为示例,总体过程是十分简单的。

先决条件

显而易见,需要拥有以下条件:

  • 1个托管于Cloudflare的域名。
  • 1个服务器。
  • 已有Xray-core的客户端(例如v2rayN、v2rayNG、Shadowrocket等)。

emm,若没有域名,可以选择于DigitalPlat领取免费域名呀。

配置Cloudflare

进入Cloudflare仪表盘,选择先前托管于此的域名。

于侧边栏进入DNS记录

 

添加1个新的记录,根据代理服务器的IP地址选择“类型”,设置“名称”,并填写IP地址。确保“已代理”开关开启,点击保存便可呀。

若代理服务器的IP地址为IPv4,则选择A类型;若为IPv6,选择AAAA类型。

对于“名称”,若添加至Cloudflare的域名为example.com,欲将proxy.example.com作为代理,只需填写“名称”1项为“proxy”。

 

 

设置HTTPS,点击侧边栏的SSL/TLS概述

将“加密模式”调整为“自动SSL/TLS”。

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片2

 

为更好地使用XHTTP传输方式,则需要开启gRPC与WebSocket。

转到网络,开启“gRPC”与“WebSockets”。

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片3

 

可选配置

HTTP/3(QUIC)

转到速度设置,选择“协议优化”,开启“HTTP/3(使用QUIC)”。

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片4

申请源服务器证书

由于代理服务器 只需接受来自Cloudflare边缘服务器的连接,可选用Cloudflare所提供 有效期为15年的证书呀。

进入SSL/TLS源服务器

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片5

 

点击创建证书

设置“私钥类型”为“ECC”(可选)。

点击“主机名”文本框右侧的“×”以清除其自动填写的主机名,写入先前创建DNS记录时的完整域名,例如“proxy.example.com”。

确保“证书有效期”为“15年”,点击创建

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片6

 

它生成了证书与其私钥,保存它们,并将其上传至服务器的任意位置。

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片7

 

此处保存至/home/xray/certs/目录,并分别设置证书与私钥的文件名为cert.pemcert-key.pem

设置证书文件的权限,以允许Xray-core读取它们:

chmod +r /home/xray/certs/*.pem

配置Xray-core

安装

为使用“VLESS+XHTTP+TLS”传输方式,需要安装Xray-core。只需连接至服务器命令行,执行以下命令:

sudo bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install -u <运行Xray-core的Linux用户名称>

编写配置文件

使用任意文本编辑器(此处使用VIM),以Root权限编辑/usr/local/etc/xray/config.json

sudo vim /usr/local/etc/xray/config.json

按下I进入“插入模式”,写入以下内容:

{
    "log": {
        "loglevel": "info"
    },
    "dns": {
        "hosts": {
            "dns.cloudflare.com": [
                "1.1.1.1",
                "1.0.0.1",
                "2606:4700:4700::1111",
                "2606:4700:4700::1001"
            ],
            "dns.google": [
                "8.8.8.8",
                "8.8.4.4",
                "2001:4860:4860::8888",
                "2001:4860:4860::8844"
            ]
        },
        "servers": [
            "https+local://dns.cloudflare.com/dns-query",
            "https+local://dns.google/dns-query"
        ]
    },
    "routing": {
        "domainStrategy": "IPIfNonMatch",
        "rules": [
            {
                "type": "field",
                "ip": [
                    "geoip:private"
                ],
                "outboundTag": "blackhole"
            }
        ]
    },
    "inbounds": [
        {
            "tag": "vless_xhttp_tls",
            "listen": "0.0.0.0",
            "port": 443,
            "protocol": "vless",
            "settings": {
                "clients": [
                    {
                        "id": "具体的UUID"
                    }
                ],
                "decryption": "none",
                "fallbacks": [
                    {
                        "dest": "bing.com:443"
                    }
                ]
            },
            "streamSettings": {
                "network": "xhttp",
                "security": "tls",
                "xhttpSettings": {
                    "path": "以“/”开始的路径,例如“/Diwbzjjf6494”"
                },
                "tlsSettings": {
                    "certificates": [
                        {
                            "oneTimeLoading": true,
                            "certificateFile": "/home/xray/certs/cert.pem",
                            "keyFile": "/home/xray/certs/cert-key.pem"
                        }
                    ]
                },
                "sockopt": {
                    "tcpMptcp": true
                }
            }
        }
    ],
    "outbounds": [
        {
            "tag": "freedom",
            "protocol": "freedom"
        },
        {
            "tag": "blackhole",
            "protocol": "blackhole"
        }
    ]
}

若服务器支持BBR拥塞控制,可以于上述配置的sockopt对象加入以下字段,以使用它:

{
    "tcpcongestion": "bbr"
}

按下Esc,输入:wq(保存并退出)并按下回车。

已经配置完毕,执行以下命令以重启Xray-core:

sudo systemctl restart xray

使用此命令以查询Xray-core状态:

sudo systemctl status xray
* xray.service - Xray Service
     Loaded: loaded (/etc/systemd/system/xray.service; enabled; preset: enabled)
    Drop-In: /etc/systemd/system/xray.service.d
             `-10-donot_touch_single_conf.conf
     Active: active (running) since Tue 2025-11-18 23:04:25 UTC; 15h ago
       Docs: https://github.com/xtls
   Main PID: 10931 (xray)
      Tasks: 7 (limit: 38427)
     Memory: 18.0M
        CPU: 48.726s
     CGroup: /system.slice/xray.service
             `-10931 /usr/local/bin/xray run -config /usr/local/etc/xray/config.json

若遇见Active: active (running)字样,便说明Xray-core正常运行呀。

客户端配置

于客户端添加配置文件,便可使用呀。

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片8

 

顺带一提,若于Cloudflare仪表板开启HTTP/3(QUIC),只需将客户端的“ALPN(Application Layer Protocol Negotiation,应用层协议协商)”设置为h3,便可使用基于UDP的QUIC协议呀。

上下行分离

XHTTP传输方式支持“上下行分离”,以将上传流量与下载流量 分别通过2个不同的服务器进行传输,最终回到相同的入站。此为可选项,不过,当使用CDN作为代理服务器时,可以十分简便地进行上下行分离,若喜爱尝试,可以选择进行简单配置呀。

从本文章先前所述开始,需要选择2个不同的Cloudflare边缘服务器。优选域名与优选IP地址随意,例如:

  • 上传至2606:4700:3037:e1:a64b:6580:941f:e09
  • 47.250.139.59下载。

挑选2个IP地址或域名后,请首先更改配置并单独连接它们,确保其可用性。

将“地址”设置为“上传服务器”。

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片9

 

于是,可以构建以下extra对象:

{
    "downloadSettings": {
        "address": "47.250.139.59",
        "port": 443,
        "network": "xhttp",
        "security": "tls",
        "xhttpSettings": {
            "path": "/Diwbzjjf6494"
        },
        "tlsSettings": {
            "alpn": [
                "h2"
            ],
            "serverName": "proxy.example.com",
            "fingerprint": "chrome"
        }
    }
}
  • address:应为“下载服务器”。
  • path:与先前的path字段相同。
  • serverName:先前添加DNS记录的完整域名。

部分应用程序(例如v2rayN)支持添加XHTTP传输方式的extra对象,只需填入以上内容便可。

使用XHTTP传输方式,借助Cloudflare重新使用被封锁的代理服务器-图片10

尝试测试延迟,确保能够使用呀。

这小玩意还挺有意思?!是吧!

 
骚年
  • 本文由 骚年 发表于2025年11月25日 22:58:42
  • 转载请务必保留本文链接:https://cexunke.com/ganxingqudeyanjiu/128.html
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证