自建代理节点 · 从零到运行完全指南
本教程面向完全没有相关经验的读者,手把手带你从购买服务器开始,一步步搭建属于自己的 VLESS+Reality 代理节点,并理解每一步背后的原理。请注意,本文所述仅仅是一个作者已经实现的方法,可能存在更优或者更安全更便捷的方法,欢迎各位佬友多多指正! 另外,如果有任何不理解或者不清楚的地方,欢迎多多提问。
预计耗时:1.5小时
你需要拥有一个绑定银行卡的支付宝账户
目录
- 00 · 先搞懂原理:我们在做什么
- 01 · 购买服务器
- 02 · 测试网络质量
- 03 · SSH 连接服务器
- 04 · 初始化系统
- 05 · 安装 3x-ui 面板
- 06 · 申请 SSL 证书
- 07 · 配置 VLESS+Reality 节点
- 08 · 测试节点
- 09 · 转换为 Clash 配置(YAML)
- 10 · 多用户管理
- !! · 关键踩坑记录
00 · 先搞懂原理:我们在做什么
什么是 GFW, 为什么我们需要代理
GFW是东大的网络审查系统,为了保护网民免受外界信息毒害。它会检测你发出的网络请求,而如果目标是被屏蔽的网站(Google、YouTube 等),就把这个连接直接掐断。因此,如果我们为了学习或工作要访问这些被屏蔽的网站,要做的,就是让 GFW “看不懂” 我们在做什么。
代理的工作原理
利用境外的一台服务器当作代理,访问境外网站时,流量不直接去目标网站,而是先发给这台服务器,服务器再代为访问并把结果传回来。GFW 看到的只是你和那台服务器之间的通信,而这个通信被我们伪装成了普通的 HTTPS 流量,GFW实施的是黑名单制度,是不断屏蔽ip而不是只允许我们访问特定ip,因此我们对陌生ip的访问大概率不会被GFW识别并屏蔽。
你的电脑 ──加密流量──▶ 境外VPS ──正常请求──▶ Google等
GFW 看到的:你在访问一个 HTTPS 网站(伪装成例如苹果官网的流量)→ 放行 ✅
为什么要自己部署代理服务器
自然,我们可以直接利用网上分享的公用节点和购买代理,而且,如果你只是日常在外网浏览一些信息,使用匿名服务的话,也够用了。但是如果你要用它注册重要账号,或者从事金融服务等需要,则这些公用代理的弊端显现出来了:这些代理大多使用人数很多,不仅在高峰时段容易拥堵,使用人数超标还可能让各大网站触发风控,使得ip “变脏”。 这样我们注册网站 (例如Google) 的时候就会备受折磨,同时如果代理商不怀好心,则你的信息和账密可能被监视并盗取,对个人财产安全造成损失。因此,从安全角度来看,自己部署代理是更好的选择。
01 · 购买服务器
什么是 VPS
VPS(虚拟私人服务器)就是你在机房租用的一台独立服务器,24 小时运行,有固定 IP 地址。我们需要它来做代理的中转。
推荐:搬瓦工 CN2 GIA (或是你自己搞到的任何能访问外网的服务器)
访问 https://bandwagonhost.com,选择 CN2 GIA 线路套餐。翻到页面底部,可以根据自己的需求选择香港或洛杉矶节点。
CN2 GIA 是什么?
CN2 GIA 是中国电信的顶级骨干网线路,虽然价格比普通 VPS 贵,但延迟更低,丢包更少。
推荐套餐:20G KVM PROMO V5 – CN2 GIA ECOMMERCE,约 $49.99/季度。机房选 Los Angeles DC6 或 DC9,对国内延迟最优。还好就好在支持支付宝支付,但是你得绑定银行卡。
系统选择
购买时系统选 Ubuntu 24.04,这是目前最稳定的 LTS 版本,本教程所有命令均基于此系统。
购买完成后记录以下信息,后续所有操作都会用到:
- 服务器 IP 地址
- root 密码
- KiwiVM 控制台地址和密码
KiwiVM 控制台:救命用的备用入口
搬瓦工提供 KiwiVM 控制台,里面有 VNC 功能——就算 SSH 断了、密码忘了,也能直接在浏览器里操作服务器。务必记录这个地址和密码,关键时刻能救命。
02 · 测试网络质量
为什么先测试
服务器的 IP 可能已经被 GFW 封锁。买完之后先测一下,确认 IP 没问题再继续操作,免得白费力气。如果确认ip已经被封锁,则可以申请更换节点。
Ping 测试:确认 IP 没被封
在 Windows 命令提示符(cmd)或终端里执行:
ping 你的服务器IP
或者使用ping.pe,输入ip,结果更直观
看结果:
- 有回应,延迟在 50~300ms 之间 → IP 没被封,可以继续

