图像
用VPS自建梯子教程(超详细小白也能看)
大家好,我是奈月,之前花了一点时间研究了一下VPS搭建。感恩codex老师,我真的是每一步都是靠问codex才搞出来的,搞出来之后就想写篇文章分享给大家。
如果能帮到你就太好了,如果我哪里说的不对也请多多指教~

一、为什么需要域名和 VPS

如果只是临时翻墙,最简单的方式当然是直接购买现成的梯子。但如果你想自己掌握节点配置、协议选择、证书管理和客户端订阅方式,自建一台 VPS 会更可控,也更适合长久使用。
这篇文章要做的事情是帮助你拥有一个自己的梯子,但是我的教程并非最全面最完美的,如果想实现更多功能和更安全的配置,需要去学习更多教程。本教程的目的还是为了快速上手。
最终效果是:你有一个自己的域名,比如:node.example.com
它指向你购买的 VPS。VPS 上运行代理服务,客户端通过这个域名连接到 VPS,再由 VPS 访问目标网站。
整体关系可以理解成:
plaintext
手机 / 电脑客户端
        ↓
node.example.com
        ↓
VPS 公网服务器
        ↓
目标网站
这里有两个关键组件:域名和 VPS。
域名的作用是提供一个稳定、可读、可签证书的入口。理论上你也可以直接用 VPS 的 IP 连接,但实际使用时不推荐这么做。
原因有三个:
第一,域名方便迁移。如果 VPS IP 后续被更换、线路变差,或者你换了服务商,只需要把域名的 DNS 记录改到新 IP,客户端仍然连接同一个域名。
第二,域名方便申请 TLS 证书。本文使用的是带 TLS 的方案,客户端连接时会验证证书。用域名申请证书更自然,也更接近普通 HTTPS 服务的使用方式。
第三,域名方便做后续管理。比如你可以把主节点写成:
备用节点写成:
订阅服务写成:
这样比直接记一串 IP 更清晰。
VPS 的作用是提供一台公网服务器。它需要有公网 IP、稳定网络、足够流量,并且允许你通过 SSH 登录安装服务。
本文使用的是 Ubuntu 22.04 系统,配置不需要很高,个人使用一般 1C2G 就够,真正需要关注的是机房位置、带宽和月流量。
需要提前说明的是,这套方案只适合个人学习和自用。不要把节点公开给陌生人使用,也不要把订阅链接、二维码、UUID、服务器 IP 等敏感信息发到公开页面。

二、准备材料:域名、VPS、Cloudflare 账号、SSH 工具

开始之前,先把这次会用到的东西准备好。这个环节不复杂,但建议一次整理清楚,后面配置时会少很多来回排查。
我这次实际使用的组合是:
plaintext
域名注册商:Porkbun
DNS 管理:Cloudflare Free
VPS 地区:香港
VPS 系统:Ubuntu 22.04
VPS 配置:1C2G / 100Mbps / 30G 硬盘 / 300G 月流量
服务端脚本:v2ray-agent
代理核心:Xray-core
最终协议:VLESS + TCP + TLS + Vision
电脑客户端:Clash Verge
手机客户端:Shadowrocket
有朋友可能会问,哎你买个香港的VPS怎么订阅AI呢。
哈哈不要慌,我这个VPS不是拿来玩AI的,如果你的目的是为了使用国外的AI,那么去寻找对应稳定的VPS去购买就可以了,你不需要完全照抄我的 VPS 服务商,X上有很多的VPS购买推荐。

2.1 一个域名

