真诚友善团结专业,共建你我引以为荣之社区。《社区准则》
1 / 412
3月 13 日

由 wabulae 于 3月 13 日 发布

自建代理节点教程——零基础从头搭建你的专属 VLESS+Reality 节点

感谢各位佬友的支持捧场!这是我的第一个帖子,当时我就是随便一写,没想到现在居然这么多人看,解决了这么多人的问题。在我的评论区,我深切感受到了这个社区的友好氛围,也学到了不少东西,不得不感叹:L站牛逼!以及一个小倡议,大家要是用我的方法部署好了,可以在评论区说一声哦,以及如果单纯只是机场有要求的话,我可以推荐几个(当然不会放到正文里)

这是一篇面向完全没有相关经验的读者的保姆级教程,这部教程将会手把手带你从购买服务器开始,一步步链接,搭建,配置属于自己的 VLESS+Reality 代理节点,并大致理解每一步背后的原理,最后甚至可以用自己的域名作为掩护。

观前声明:本文所述是一个作者自己跑通实现的方法,在工程运行上,可能存在更优或者更安全,更便捷的方法,欢迎各位佬友多多指正!

另外,如果有任何不理解或者不清楚的地方,欢迎在评论区或者私信多多提问。

更新
upd3.15 本文被误识别为AIGC移除(其实是作者太菜了第一次写MKD拷的网上的模板),现在已恢复
upd4.2 看到了很多佬友们的评论,没想到这篇教程这么受欢迎,感谢各位的捧场,于是决定优化文本结构,插入图片等更方便理解,以及回答部分评论区问题
upd4.10 最近看到很多朋友们想学搭建网站然后“偷自己”(的证书),我研究了一下,包括购买域名,声明证书,配置流量转发和代理这三部分,我会将这部分加入教程的最后部分,如果需要的话,可以去这里

预计耗时:3小时

预算:约120元/月(如果你购买搬瓦工的服务器)+10元/年(如果你还买个域名)
你需要拥有一个绑定银行卡的支付宝账户(为了购买搬瓦工的服务器和域名)

目录

  • -1 · 什么是 GFW, 为什么我们需要代理
  • 00 · 代理的原理和自己部署代理
  • 01 · 购买服务器
  • 02 · 测试网络质量
  • 03 · SSH 连接服务器
  • 04 · 初始化系统
  • 05 · 安装 3x-ui 面板
  • 06 · 申请 SSL 证书
  • 07 · 配置 VLESS+Reality 协议节点
  • 08 · 测试节点
  • 09 · 转换为 Clash 配置(YAML)
  • 10 · 多用户管理
  • 11 · 自己搭建网站并伪装自己(选做)
  • !! · 关键踩坑记录

-1 · 什么是 GFW, 为什么我们需要代理

GFW

GFW是中华人民共和国的网络审查系统,为了保护广大网民免受外国反动媒体和虚假叙事的毒害。为了达到这个目标,它实施黑名单屏蔽制度。具体地,GFW会检测你发出的网络请求,而如果目标是合法的,则不屏蔽,而如果目标是未经审查的非法网站(Google、YouTube 等),就把这个连接直接掐断。因此,如果我们为了学习或工作要访问这些被屏蔽的网站,要做的,就是让 GFW “看不懂” 我们在做什么。让他当作合法目标进行处理

请注意, 2021年11月14日,中央网络安全和信息化委员会办公室(国家互联网信息办公室)出台 [网络数据安全管理条例(征求意见稿)] 其中第四十一条提到:

第四十一条 国家建立数据跨境安全网关,对来源于中华人民共和国境外、法律和行政法规禁止发布或者传输的信息予以阻断传播。
任何个人和组织不得提供用于穿透、绕过数据跨境安全网关的程序、工具、线路等,不得为穿透、绕过数据跨境安全网关提供互联网接入、服务器托管、技术支持、传播推广、支付结算、应用下载等服务。
境内用户访问境内网络的,其流量不得被路由至境外。

由此,任何买卖,搭建个人代理的行为存在一定法律风险,在此提出倡议:

仅利用代理进行学习和工作的必要行为,遵守国家法律法规,自觉抵制不良信息。本教程亦不承担违反以上规则的任何责任。

以及,如果你只是想找个便宜的代理(好奇没有代理是怎么进来的),那就随便网上搜搜看,就不用看这篇教程啦,来这里:Releases · clash-verge-rev/clash-verge-rev · GitHub 下载clash-verge,然后导入你搞到的节点就好啦

