图像
不用买域名!新手也能用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
记下两行:PrivateKeyPublicKey,后面都要用。
③ 生成 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
IP 检测仍是 VPS IP 不是住宅 IP? 忘改成 proxy-out 了——这是最常犯的错
住宅代理信息要不要写进手机? 不用。客户端只填 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 照着做
图像
我踩过的坑全标出来了,照着走就行。
搭成了回来评论区报个喜,我在。 还想看什么出海基础设施的搭建指南?评论告诉我,我接着写。
  • 35岁 Non-coder 独立开发|AI出海 × 一人公司 上一段:逃离体制,卷国内电商(单人单月GMV 60万+) 小红书2个月跑通变现5万 每周复盘:产品·增长·心态·变现 🛠️真实第二曲线路径 → 💰