域名可以在 Porkbun、Namecheap、Cloudflare Registrar 等平台购买。我这次用的是 Porkbun,一年大约 11 美元左右,价格正常。
购买域名时,只需要买域名本身,不需要额外购买网站托管服务。后面我们会自己在 VPS 上配置服务,证书也会用免费的 Let's Encrypt 申请。
购买时建议确认这几项:
plaintext
域名已购买成功
Whois 隐私保护已开启
自动续费已开启
账户开启 2FA
没有购买额外 Web Hosting
没有购买额外付费 SSL
这里再说一遍,买域名不是为了做网站,而是为了给 VPS 提供一个稳定的访问入口。
比如后面我们会配置一个子域名:
让它指向 VPS 的公网 IP。客户端连接时,访问的是这个域名,而不是直接写 VPS IP。
图像

2.2 一个 Cloudflare 账号

Cloudflare 在这里主要负责 DNS 管理,不是必须在 Cloudflare 买域名。
我的实际做法是:
plaintext
域名在 Porkbun 购买
DNS 交给 Cloudflare 管理
也就是把 Porkbun 里的 Nameserver 改成 Cloudflare 分配的两个 Nameserver。这样以后所有 DNS 记录都在 Cloudflare 里配置。
这一步后面会详细写。现在只需要提前准备好 Cloudflare 账号,并选择免费套餐即可。
注册/登录后:
plaintext
Add a domain / 添加站点
↓
输入你的域名(如xxx.com),要输入根域名
↓
选择 Free 免费计划
↓
Cloudflare 会扫描现有 DNS 记录
↓
继续
Cloudflare 最后会给你两个 nameserver,格式大概像:
plaintext
xxxx.ns.cloudflare.com
yyyy.ns.cloudflare.com
图像

2.3 一台 VPS

VPS 是这套方案里真正运行服务的机器。它需要有公网 IPv4,能通过 SSH 登录,并且 80、443 端口可以正常使用。
我是在全球云购买的,?
我不做任何广告。大家的需求是不一样的,根据自己的需求可以去别的地方买自己需要的VPS。
图像

2.4 SSH 登录工具

我是用 Mac 自带终端登录 VPS。macOS 不需要额外安装 SSH 工具,直接打开终端即可。
SSH 登录命令格式是:
plaintext
ssh root@<VPS_IP> -p <SSH_PORT>
例如:
ssh root@203.0.113.10 -p 43781

2.5 客户端软件

服务端搭好以后,需要在电脑或手机上导入节点。
我这次主要用了两个客户端:
plaintext
Mac:Clash Verge
iPhone:Shadowrocket
Clash Verge 适合导入订阅,后面 v2ray-agent 会生成 ClashMeta 格式订阅,可以直接添加到 Clash Verge。
Shadowrocket 适合在 iPhone 上测试单个节点。即使订阅里没有专门的 Shadowrocket 格式,也可以复制安装脚本输出的 vless:// 链接手动导入。

三、域名接入 Cloudflare

域名买好以后,下一步是把 DNS 管理权交给 Cloudflare。
还记得刚才说的两个namespace吗,我们就是要配置它。
这两个 Nameserver 的作用是告诉全球 DNS 系统:
这个域名以后由 Cloudflare 来管理解析记录。
也就是说,Porkbun 仍然是域名注册商,但 DNS 记录改到 Cloudflare 管理。
我这里以Porkbun为例,演示下怎么修改,大家在其他平台购买的,可以自行去寻找修改方式。
进入域名详情,找到 Nameservers 配置。
把原来的 Porkbun Nameserver 替换成 Cloudflare 给的两个 Nameserver。
图像
图像
图像
保存后,Porkbun 里的 Nameserver 区域应该能看到这两个 Cloudflare 地址。
这一步保存后,不代表立刻全球生效。DNS 变更需要传播时间,通常几分钟到几小时,Cloudflare 页面也会提示:
正在验证您的域名是否已指向 Cloudflare。
这很正常。官方提示可能写 1 到 2 小时,最长可能 24 小时。实际我这次等了一会儿就通过了。
修改完成后,回到 Cloudflare 等待验证。
验证成功后,Cloudflare 会显示类似:
您的域名现已受到 Cloudflare 的保护。
或者显示站点状态为 Active。
这个状态说明:
域名已经成功指向 Cloudflare。后续 DNS 记录可以在 Cloudflare 里配置。
这一步完成之前,不建议急着安装服务端脚本。因为后面申请证书、校验域名 IP 都依赖 DNS 正确生效。如果 DNS 还没完全切过来,后面很容易遇到域名校验失败。
Cloudflare 页面显示成功后,最好再用命令确认一次。
在 Mac 终端执行:
dig +short NS
正常情况下,应该返回 Cloudflare 的 Nameserver。
如果还是返回 Porkbun 的 Nameserver,说明 DNS 管理权还没有完全切到 Cloudflare。这个时候先不要继续配置节点,等一会儿再查。