如果你想在手机上跑,安卓还是用clash,苹果的话,自己买个美区Stash的账号也支持clash,或者如果用的是小火箭,那就点导入扫一下给出来的二维码

那么,如果你只是想翻墙,这篇教程就到此为止了,如果你还想了解更多的原理,并自己部署代理,再往下看哦


00 · 代理的原理和自己部署代理

代理的工作原理

常见的方法是利用境外的一台服务器当作代理,访问境外网站时,流量不直接去目标网站,而是先发给这台服务器,服务器再代为访问并把结果传回来。由此,GFW 看到的只是你和那台服务器之间的通信,而这个通信被我们伪装成了普通的 HTTPS 流量,GFW实施的是黑名单制度,是不断屏蔽ip而不是只允许我们访问特定ip,因此我们对陌生ip的访问大概率不会被GFW识别并屏蔽。

你的电脑 ──加密流量 ──▶ 境外VPS ──正常请求 ──▶ 境外网站等 GFW 看到的:你在访问一个随机的 HTTPS 网站 → 放行

为什么要自己部署代理服务器

自然,我们可以直接利用网上分享的公用节点和购买代理,而且,如果你只是日常在外网浏览一些信息,使用匿名服务的话,也够用了。但是如果你要用它处理重要个人信息,或者从事金融服务等需要极度隐私和安全的场景,则这些公用代理的弊端显现出来了:

这些代理大多使用人数很多,不仅在高峰时段容易拥堵,使用人数超标还可能让各大网站触发风控,使得ip “变脏”。 这样我们注册网站 (例如Google) 的时候就会备受折磨,同时如果代理商不怀好心,则你的信息可能被监视并盗取,对个人财产安全造成损失。因此,从安全角度来看,自己部署代理也是更好的选择。


01 · 购买服务器

什么是 VPS

VPS(虚拟私人服务器)就是你在机房租用的一台独立服务器,有固定 IP 地址。我们需要它来做代理的中转。
如果你薅到了githubedu的服务,oracle云,微软云等各类的服务器,只要如下测一下ip,然后试着连接可以就都没问题,如果手头紧凑的话,可以购买racknerd,但是有概率遇到坏ip,这里可以得到11美刀一年的套餐( RackNerd - New Year Sale! )我们对vps的配置要求很低很低,买最便宜的套餐即可,流程同下,也支持支付宝。

推荐:搬瓦工 CN2 GIA (或是你自己搞到的任何能访问外网的服务器)

选择 CN2 GIA 线路套餐,访问 CN2 GIA network for your VPS - BandwagonHost VPS 。翻到页面底部,可以根据自己的需求选择香港或洛杉矶节点。

CN2 GIA 是什么?
CN2 GIA 是中国电信的顶级骨干网线路,虽然价格比普通 VPS 贵,但延迟更低,丢包更少。

推荐套餐:机房选 Los Angeles DC6DC9,对国内延迟最优。还好就好在支持支付宝支付,但是你得绑定银行卡。如图就行

套餐就买最便宜的三个月49$,第一个

加入cart,然后checkout


这边是注册账号,名字地址啥的可以随便填,别忘了就。邮箱要真的,信息都是往那边发

支付选择alipay(支付宝),但你得绑定银行卡,因为要换成美元

系统选择

:warning: 购买完成后记录以下信息,后续所有操作都会用到:

  • 服务器 IP 地址
  • root 密码
  • KiwiVM 控制台地址和密码

KiwiVM 控制台:救命用的备用入口

搬瓦工提供 KiwiVM 控制台,里面有 VNC 功能——就算 SSH 断了、密码忘了,也能直接在浏览器里操作服务器。务必记录这个地址和密码,关键时刻能救命。先登进去,选择Install new OS,选 Ubuntu 24.04,重装一下,大概1-2分钟完成。


02 · 测试网络质量

为什么先测试

服务器的 IP 可能已经被 GFW 封锁。买完之后先测一下,确认 IP 没问题再继续操作,免得白费力气。如果确认ip已经被封锁,则可以申请更换节点。

Ping 测试:确认 IP 没被封

在 Windows 命令提示符(cmd)或终端里执行:

ping 你的服务器IP

或者使用ping.pe,输入ip,结果更直观
例如我的:

可以看到这ip显然很优质

