不用买域名!新手也能用VLESS + Reality + Vision 搭建轻量化梯子
梯子老被封,真不只是线路问题——
是你看了那些装面板的教程。
买域名、配证书、搭数据库......自用节点硬生生搞成机场配置。
越复杂越容易出问题。
🔪 第一刀:砍掉面板
sing-box 一个二进制文件就够,不到 10MB
🔪 第二刀:砍掉域名
Reality 协议伪装成访问购物网站,根本不需要自己买域名
最后只剩三样东西:
一台 VPS + 一个住宅代理 + 一个 sing-box。
没有面板。没有域名。没有多余依赖。
最轻量,也最不容易被封。
▍这三样东西是怎么配合的
把梯子想象成「出国」:
🛂 普通梯子 = 你穿着制服挂着工牌过安检
GFW(防火墙)一扫:这人挂机房工牌 → 拦
🎭 VLESS + Reality + Vision = 同一道安检,但你换了身便装
牛仔裤、双肩包,低头刷手机,跟其他旅客一模一样
GFW 扫过去:普通人,过
🏠 住宅 SOCKS5 = 你不是从海关大门出来的
你是从本地居民区走出来的
IP 归属地是「美国某户家庭宽带」,不是「某某数据中心」
三个东西叠在一起:
你的设备 → 海外 VPS(接头点)→ 住宅宽带(换脸出口)→ 外网
GFW 全程只看到:
一个美国网友正在浏览网站
别的什么都不存在
▍第一步:买 VPS
线路就是你的「车道」。
CN2GIA = 高速公路,贵但畅通
163 骨干网 = 乡道,便宜但高峰期堵成狗,显示网速80,刷个视频都费劲
准备做海外业务的,直接上搬瓦工或 Dmit,认准 CN2GIA 线路,想降低 Claude Code / ChatGPT 封号概率选美西(洛杉矶)机房。
这两家都可以用支付宝,全程只有掏钱的那一刻肉疼,体验一级棒。
⚠️ 除了几家大 VPS 商,其他小商家别年付,月付更安心。
实在预算紧张,也有羊毛 VPS 可以薅,刷个 X、看看海外小视频也妥妥够用。
住宅代理IP选择挺多,买一个静态IP通常价格在月付3刀左右。
以下是我选择的使用环境:
- VPS 系统:Ubuntu 24.04
- 客户端:Windows + Clash Verge,安卓 + Clash Meta(可选),iOS + Clash Mi(可选)
- 服务端核心:sing-box
- 入站协议:VLESS + Reality + Vision
- 出站代理:住宅静态 IP 的 SOCKS5
- SSH 登录:密钥登录,关闭密码登录
▍第二步:连上 VPS
购买 VPS ,记下:
- 【你的VPS公网IP】
- 【VPS root 密码】
住宅 SOCKS5 信息:
- 【住宅代理IP或域名】
- 【住宅代理端口】
- 【住宅代理用户名】
- 【住宅代理密码】
Win + R → 输入 PowerShell → 回车
powershell
ssh root@你的VPS IP第一次连接会问:
"你确定要信任这台机器吗?"
输入 yes,回车。
这是正常的,就像第一次去朋友家要认门。
然后输入 root 密码。
⚠️ 密码不会显示!你看不到是正常的,粘贴完直接回车。
(PowerShell 里粘贴用鼠标右键单击,Ctrl+V 不生效。)
▍第三步:更新系统 + 安装 sing-box
先更新系统(别跳过,不然后面可能缺依赖):
powershell
apt update && apt upgrade -y等执行完,一条命令装 sing-box:
powershell
curl -fsSL https://sing-box.app/install.sh | sh⚠️ 这条命令不要手打,直接复制粘贴。-fsSL 和管道符前后的空格,手动输入极易出错(我踩过)。
装完验证:
powershell
sing-box version看到版本号就是成了。全程不到一分钟。
▍第四步:配钥匙(生成 3 个东西)
在 VPS 里依次跑这三条,输出保存到本地记事本:
① 生成 UUID——这是你的「门禁卡编号」
powershell
sing-box generate uuid② 生成 Reality 密钥对——这是你的「伪装身份」
powershell
sing-box generate reality-keypair记下两行:PrivateKey 和 PublicKey,后面都要用。
③ 生成 Short ID——这是你的「防伪水印」
powershell
openssl rand -hex 8三样东西存好,下一步直接填进配置。
▍第五步:创建配置目录
powershell
mkdir -p /etc/sing-box▍第六步:写入服务端配置(最关键的一步)
把下面模板里【】替换成你的真实信息,
整段粘贴进 VPS 执行:
powershell
cat > /etc/sing-box/config.json << 'EOF'
{
"log": {
"level": "info",
"timestamp": true
},
"dns": {
"servers": [
{"type": "local", "tag": "dns-local"},
{
"type": "https",
"tag": "dns-remote",
"server": "1.1.1.1",
"path": "/dns-query",
"domain_resolver": "dns-local",
"detour": "proxy-out"
}
],
"final": "dns-remote"
},
"inbounds": [
{
"type": "vless",
"tag": "vless-in",
"listen": "0.0.0.0",
"listen_port": 443,
"users": [
{
"uuid": "【你的UUID】",
"flow": "xtls-rprx-vision"
}
],
"tls": {
"enabled": true,
"server_name": "icloud.com",
"reality": {
"enabled": true,
"handshake": {
"server": "icloud.com",
"server_port": 443
},
"private_key": "【你的PrivateKey】",
"short_id": ["【你的ShortID】"]
}
}
}
],
"outbounds": [
{
"type": "socks",
"tag": "proxy-out",
"server": "【住宅代理IP或域名】",
"server_port": 【住宅代理端口】,
"username": "【住宅代理用户名】",
"password": "【住宅代理密码】",
"version": "5",
"network": "tcp"
},
{
"type": "direct",
"tag": "direct"
},
{
"type": "block",
"tag": "block"
}
],
"route": {
"auto_detect_interface": true,
"default_domain_resolver": "dns-local",
"rules": [
{"ip_is_private": true, "outbound": "direct"}
],
"final": "proxy-out"
}
}
EOF这个配置做了三件关键的事,缺一不可:
① DNS 全部走住宅代理(dns-remote 的 detour: proxy-out)
→ 杜绝 DNS 泄露,你的 DNS 查询跟出口 IP 是同一个地区
② 内网流量直连(ip_is_private → direct)
→ 不影响 VPS 自己的内部通信
③ 所有外网流量走住宅出口(final: proxy-out)
→ 你在机场搭的秘密通道,出口开在美西本地居民区
⚠️ 千万记住:
"final": "proxy-out"
这行不写 = 流量全从 VPS 裸奔出去,前功尽弃。
▍第七步:检查并启动
powershell
sing-box check -c /etc/sing-box/config.json没有输出报错 = 配置正确。
启动服务:
powershell
systemctl enable sing-box
systemctl reset-failed sing-box
systemctl restart sing-box
systemctl status sing-box --no-pager必须看到 Active: active (running) ✅
看到 auto-restart 或 exit-code 就是挂了 ❌
→ 查日志:journalctl -u sing-box --output cat -e
确认 443 端口在监听:
powershell
ss -tlnp | grep 443正常输出应包含 LISTEN 0.0.0.0:443。
▍第八步:生成客户端连接信息
VLESS URI 格式如下,把占位符替换为实际值:
powershell
vless://【你的UUID】@【你的VPS公网IP】:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=icloud.com&fp=chrome&pbk=【你的PublicKey】&sid=【你的ShortID】#MyVPS注意:客户端填的是 VPS IP,住宅 IP 不写进客户端——住宅 SOCKS5 只配在 VPS 服务端。
▍第九步:Windows 客户端配置(Clash Verge)
Clash Verge(安装地址放评论区)
⚠️ Clash Verge 订阅框不认 vless:// 链接!别瞎复制。
正确做法:
① 新建文本文件,保存为 myvps.yaml(注意后缀是 .yaml 不是 .txt,记事本保存时选「所有文件」)
② 把下面配置复制进去,替换【】为你的真实值:
yaml
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
dns:
enable: true
listen: 127.0.0.1:1053
enhanced-mode: fake-ip
nameserver:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
proxies:
- name: MyVPS
type: vless
server: 【你的VPS公网IP】
port: 443
uuid: 【你的UUID】
flow: xtls-rprx-vision
tls: true
servername: icloud.com
client-fingerprint: chrome
reality-opts:
public-key: 【你的PublicKey】
short-id: 【你的ShortID】
network: tcp
udp: false
proxy-groups:
- name: Proxy
type: select
proxies:
- MyVPS
rules:
- MATCH,Proxy③ Clash Verge → 订阅 → 新建 → 类型选 Local → 名称填 MyVPS → 直接保存(不需要选择文件上传)
④ 右键该配置 → 编辑文件 → 全选粘贴上面的 YAML 配置 → 保存
⑤ 回到首页,选中该配置,开启系统代理
导入后打开 ip检测网址 ——
看到「住宅/家庭 IP」而不是「数据中心/机房 IP」,
整个链路就通了 ✅
▍第十步:安卓 / iPhone 客户端
安卓 Clash Meta(安装地址放评论区):
① 把 myvps.yaml 传到手机
② 打开Clash Meta → 配置 → 右上角 + → 选从文件导入 → 浏览文件 → 点右边三个点 → 导入myvps.yaml
③ 启动,允许系统 VPN 权限
iPhone Clash Mi :
① 先把 Apple ID 改到国外任意地区搜索下载(AppStore 国区没有 Clash Mi)
② 新建 myvps iphone.yaml,内容如下(比电脑版少一行 listen 字段,其余相同):
yaml
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
ipv6: false
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
proxies:
- name: MyVPS
type: vless
server: 【你的VPS公网IP】
port: 443
uuid: 【你的UUID】
flow: xtls-rprx-vision
tls: true
servername: icloud.com
client-fingerprint: chrome
reality-opts:
public-key: 【你的PublicKey】
short-id: 【你的ShortID】
network: tcp
udp: false
proxy-groups:
- name: Proxy
type: select
proxies:
- MyVPS
rules:
- MATCH,Proxy③ 传到手机 → Clash Mi → 我的配置 → + → 导入配置文件 → 选中启动
TUN 模式要不要开?
- 只刷网页刷视频、用 Web3 插件钱包 → 系统代理够用
- 命令行工具、部分桌面应用不走代理,用Claude code/Codex → 必开 TUN(虚拟网卡模式
- 安卓 Clash Meta 启动后系统 VPN 接管流量,一般不需要单独处理
▍第十一步:验证三步走
① 出口 IP 检查:
打开 ip检测地址 → 显示住宅 IP ✅
② DNS 泄露检查:
打开 DNS检测网站(放评论区) → 点 Extended Test
→ 不显示本地运营商 DNS
→ 不显示 VPS 服务商 DNS
→ 显示与住宅 IP 同地区的 DNS ✅
③ WebRTC 泄露检查:
打开WebRTC检测网站(放评论区)
如果出现 "WebRTC IP doesn't match your Remote IP" → 存在泄露 ❌
处理办法:
- Clash Verge 开启 TUN(虚拟网卡模式)
- Firefox:地址栏输 about:config → 搜 media.peerconnection.enabled → 改为 false
- Chrome / Edge:装 WebRTC Leak Prevent 或 WebRTC Control 插件,启用限制非代理 UDP 的策略。
- 如无需要,关闭 IPv6
▍第十二步:SSH 安全加固(推荐!防被人偷家)
你环境里写了"密钥登录,关闭密码登录",这一步就是做这个。
① 在本地 PowerShell 生成密钥:
powershell
ssh-keygen -t ed25519 -C "my-vps-key"一路回车,默认保存在 C:\Users\你的用户名\.ssh\ 下。
② 上传公钥到 VPS:
powershell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@你的VPS IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"③ 配置快捷登录(以后打 ssh myvps 就行):
powershell
@"
Host myvps
HostName 你的VPS IP
User root
Port 22
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
"@ | Set-Content -Path $env:USERPROFILE\.ssh\config -Encoding ascii④ 在 VPS 中关闭密码登录:
powershell
# 先备份
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F-%H%M%S)
# 干掉 cloud-init 的密码覆盖(这是最隐蔽的坑)
cat > /etc/ssh/sshd_config.d/50-cloud-init.conf << 'EOF'
PasswordAuthentication no
EOF
# 写入密钥专用配置
cat > /etc/ssh/sshd_config.d/99-key-only.conf << 'EOF'
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
ChallengeResponseAuthentication no
PermitRootLogin prohibit-password
EOF⑤ 检查语法 + 重启 SSH:
powershell
sshd -t
systemctl restart ssh⑥ 验证密码登录确实关了:
powershell
ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password root@你的VPS IP看到 Permission denied (publickey) → 密码登录已关闭 ✅
⚠️ 注意:如果 ssh root@IP 仍然能登,不代表密码没关——是 OpenSSH 自动用了你的默认私钥。
▍我替你踩过的坑(省你 3 小时,全部来自实操卡点记录)
❌ sing-box 1.12 后 DNS 格式改了
旧教程用 "address": "https://1.1.1.1/dns-query" → 直接报错
新版必须拆成 "type": "https", "server": "1.1.1.1", "path": "/dns-query"
❌ 修完 DNS 还报错?缺 default_domain_resolver
sing-box 1.12+ 路由里必须显式指定 "default_domain_resolver": "dns-local"
❌ 443 端口没监听?
ss -tlnp | grep 443 没输出 → 服务实际上没跑起来
看日志定位:journalctl -u sing-box --output cat -e
❌ 住宅代理信息要不要写进手机?
不用。客户端只填 VPS IP + 443 + UUID + Reality 参数
住宅 SOCKS5 的 IP、端口、账号密码只写在 VPS 的 /etc/sing-box/config.json 里
❌ SSH 密码关了还能登?
是客户端自动用了默认私钥,不代表密码没关
真正的测试:ssh -o PubkeyAuthentication=no root@IP 看是否被拒
❌ 50-cloud-init.conf 里残留 PasswordAuthentication yes
很多云厂商镜像自带这个文件,会覆盖你的配置
必须进去把它也改成 no,不然密码登录关不掉
❌ WebRTC 泄露真实 IP?
IP 检测正常 ≠ 浏览器环境干净
Firefox → about:config 关 media.peerconnection.enabled
Chrome → 装 WebRTC Leak Prevent 插件
别被那十几个步骤吓到。
从头到尾,真正需要你动脑子的只有三步:
① 把 VPS 买对(认准 CN2GIA)
② 把配置文件里的【】填对
③ 把这篇文章丢给 Codex 或者 Claude 照着做
我踩过的坑全标出来了,照着走就行。
搭成了回来评论区报个喜,我在。
还想看什么出海基础设施的搭建指南?评论告诉我,我接着写。