四、配置 DNS:添加记录并保持灰云

域名接入 Cloudflare 后,下一步是在 Cloudflare 里添加真正指向 VPS 的 DNS 记录。
我这里实际使用的是:
plaintext
根域名:xxx.com
节点域名:node.xxx.com
VPS IPv4:xx.xx.xx.xx
Cloudflare 记录状态:DNS only

4.1 进入 Cloudflare DNS 页面

登录 Cloudflare,进入你的站点,然后打开:
plaintext
DNS → Records
这里会看到 Cloudflare 扫描或已有的 DNS 记录。
如果你的域名刚从 Porkbun 接过来,可能会看到一些默认记录,比如:
plaintext
A 记录
CNAME 记录
MX 记录
TXT 记录
这些都可以先删除掉,我们自行配置一条新的。
因为我准备使用node作为节点域名,所以就要增加一条node的记录。

4.2 添加 A 记录

点击:
plaintext
Add record
然后填写:
plaintext
Type: A
Name: node
Content: VPS 公网 IPv4
TTL: Auto
Proxy status: DNS only
图像

4.3 为什么这里必须选灰云

Cloudflare 里的 Proxy status 有两种常见状态:
plaintext
Proxied:橙云
DNS only:灰云
本文这里要选:
DNS only
也就是灰云。
区别可以简单理解成:
灰云:Cloudflare 只负责 DNS 解析,客户端直接连接。
橙云:客户端先连 Cloudflare,再由 Cloudflare 转发到源站。
如果是普通网站,比如博客、官网、静态页面,开橙云可以使用 Cloudflare 的 CDN、WAF、缓存和隐藏源站 IP。
但我们这篇教程使用的是:
VLESS + TCP + TLS + Vision
它不是普通 HTTP 网站反代场景。为了让客户端直接和 VPS 上的 Xray 服务建立连接,这条 node 记录应保持灰云。

4.4 验证 DNS 是否解析到 VPS

保存 DNS 记录后,在 Mac 终端执行:
plaintext
dig @1.1.1.1 +short A [你的域名,如node.example.com]
dig @8.8.8.8 +short A [你的域名,如node.example.com]
dig @223.5.5.5 +short A [你的域名,如node.example.com]
正常结果应该返回你的 VPS IP。
注意:如果你的电脑有开启代理,并且使用了TUN模式,可能会影响终端的输出。做这步验证前请先关闭TUN模式。

五、初始化服务器

先通过ssh登陆服务器:
plaintext
举例:
ssh root@203.0.113.10 -p 43781
第一次登录时,终端可能会提示是否信任服务器指纹:
plaintext
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入:yes。
然后输入 root 密码。
登录后,先更新软件包列表:
plaintext
apt update
apt upgrade -y
如果中途卡在蓝色或紫色配置界面,不要直接关窗口。Ubuntu 在升级某些包时会询问是否保留本地配置文件。
我这次遇到了两个配置文件提示。
第一个是:
图像
第二个是:
plaintext
/etc/cloud/cloud.cfg
终端提示类似:
plaintext
cloud.cfg (Y/I/N/O/D/Z) [default=N] ?
这里直接按回车,使用默认:N
升级完成前,Ubuntu 可能会弹出一个界面:
plaintext
Daemons using outdated libraries
Which services should be restarted?
它是在问:有些服务仍然加载着旧版本库,要不要重启这些服务。
一般保持默认勾选,然后选择:OK
系统更新完成后,安装一些后面会用到的工具:
plaintext
apt install -y curl wget sudo vim ufw lsof unzip socat jq qrencode dnsutils
这些工具分别会用于:
plaintext
curl / wget:下载脚本、测试访问
ufw:配置防火墙
lsof / ss:检查端口占用
unzip:解压文件
socat:申请证书时可能用到
jq:处理 JSON
qrencode:生成二维码
dnsutils:提供 dig 命令
最后一步检查域名是否指向服务器:
plaintext
curl -4 ifconfig.me
dig +short A [你的域名,如node.example.com]
这两个结果应该一致。