看结果:

  • 有回应,延迟在 50~300ms 之间 → IP 没被封,可以继续
  • 全部 Request timed out / 100% 丢包 → IP 被封,找服务商换 IP

注意:ping 通不代表一切正常
ping 用的是 ICMP 协议,GFW 有时候不封 ICMP 但会封 TCP。后续如果节点连接失败,要进一步确认流量是否到达服务器。


03 · SSH 连接服务器

什么是 SSH

SSH是远程控制服务器的工具。你在自己电脑上输入命令,命令通过加密通道传到服务器执行。

连接

ssh root@你的服务器IP


点yes,然后输密码

输密码时屏幕没有反应是正常的
SSH 出于安全考虑,输入密码时屏幕不显示任何字符(包括星号也不显示),正常输完按回车即可。

出现 root@服务器名:~# 说明连接成功。


04 · 初始化系统

更新系统包

SSH 连上服务器后,第一件事是更新系统,避免后续安装出现兼容性问题:

apt update && apt upgrade -y

如果过程中询问是否保留某个配置文件,输入 N 回车,保留现有配置即可。

apt 是什么?
apt 是 Ubuntu 的包管理器,相当于苹果手机的 App Store。apt update 是刷新软件列表,apt upgrade 是把已装的软件更新到最新版本,-y 的意思是遇到所有询问自动选"是"。


05 · 安装 3x-ui 面板

什么是 x-ui

x-ui 是一个带有网页界面的 xray 管理工具。xray 是代理软件的核心引擎,配置文件比较复杂;x-ui 在它上面套了一个图形化界面,让我们不用手写 JSON 配置文件,在图形化界面里面完成配置

一键安装脚本

执行:

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

安装过程中会提示设置:

  • 用户名:自定义,记下来
  • 密码:自定义,记下来
  • 面板端口:默认 54321,可以不改
  • 访问路径:会生成一个随机路径,记下来

安装完成后,面板地址格式为:https://你的IP:54321/随机路径

:white_check_mark: 验证安装成功
执行 x-ui status,看到 Active: active (running) 说明面板正在运行。


06 · 申请 SSL 证书

为什么需要 SSL 证书

x-ui 面板通过 HTTPS 访问,需要证书才能加密通信。Reality 协议也依赖 TLS。证书免费申请,会自动续期。

安装时自动引导申请

安装脚本完成后会自动进入 SSL 申请环节,看到以下提示时:

Choose an option (default 2 for IP):

直接回车选默认的 2(为IP地址申请证书),等待申请完成即可。有效期6天,自动续期,无需手动管理。


07 · 配置 VLESS+Reality 节点

Reality 的伪装原理

Reality 在握手时会真正去访问"伪装目标"网站(Target),把它的 TLS 握手行为原封不动地转发给客户端。这样 GFW 看到的流量特征和真正访问那个网站完全一样,极难识别。

关键:伪装目标的选择非常重要,选错了会导致客户端无法连接(见踩坑记录)。

添加入站(Inbound)

登入面板,如图

在 x-ui 面板 → 入站列表添加入站


按下表填写:

配置项 填写内容 说明
协议 vless 下拉选择
端口 443 标准HTTPS端口,GFW极难封
传输 TCP (RAW) 下拉选择
安全 Reality 点击Reality按钮
uTLS chrome 伪装成Chrome浏览器的TLS指纹
Target www.apple.com:443 建议不要随便改动,原因见踩坑记录(准备学习一下怎么购买一个域名,这部分我慢慢写,看到很多大佬说可以用自己的这个证书)
SNI www.apple.com 与Target域名一致

填完后点 生成证书(自动生成公钥私钥),再点 添加 保存。
大概填完了类似这样


然后新建客户端,flow改成xtls-rprx-vision

记录关键参数

入站创建好后,点 分享二维码 按钮,复制 VLESS 链接。链接格式如下:

vless://UUID@服务器IP:443?type=tcp&security=reality&pbk=公钥&fp=chrome&sni=www.apple.com&sid=ShortID&flow=xtls-rprx-vision

或者给他人分享的时候进入网页也可以,类似这样


08 · 测试节点