- 全部
Request timed out/ 100% 丢包 → IP 被封,找服务商换 IP
注意:ping 通不代表一切正常
ping 用的是 ICMP 协议,GFW 有时候不封 ICMP 但会封 TCP。后续如果节点连接失败,要进一步确认流量是否到达服务器。
03 · SSH 连接服务器
什么是 SSH
SSH(安全外壳协议)是远程控制服务器的工具。你在自己电脑上输入命令,命令通过加密通道传到服务器执行,就像坐在服务器面前操作一样。
搬瓦工 CN2 GIA:直接连接
搬瓦工线路质量好,SSH 不会被 GFW 掐断,直接在终端执行:
ssh root@你的服务器IP
输密码时屏幕没有反应是正常的
SSH 出于安全考虑,输入密码时屏幕不显示任何字符(包括星号也不显示),正常输完按回车即可。
出现 root@服务器名:~# 说明连接成功。
04 · 初始化系统
更新系统包
SSH 连上服务器后,第一件事是更新系统,避免后续安装出现兼容性问题:
apt update && apt upgrade -y
如果过程中询问是否保留某个配置文件,输入 N 回车,保留现有配置即可。
apt 是什么?
apt 是 Ubuntu 的包管理器,相当于 iPhone 的 App Store。apt update是刷新软件列表,apt upgrade是把已装的软件更新到最新版本,-y的意思是遇到所有询问自动选”是”。
05 · 安装 3x-ui 面板
什么是 x-ui
x-ui 是一个带有网页界面的 xray 管理工具。xray 是代理软件的核心引擎,配置文件比较复杂;x-ui 在它上面套了一个图形化界面,让我们不用手写 JSON 配置文件,在浏览器里点几下就能配好节点。
一键安装脚本
在 SSH 里执行:
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
安装过程中会提示设置:
- 用户名:自定义,记下来
- 密码:自定义,记下来
- 面板端口:默认 54321,可以不改
- 访问路径:会生成一个随机路径,记下来
安装完成后,面板地址格式为:https://你的IP:54321/随机路径
验证安装成功
执行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 | Reality专用传输模式,必须选 |
填完后点 生成证书(自动生成公钥私钥),再点 添加 保存。
记录关键参数
入站创建好后,点 分享 或 二维码 按钮,复制 VLESS 链接。链接格式如下:
vless://UUID@服务器IP:443?type=tcp&security=reality&pbk=公钥&fp=chrome&sni=www.apple.com&sid=ShortID&flow=xtls-rprx-vision
08 · 测试节点
下载并运行 v2rayN
- 下载:Releases · 2dust/v2rayN · GitHub 最新版
v2rayN-windows-64.zip - 解压,以管理员身份运行
v2rayN.exe - 右键托盘图标 → 从剪贴板导入分享链接
- 选中节点,右键 → 设为活动服务器
- 底部系统代理选 自动配置系统代理
- 路由选 V4-全局(Global)
- 开启底部 TUN模式(需要管理员权限才能开)
为什么要开 TUN 模式?
系统代理模式只能代理”听话”的软件(浏览器等)。TUN 模式在系统里创建一个虚拟网卡,强制接管所有流量,不会漏。v2rayN 必须以管理员身份运行才能开启 TUN。
验证是否成功
- 浏览器打开 https://www.google.com,能访问

- 访问 https://ip.sb,显示的 IP 是服务器所在地(如美国洛杉矶)

延迟显示 -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 也完全没问题。
!! · 关键踩坑记录
这一节是本次真实部署中踩到的坑,全部搞清楚可以让你少走很多弯路。
坑 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 | ✗ 支持(微软) | |
| outlook.com | ✗ 支持(微软) | |
| www.google.com | ✗ 支持(Google) | |
| www.apple.com | ✓ 暂不支持 |
解决方案:把伪装目标改为苹果官网。
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
推荐机场:https://cy.macfun.org/ 注册有免费赠送流量~





暂无评论内容