六、配置防火墙并做安装前备份

VPS 初始化完成后,不要急着安装 v2ray-agent。先做两件事:
第一,配置防火墙,确认 SSH、80、443 端口可用。
第二,备份当前关键配置,方便后面出问题时回滚。
这一步看起来不复杂,但很重要。尤其是防火墙,如果顺序错了,可能会把自己锁在服务器外面。

6.1 先确认当前登陆端口

配置防火墙前,先确认你现在是通过哪个端口登录 VPS 的。
如果你的登录命令是:
ssh root@203.0.113.10 -p 43781
那你的 SSH 端口就是:
43781
这一步不要凭感觉猜。很多 VPS 服务商不会使用默认的 22 端口,而是给你一个自定义 SSH 端口。我这次就是服务商给了一个自定义端口。
如果后面直接启用防火墙,但忘了放行这个端口,就可能出现:
当前 SSH 会话还没断但新窗口再也连不上服务器。
所以防火墙第一条规则必须先放行 SSH 端口。

6.2 放行必要端口

本文后面需要用到三个端口:
plaintext
SSH 端口:用于远程登录 VPS
80/tcp:用于 HTTP 证书校验
443/tcp:用于最终代理服务
在 VPS 上执行:
plaintext
ufw allow 43781/tcp
ufw allow 80/tcp
ufw allow 443/tcp
如果你的 SSH 端口不是 43781,请替换成自己的端口。
执行后,可以先查看规则:
ufw status verbose
如果此时提示:
Status: inactive
也没关系,说明规则已经添加,但防火墙还没启用。

6.3 启用 UFW 防火墙

确认 SSH 端口已经放行后,再启用 UFW:
ufw enable
系统会提示:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
输入:
y
然后再次检查:
ufw status verbose
正常应该能看到类似:
plaintext
Status: active

To                         Action      From
--                         ------      ----
43781/tcp                  ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
43781/tcp (v6)             ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
如果你不需要 IPv6,也可以暂时不用管 v6 规则。这里的关键是 IPv4 的 SSH、80、443 都要是 ALLOW。

6.4 新开一个终端测试 SSH

启用防火墙后,不要立刻关闭当前 SSH 窗口。
正确做法是:保持当前窗口不动,在 Mac 上新开一个终端窗口,再登录一次 VPS。
执行:
ssh root@203.0.113.10 -p 43781
如果新窗口可以正常登录,说明防火墙没有把 SSH 挡掉。
确认没问题后,再继续后面的步骤。
如果新窗口无法登录,但旧窗口还在,可以立刻检查:
ufw status verbose
确认是否忘了放行 SSH 端口。如果确实配错,可以临时关闭 UFW:
ufw disable
然后重新配置。

6.5 做安装前备份