下载并运行 v2rayN(因为直接写成clash格式太烦了,v2rayN直接支持vless格式,可以调好了在转换,要是对自己的手艺很有信心的话,可以跳过这一步)

  1. 下载: Releases · 2dust/v2rayN · GitHub 最新版 v2rayN-windows-64.zip
  2. 解压,以管理员身份运行 v2rayN.exe
  3. 右键托盘图标 → 从剪贴板导入分享链接
  4. 选中节点,右键 → 设为活动服务器
  5. 底部系统代理选 自动配置系统代理
  6. 路由选 V4-全局(Global)
  7. 开启底部 TUN模式(需要管理员权限才能开)

为什么要开 TUN 模式?
系统代理模式只能代理"听话"的软件(浏览器等)。TUN 模式在系统里创建一个虚拟网卡,强制接管所有流量,不会漏。v2rayN 必须以管理员身份运行才能开启 TUN。

验证是否成功

延迟显示 -1 怎么办?
-1ms 表示协议层握手失败,不是 TCP 连不上的问题。最常见原因是后量子加密兼容性问题(见踩坑记录),解决方案是把伪装目标改为 www.apple.com


09 · 转换为 Clash 配置(YAML)

为什么用 Clash

Clash(Mihomo 内核)比 v2rayN 功能更强,支持按规则分流——国内流量直连、国外流量走代理,灵活配置。推荐日常使用 Clash Verge。

下载 Clash Verge

原版 Clash 已停止维护,推荐使用社区续作 Clash Verge Rev

下载地址: Releases · clash-verge-rev/clash-verge-rev · GitHub

  • Windows → clash-verge_x.x.x_x64-setup.exe
  • Mac(M芯片)→ clash-verge_x.x.x_aarch64.dmg
  • Mac(Intel)→ clash-verge_x.x.x_x64.dmg

手写配置文件(最可靠)

转换工具经常出错,最稳妥的方式是直接写配置文件。在 Clash Verge 里新建配置,粘贴以下内容(替换尖括号内容):

proxies: - name: "节点名称" type: vless server: <服务器IP> port: 443 uuid: <你的UUID> flow: xtls-rprx-vision tls: true udp: true network: tcp reality-opts: public-key: <公钥> short-id: <Short ID> servername: www.apple.com client-fingerprint: chrome proxy-groups: - name: "节点选择" type: select proxies: - 节点名称 - DIRECT rules: - DOMAIN-SUFFIX,cn,DIRECT # .cn 域名直连 - GEOIP,CN,DIRECT # 中国IP直连 - MATCH,节点选择 # 其余走代理

每个字段的含义

字段 含义
servername SNI,告诉服务器你要访问哪个网站,必须与服务器配置一致
reality-opts.public-key 服务器的公钥,用于验证服务器身份
short-id 服务器的短ID,用于区分多个节点
client-fingerprint TLS指纹,伪装成的浏览器类型,要与服务器 uTLS 设置一致
flow: xtls-rprx-vision Reality协议专用的传输优化模式,必须填
GEOIP,CN,DIRECT 所有归属地为中国的IP直连,不走代理

或者如果懒得自己写可以用 https://acl4ssr-sub.github.io/ 进行自动转换,好处是白名单比较全,用起来可能更流畅,坏处就是文件比较臃肿,且可能有各种泄露风险。

10 · 多用户管理

给朋友添加独立账号

在 x-ui 面板 → 入站列表 → 编辑入站 → 展开客户端数量添加客户端

字段 说明 示例
ID(UUID) 自动生成,每人独立的"钥匙" 自动生成即可
总流量 流量上限,单位 GB 20GB → 填 20 即可
到期时间 账号过期时间 可选填
评论 备注,方便区分 填朋友名字

添加后在分享页面会看到每个 UUID 对应的独立 VLESS 链接,把对应的发给对方即可。

为什么要用独立 UUID 而不是共用?
独立 UUID 的好处是可以单独限速、看各人流量消耗、随时踢人而不影响其他人。不想精细管理的话,直接共用同一个 UUID 也完全没问题。


11 · 自己搭建网站并伪装自己(选做)

事实上,如果你完成了上述所有步骤,那你已经得到了一个可以用的代理节点,但是这仍旧存在一定风险:大厂的证书被GFW研究的很透彻,如果你在短时间内上传大量数据(例如看视频,下载大文件等)则防火墙会发现端倪(为什么这个用户朝apple.com的主页一分钟内发送了500MB?)从而强制阻断链接。因此,用大厂的证书可能会有比较高的风险,因此更推荐偷邻居或者偷自己,
偷邻居的话,这位大佬讲的非常详细,请允许我引用您的评论