防火墙确认没问题后,开始做备份。
这一步的目标是保存安装 v2ray-agent 之前的关键状态。后面脚本会改 Nginx、证书目录、Xray 配置等内容。如果安装失败,至少知道原来是什么样。
执行:
mkdir -p /root/backup-before-v2ray-agent
备份 Nginx 配置:
cp -a /etc/nginx /root/backup-before-v2ray-agent/nginx 2&gt;/dev/null || true
备份 Let&#39;s Encrypt 证书目录:
cp -a /etc/letsencrypt /root/backup-before-v2ray-agent/letsencrypt 2&gt;/dev/null || true
备份 SSH 配置:
图像
记录当前端口占用:
ss -tulpn &gt; /root/backup-before-v2ray-agent/ports-before.txt
记录当前防火墙状态:
ufw status verbose &gt; /root/backup-before-v2ray-agent/ufw-status.txt
最后查看备份结果:
ls -lah /root/backup-before-v2ray-agent
我当时的输出类似:
plaintext
total 28K
drwxr-xr-x 4 root root 4.0K May  2 08:02 .
drwx------ 6 root root 4.0K May  2 08:02 ..
drwxr-xr-x 9 root root 4.0K May  2 07:56 letsencrypt
drwxr-xr-x 8 root root 4.0K May  2 07:56 nginx
-rw-r--r-- 1 root root 1.1K May  2 08:02 ports-before.txt
-rw-r--r-- 1 root root 3.1K May  2 06:58 sshd_config
-rw-r--r-- 1 root root  600 May  2 08:02 ufw-status.txt

6.6 检查当前端口占用

安装 v2ray-agent 前,最好看一下 80 和 443 是否已经被占用。
执行:
ss -tulpn | grep -E &#39;(:80|:443)&#39;
如果没有输出,说明当前没有进程监听 80 或 443。
如果已经安装过 Nginx,可能会看到 Nginx 监听 80 或 443。后面 v2ray-agent 脚本通常会处理 Nginx 配置,但你至少要知道安装前状态是什么。

七、安装 v2ray-agent,并选择 Xray + VLESS Vision

服务器准备好以后,就可以正式安装服务端程序。
我这次使用的是:
plaintext
服务端脚本:v2ray-agent
核心:Xray-core
协议:VLESS + TCP + TLS + Vision
端口:443域名:node.example.com
证书:Let's Encrypt

7.1 下载并运行安装脚本

在 VPS 上执行:
wget -P /root -N --no-check-certificate &quot;; &amp;&amp; chmod 700 /root/install.sh &amp;&amp; /root/install.sh
这条命令做了三件事:
plaintext
下载 install.sh 到 /root
给 install.sh 添加执行权限
运行安装脚本
我当时运行后,脚本显示的信息类似:
plaintext
作者:mack-a
当前版本:v3.5.14
Github:https://github.com/mack-a/v2ray-agent
描述:八合一共存脚本
安装脚本运行后,会出现主菜单:
plaintext
1.安装
2.任意组合安装
3.一键无域名
4.Hysteria 2 管理
5.REALITY 管理
6.Tuic 管理
7.用户管理
8.伪装站管理
9.证书管理
10.CDN 节点管理
...
这里选择:
任意组合安装
原因是我们要明确选择:
plaintext
Xray-core
VLESS + TLS_Vision + TCP
不要让脚本帮我们走无域名或其他默认路线。

7.2 选择核心:Xray-core

进入任意组合安装后,脚本会提示选择核心:
plaintext
功能 1/1 : 选择核心安装

1.Xray-core
2.sing-box
我这里选择:
Xray-core
原因是我走的是经典的 Xray + VLESS Vision 方案,兼容性比较成熟,Clash Verge、Shadowrocket 这类客户端也都能支持。
输入:
1
然后回车。

7.3 选择协议:VLESS + TLS Vision + TCP

接下来脚本会显示协议列表。我当时看到的选项类似:
plaintext
0.VLESS+TLS_Vision+TCP[推荐]
1.VLESS+TLS+WS[仅CDN推荐]
3.VMess+TLS+WS[仅CDN推荐]
4.Trojan+TLS[不推荐]
7.VLESS+Reality+uTLS+Vision[推荐]
12.VLESS+Reality+X_HTTP+TLS[CDN可用]
这里选择:
VLESS+TLS_Vision+TCP[推荐]
输入:
0
然后回车。

7.4 安装基础组件

选择协议后,脚本会开始安装依赖。
我当时看到的过程类似:
plaintext
进度 1/12 : 安装工具
---> 检查、安装更新
---> 安装 unzip
---> 安装 socat
---> 安装 crontabs
---> 安装 jq
---> 安装 ping6
---> 安装 qrencode
---> 安装 nginx
---> 安装 acme.sh
这里会安装几个后面需要用到的组件:
plaintext
nginx:伪装站点和本地转发相关
acme.sh:申请 TLS 证书
jq:处理配置
qrencode:生成二维码
socat:证书申请时可能用到
新机器上这一步可能会慢一些。如果长时间没有输出,可以先等一会儿,不要频繁中断。

7.5 输入节点域名

脚本接着会进入 Nginx 和证书初始化流程,提示输入域名:
请输入要配置的域名 例: ---&gt;
输入你的域名,如:
注意这里要输入完整子域名,不是根域名。

7.6 输入端口:使用默认 443

输入域名后,脚本会提示输入端口:
请输入端口[默认: 443],可自定义端口[回车使用默认]
这里直接回车,使用默认:
443
我当时脚本显示:
---&gt; 端口: 443
前面防火墙已经放行了:
443/tcp
所以这里可以直接使用。

7.7 等待域名 IP 校验

端口确认后,脚本会检查域名解析是否正确。
正常会看到类似:
plaintext
---> 域名IP校验通过
---> 删除Nginx默认配置
---> Nginx启动成功
---> Nginx关闭成功
---> 检测到443端口已开放
---> 检查域名ip中
---> 检查当前域名IP正确
如果这里失败,不要继续硬装。优先回到前面的 DNS 检查:
dig .1.1.1 +short A
dig .8.8.8 +short A
确保返回 VPS IP。
还要检查 Cloudflare 里这条记录是不是灰云:
Proxy status: DNS only
如果开成橙云,脚本检测和后续连接都可能异常。

7.8 申请 TLS 证书

接下来进入证书申请阶段:
进度 3/12 : 申请TLS证书
脚本会问:
是否使用DNS API申请证书[支持NAT]?[y/n]
我这里选:
n
原因是这台 VPS 有公网 IPv4,80 和 443 端口也已经放行,不需要走 DNS API 申请证书。
然后脚本会让你选择证书机构:
plaintext
1.letsencrypt[默认]
2.zerossl
3.buypass[不支持DNS申请]
这里直接回车,使用默认:
letsencrypt
也就是:
letsencrypt
Let&#39;s Encrypt 是免费证书,个人使用完全够用。证书本身不是导致节点异常的关键因素,真正要保证的是:
域名解析正确
证书申请成功
续期任务正常
服务端配置正确

7.9 UUID 和用户名

后面脚本会提示输入 UUID:
请输入自定义UUID[需合法],[回车]随机UUID
这里建议直接回车,让脚本随机生成。
接着提示输入用户名:
请输入自定义用户名[需合法],[回车]随机用户名
这里也可以直接回车随机生成。你也可以输入一个方便自己识别的名字,但不要用真实姓名、手机号、邮箱这类个人信息。

7.10 安装完成后的账号输出

安装完成后,脚本会进入最后一步:
进度 12/12 : 账号
我当时输出的是:
plaintext
VLESS TCP TLS_Vision [推荐]
通用格式(VLESS+TCP+TLS_Vision)
vless://...
格式化明文(VLESS+TCP+TLS_Vision)
协议类型: VLESS
地址: node.example.com
端口: 443
用户ID: ...
安全: tls
client-fingerprint: chrome
传输方式: tcp
flow: xtls-rprx-vision
账户名: ...
二维码 VLESS
这说明服务端已经生成了 VLESS Vision 节点。

7.11 检查 Xray 和 Nginx 状态