偷自己的话,大概流程是这样的

原理:不再借用 Apple 或其他大厂的证书,而是在自己的 VPS 上跑一个真实的,拥有域名的网站。我的实现是:Xray 站在最前端占据443端口处理一切流量,如果流量特征是代理请求,附加你特定的参数,就执行代理,如果是任何其他的东西,就转发给内部端口(我用的是8443)这里,流量被转发到 Nginx ,而我们在这里展示一个无害的网页。这样的话,GWF看到的是:所有流量都走443端口,且访问的时候,证书,地址等都没问题,而且最重要的是,如果任何人真的访问那个网址,还有一个真的网站。这种方法几乎没有破绽,因此你只要不是使用的太猖獗,甚至开始销售代理服务,那风险极小

形式化地:

访客身份 携带信息 处理结果 外部观察到的行为
要使用代理的用户 正确的 UUID Xray 代理 正常翻墙
GFW 探测 随机请求 回落至 Nginx 看到你自建的网页
直接访问域名 访问请求 回落至 Nginx 看到你自建的网页

理解了远离之后,我们接下来做的以下两步是并行的,顺序无所谓:我们需要一个网址和https证书等,还需要撰写一个网页,因为网址需要购买,我们最后做

01 · 安装 Nginx

我们更新,然后下载Nginx

SSH 进入服务器后运行:

bash

apt update && apt install nginx -y

验证是否成功:

bash

systemctl status nginx

看到 active (running) 即可。


02 · 撰写 HTML 文件

在本地准备好网站的静态 HTML 文件(随便写几个这就不用我教了吧,或者让大模型给你搞几个)然后保存到一个地址(注意这个地址最好不要有中文,奇怪的字符和空格,因为命令行不一定支持,例如空格必然是分隔符)

scp C:\index.html root@你的IP:/var/www/html/

这条命令解释:

  • scp — secure copy,通过 SSH 传文件
  • C:\index.html — 文件路径,如果放在别的地方就改一下
  • root@你的IP地址 — 用 root 用户连服务器
  • :/var/www/html/index.html — 传到服务器的这个路径,这是 Nginx 默认网站目录

输完回车会让你输密码,传完没有报错就成功了。

传完之后浏览器访问 http://你的IP地址 看看有没有显示你的静态网页界面


03 · 购买并配置域名

前一步做好了,一个静态网页就搞好了,接下来我们加入网址,让这个更可信

对于域名,我采用的是 Namesilo,便宜,而且支持支付宝,.top 域名很便宜,第一年 $1.88


选项有点奇葩我一开始没找到支付宝,在这里选see more

这个颜色的就是

购买后到主页进入active domain


点击域名进入配置界面


点击DNS,把@和www都改成你的ip就行

等待几分钟(我只等了半分钟) DNS 生效后,我们再申请证书。


04 · 获取证书

先安装 Certbot:

bash

apt install certbot python3-certbot-nginx -y

certbot 是自动申请和续期 SSL 证书的工具
python3-certbot-nginx 是 Nginx 插件,让 certbot 能直接读写 Nginx 配置,不用手动改

然后我们最好申请HTTPS证书,因为者更安全,看起来也更像正常的网站:

certbot --nginx -d 你的域名 -d www.你的域名

这在做什么: Certbot 会自动联系 ”Let’s Encrypt“ 这个组织,试着证明你对这个域名有控制权(通过访问你服务器上的一个临时文件来验证),然后签发证书,并且自动修改 Nginx 配置加上 HTTPS。

运行后会有几个交互提示:

  • 要求输入邮箱 — 随便填一个,用于证书过期提醒
  • 询问是否同意服务条款 — 输入 Y
  • 询问是否接收邮件 — 输入 N

注意: 这一步要求 DNS 已经生效,即 你的域名 能解析到 你的IP地址。如果报错说找不到域名,就等几分钟再试。
失败的类似这样

Certbot failed to authenticate some domains (authenticator: nginx). The Certificate Authority reported these problems: Domain: www.*.top Type: unauthorized Detail: *.*.*.*: Invalid response from http://www.*/.*/*/fvUEMWlcosSxOPSDEPRi5cTCAphIm8DfGZLwytTcJQU: "<!DOCTYPE html><html lang=\"en\" data-adblockkey=*" Hint: The Certificate Authority failed to verify the temporary nginx configuration changes made by Certbot. Ensure the listed domains point to this nginx server and that it is accessible from the internet. Some challenges have failed. Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.