安装完成后,先不要急着导入客户端。先在 VPS 上检查服务状态:
plaintext
systemctl status xray --no-pager
systemctl status nginx --no-pager
ss -tulpn | grep -E '(:443|:80|xray|nginx)'
我当时检查到的关键结果是:
plaintext
xray.service active (running)
nginx.service active (running)
xray 监听公网 *:443
nginx 监听 127.0.0.1:31300 和 127.0.0.1:31302
这说明:
公网 443 入口由 Xray 接管,Nginx 在本地端口提供伪装站或辅助服务,服务已经正常启动。
如果 xray.service 不是 active (running),需要先看日志,不要直接继续导入客户端。
可以执行:
journalctl -u xray --no-pager -n 80

八、生成订阅链接,并准备给 Clash Verge 使用

上一节安装完成后,脚本已经输出了单条 vless:// 节点链接。这个链接可以直接导入 Shadowrocket 这类客户端。
但如果是在 Mac 上使用 Clash Verge,更推荐生成订阅链接。
订阅链接的好处是:
plaintext
客户端只需要添加一次订阅
后续节点信息变更后刷新订阅即可
多个用户或多个节点更方便管理
Clash Verge 可以直接使用 ClashMeta 格式
我这次实际生成订阅时用的是 v2ray-agent 的用户管理功能:
plaintext
vasma
→ 7. 用户管理
→ 2. 查看订阅
→ 选择 ClashMeta 格式

8.1 重新打开 v2ray-agent 菜单

安装脚本完成后,会自动创建快捷命令:
vasma
在 VPS 上执行:
vasma
会重新打开 v2ray-agent 主菜单。
菜单里可以看到:
plaintext
1.安装
2.任意组合安装
3.一键无域名
4.Hysteria 2 管理
5.REALITY 管理
6.Tuic 管理
7.用户管理
8.伪装站管理
9.证书管理
10.CDN节点管理
...
这里选择:
用户管理

8.2 进入查看订阅

进入用户管理后,会看到类似菜单:
plaintext
功能 1/1 : 账号管理

1.查看账号
2.查看订阅
3.管理其他订阅
4.添加用户
5.删除用户
这里选择:
查看订阅
这一步会重新生成本地账号的订阅内容。
脚本里也会提示类似:
查看订阅会重新生成本地账号的订阅,需要手动输入 md5 加密的 salt 值,如果不了解使用随机即可。不影响已添加的远程订阅的内容。
如果你只是个人使用,按默认随机即可。

8.3 输入订阅端口

脚本会提示:
plaintext
开始配置订阅,请输入订阅的端口

请输入自定义端口[需合法],端口不可重复,[回车]随机端口
这里有两种选择:
直接回车:脚本随机生成端口
手动输入端口:方便自己记忆,但不能和已有端口冲突
我建议新手直接回车,让脚本随机生成。
如果你选择自定义端口,要额外确认:
端口没有被占用
防火墙已放行该端口
服务商安全组也放行该端口
为了减少变量,第一次配置用随机端口更省事。

8.4 伪装站点提示

脚本可能会提示:
开始添加伪装站点
检测到安装伪装站点,是否需要重新安装[y/n]
如果前面安装 VLESS Vision 时已经配置过伪装站点,这里通常选:
n
也就是不重新安装。
重新安装不是不行,但新手教程里没必要增加变量。我们当前目标只是生成订阅链接,不是重新配置伪装站点。

8.5 salt 值怎么选

后面脚本会提示输入 salt:
请输入salt值, [回车]使用随机
这里直接回车即可。
salt 的作用可以简单理解成:
用于生成订阅相关内容的一段随机值
个人使用没有必要手动指定。随机值反而更安全,也避免复用固定字符串。

8.6 选择 ClashMeta 格式订阅