成功的话,会输出

Requesting a certificate for *.top and www.*.top Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/*.top/fullchain.pem Key is saved at: /etc/letsencrypt/live/*.top/privkey.pem This certificate expires on 2026-07-08. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. Deploying certificate Successfully deployed certificate for *.top to /etc/nginx/sites-enabled/*.top Successfully deployed certificate for www.*.top to /etc/nginx/sites-enabled/*.top Congratulations! You have successfully enabled HTTPS on https://*.top and https://www.*.top - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - If you like Certbot, please consider supporting our work by: * Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate * Donating to EFF: https://eff.org/donate-le - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

05 · 更改 x-ui 配置和 Nginx 配置并测试

Nginx 配置/etc/nginx/sites-available/你的域名):

输入这个开始编辑

nano /etc/nginx/sites-available/你的域名

nginx

server { listen 8443 ssl; server_name 你的域名 www.你的域名; ssl_certificate /etc/letsencrypt/live/你的域名/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/你的域名/privkey.pem; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } }

每行含义:

  • listen 80 — 监听 HTTP 的 80 端口
  • server_name — 匹配这两个域名的请求
  • root — 网站文件在哪里
  • index — 默认首页文件名
  • try_files — 先找对应文件,找不到返回 404

粘贴完:Ctrl+SCtrl+X 退出。

然后运行这两条:

bash

ln -s /etc/nginx/sites-available/你的域名 /etc/nginx/sites-enabled/ nginx -t && systemctl reload nginx

ln -s 是创建软链接,把配置文件"启用"。nginx -t 是测试配置语法有没有问题。
然后重启启用配置:

如果输出是这样的话,就没问题

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

x-ui 面板改动:

改成这样,在fallback(回落机制)中写好,如果接收到的流量不满足要求,就转到这个接口,让Nginx来显示那个我们写的网页


以及相应地,把xui的SNI和Target也改下,例如这样

127.0.0.1:8443这边的意思就是本机的8443接口,直接用自己的域名也应该可以

但是因为SNI和Target换了,最后一步就是把clash配置里的的域名改了
Clash 客户端配置 中把 servername后面的项 改成你的域名:

在 Clash 中测一下速度就行了。

做完以上这些项之后,恭喜你,你得到了一个近乎完美的代理节点,在使用中探索世界吧!



!! · 关键踩坑记录

:warning: 这一节是本次真实部署中踩到的坑,全部搞清楚可以让你少走很多弯路。


坑 1:后量子加密兼容性问题(最大的坑)

现象:节点能 ping 通、TCP 能建立连接,但实际代理失败,v2rayN 延迟显示 -1ms,无法翻墙。

完整失败原理链:

1. Reality握手时,xray服务端真实访问伪装目标(如 onedrive.live.com) 2. 微软服务器支持新的后量子密钥交换算法:X25519MLKEM768 3. xray 26.x 版本看到对方支持,自动切换到这个新算法 4. v2rayN、Clash/Mihomo 客户端内核尚未实现这个算法 5. 服务端和客户端"说的不是同一种语言" → 握手失败 → 连接断开

为什么 ping 通但代理失败?
ping 用的是 ICMP 协议,TCP 握手只是建立连接,而 VLESS+Reality 的握手失败发生在 TCP 连接建立之后的协议层。所以表现为 TCP 延迟正常(6ms)但实际代理失败(-1ms)。这两个延迟是不同层面的,非常容易误判。

不同伪装目标的兼容性对比:

伪装目标 是否支持后量子 能否正常使用
onedrive.live.com ✗ 支持(微软) :cross_mark: 客户端握手失败
outlook.com ✗ 支持(微软) :cross_mark: 客户端握手失败
www.google.com ✗ 支持(Google) :cross_mark: 客户端握手失败
www.apple.com ✓ 暂不支持 :white_check_mark: 正常使用

解决方案:把伪装目标改为苹果官网。

x-ui 面板 → 入站列表 → 编辑入站 → 修改 Target 和 SNI:

  • Target:www.apple.com:443
  • SNI:www.apple.com

点更新保存,问题解决。本次部署最终使用 xray 26.2.6,未做任何版本降级,仅靠更换伪装目标解决问题。


坑 2:x-ui 有自己独立的 xray,不是系统的那个

x-ui 有自己内置的 xray 二进制文件:

/usr/local/x-ui/bin/xray-linux-amd64 x-ui 实际使用这个 /usr/local/bin/xray 系统安装的,x-ui 不用这个

如果要替换 x-ui 用的 xray 版本,必须覆盖前者,且要先停止服务再替换:

x-ui stop cp /usr/local/bin/xray /usr/local/x-ui/bin/xray-linux-amd64 x-ui start

坑 3:普通 VPS 的 IP 可能被 GFW 针对 TCP 流量

ping 通了不代表 TCP 没被封。GFW 可以选择性地对某个 IP 的 TCP 流量进行封锁,而 ICMP(ping)放行。

验证方法:在服务器上用 tcpdump 抓包,同时在客户端发起连接,看包有没有到达:

# 在服务器上执行 tcpdump -i eth0 port 443 -c 20

如果客户端发起连接但服务器一个包都没收到,说明 TCP 流量在中国侧就被丢弃了,需要换 IP,而不是折腾配置。


常用命令速查

# SSH连接服务器 ssh root@服务器IP # 启动/停止/重启 x-ui x-ui start x-ui stop x-ui restart # 查看 xray 是否在监听端口 ss -tlnp | grep xray # 抓包验证流量是否到达服务器 tcpdump -i eth0 port 443 -c 20 # 查看 x-ui 用的 xray 版本 /usr/local/x-ui/bin/xray-linux-amd64 version # 进入 x-ui 管理菜单 x-ui

2026.3.13
4.2 upd1
4.10 upd2

阅读时间 28 分钟

由 ZMoon 于 3月 13 日 发布

由 wabulae 于 3月 13 日 发布

由 user9527 于 3月 13 日 发布

由 tmwl 于 3月 13 日 发布

由 wabulae 于 3月 13 日 发布

由 wabulae 于 3月 13 日 发布

由 tmwl 于 3月 13 日 发布

由 wabulae 于 3月 13 日 发布

由 tmwl 于 3月 13 日 发布

由 sz5032208 于 3月 13 日 发布

由 wabulae 于 3月 13 日 发布

由 arnzh 于 3月 13 日 发布

支持分享,收藏一下,自从我3个小时就被gfw封了3个ip以后,我就vps弃坑了。

由 CChris 于 3月 13 日 发布

由 CChris 于 3月 13 日 发布

由 Roseluo 于 3月 13 日 发布

由 wabulae 于 3月 13 日 发布

由 CChris 于 3月 13 日 发布


看第二行左边,比如说一些比较敏感或者不希望直接被扒的信息,就可以带 LV 等级,带了等级需要等级达到的用户才能访问,一定程度上避免敏感信息泄露的风险(主要能叠甲兄弟)其实就是拉权限兜底

由 CChris 于 3月 13 日 发布

由 wabulae 于 3月 13 日 发布

由 CChris 于 3月 13 日 发布

由 wabulae 于 3月 13 日 发布

由 CChris 于 3月 13 日 发布

由 handsome 于 3月 13 日 发布

由 laikey.lau 于 3月 13 日 发布

由 lyricx 于 3月 13 日 发布

由 Awaken 于 3月 13 日 发布

由 laceeeeee 于 3月 14 日 发布

由 olivez 于 3月 14 日 发布

由 sanquan 于 3月 14 日 发布

由 kiti 于 3月 14 日 发布

由 Kizuna_Ai 于 3月 14 日 发布

SNI直接偷APPLE或者非常小众的:face_savoring_food:
端口必须改成高位:face_savoring_food:
vps租热门翻墙机房:face_savoring_food:

由 Catchable6 于 3月 14 日 发布

由 zzk6 于 3月 14 日 发布

由 jimmyliu 于 3月 14 日 发布

搬瓦工的ip被整段封,是不是在教程里面换别家的比较好呢。

由 Auuro 于 3月 14 日 发布

谢谢大佬分享,买的梯子不稳定刚好最近想自己弄一个

由 weisili2025 于 3月 14 日 发布

教程太棒了,既有原理又有方法,让我这种也能轻松理解,感谢大佬分享

由 wabulae 于 3月 14 日 发布

由 wabulae 于 3月 14 日 发布

由 ruojin 于 3月 15 日 发布

刚好需要这个教程,太好了。看到ubuntu24.0.4的时候猛然抬头,居然还是个热乎的教程,这下不得不评论了

加载下方更多帖子