订阅生成后,脚本会显示多种格式。
你这次实际看到有:
默认
ClashMeta
sing-box
Mac 上使用 Clash Verge,建议选择:
ClashMeta
原因是 Clash Verge 对 ClashMeta 配置支持更好,VLESS Vision、fingerprint、flow 等字段也更适合走 ClashMeta 格式。
如果你用的是其他客户端,可以根据客户端支持情况选择:
Clash Verge:ClashMeta
sing-box:sing-box
Shadowrocket:通常可以直接导入 vless:// 单链接
这里不要随便复制“默认”格式给 Clash Verge。能用 ClashMeta 就优先用 ClashMeta。

8.7 保存订阅链接

脚本输出订阅链接后,把 ClashMeta 订阅链接复制出来,先保存在本地安全位置。
注意:不要保存到公开仓库,不要发到文章里,不要截图完整展示。
原因很简单:别人拿到订阅链接,就可能直接使用你的节点,消耗你的 VPS 流量,甚至让节点被滥用。

九、在 Clash Verge 中导入订阅并测试

服务端已经安装完成,订阅链接也已经生成。接下来要在 Mac 上配置客户端。

9.1 添加订阅

打开 Clash Verge,进入配置页面。不同版本界面文字可能略有差异,一般叫:
Profiles
或者:
配置
点击新增订阅,填入上一步生成的 ClashMeta 订阅链接。
一般需要填写:
名称:自定义,比如 My VPS
类型:Remote / 远程订阅
URL:ClashMeta 订阅链接
不要把完整订阅链接写进名称里。
填好后保存,然后点击更新订阅。
如果订阅正常,Clash Verge 会拉取到节点配置,并在节点列表里显示刚才生成的 VLESS Vision 节点。

9.2 选择节点

订阅更新成功后,进入节点选择页面。
通常会看到一个或多个策略组,比如:
ProxyAutoGlobal节点名称
选择刚才生成的节点。

9.3 打开系统代理或 TUN

Clash Verge 通常有两个常见开关:
System Proxy
TUN Mode
简单理解:
System Proxy:让大部分遵循系统代理设置的应用走 Clash
TUN Mode:更底层,接管更多流量,包括部分不走系统代理的应用
第一次测试时,可以先打开:
System Proxy
然后用浏览器访问测试网站。
如果有些应用不走系统代理,再考虑打开 TUN。

9.4 测试出口 IP

打开浏览器访问:
如果代理生效,页面显示的 IP 应该是 VPS 的出口 IP,而不是你的本地宽带 IP 或手机运营商 IP。
也可以在终端执行:
如果 Clash Verge 的系统代理对终端不生效,可以用浏览器页面结果作为准。

9.5 测试外部网站和视频

出口 IP 正常后,可以继续测试几个网站:
Google
YouTube
GitHub
Telegram
你实际需要访问的网站
测试时不要只看首页能不能打开,还要看:
网页是否能正常加载
网页是否能正常加载
视频是否能播放
播放几分钟是否稳定
是否频繁断流
速度是否符合预期
如果 YouTube 能打开但视频很卡,不一定是配置错,可能是:
VPS 线路一般
晚高峰拥堵
月流量限速
客户端规则没走对
如果某一个网站报错,但其他网站正常,先不要急着重装服务端。可以按下面思路判断:
只有一个网站异常:优先看规则、DNS、目标站限制
所有网站都异常:优先看节点连接、订阅、服务端状态
手机能访问但 Mac 不能:优先看 Clash Verge / TUN / Fake-IP
VPS 上 curl 能访问但客户端不能:优先看客户端配置

写在最后

那么以上的步骤都完成后,恭喜你,就拥有了自己的梯子啦。
千万要注意,不要公开给他人使用,更不要涉及到金钱交易,可能会很危险~
另外再次重申,本教程只是用于上手,很多大佬会进行更多额外配置或使用不同的协议,这个就自行探索吧!
本文由 自动从 Markdown 转换排版。
  • 👀一只小测试 & Building aitest-kit AI干货分享 | 专注AI+测试 | 自媒体练习生