用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.com2.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 437812.5 客户端软件
服务端搭好以后,需要在电脑或手机上导入节点。
我这次主要用了两个客户端:
plaintext
Mac:Clash Verge
iPhone:ShadowrocketClash 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 only4.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 only4.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>/dev/null || true
备份 Let's Encrypt 证书目录:
cp -a /etc/letsencrypt /root/backup-before-v2ray-agent/letsencrypt 2>/dev/null || true
备份 SSH 配置:
记录当前端口占用:
ss -tulpn > /root/backup-before-v2ray-agent/ports-before.txt
记录当前防火墙状态:
ufw status verbose > /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.txt6.6 检查当前端口占用
安装 v2ray-agent 前,最好看一下 80 和 443 是否已经被占用。
执行:
ss -tulpn | grep -E '(:80|:443)'
如果没有输出,说明当前没有进程监听 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 Encrypt7.1 下载并运行安装脚本
在 VPS 上执行:
wget -P /root -N --no-check-certificate "; && chmod 700 /root/install.sh && /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 和证书初始化流程,提示输入域名:
输入你的域名,如:
注意这里要输入完整子域名,不是根域名。
7.6 输入端口:使用默认 443
输入域名后,脚本会提示输入端口:
请输入端口[默认: 443],可自定义端口[回车使用默认]
这里直接回车,使用默认:
443
我当时脚本显示:
---> 端口: 443
前面防火墙已经放行了:
443/tcp
所以这里可以直接使用。
7.7 等待域名 IP 校验
端口确认后,脚本会检查域名解析是否正确。
正常会看到类似:
plaintext
---> 域名IP校验通过
---> 删除Nginx默认配置
---> Nginx启动成功
---> Nginx关闭成功
---> 检测到443端口已开放
---> 检查域名ip中
---> 检查当前域名IP正确如果这里失败,不要继续硬装。优先回到前面的 DNS 检查:
确保返回 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'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。
也可以在终端执行:
curl
如果 Clash Verge 的系统代理对终端不生效,可以用浏览器页面结果作为准。
9.5 测试外部网站和视频
出口 IP 正常后,可以继续测试几个网站:
Google
YouTube
GitHub
Telegram
你实际需要访问的网站测试时不要只看首页能不能打开,还要看:
网页是否能正常加载
网页是否能正常加载
视频是否能播放
播放几分钟是否稳定
是否频繁断流
速度是否符合预期如果 YouTube 能打开但视频很卡,不一定是配置错,可能是:
VPS 线路一般
晚高峰拥堵
月流量限速
客户端规则没走对如果某一个网站报错,但其他网站正常,先不要急着重装服务端。可以按下面思路判断:
只有一个网站异常:优先看规则、DNS、目标站限制
所有网站都异常:优先看节点连接、订阅、服务端状态
手机能访问但 Mac 不能:优先看 Clash Verge / TUN / Fake-IP
VPS 上 curl 能访问但客户端不能:优先看客户端配置写在最后
那么以上的步骤都完成后,恭喜你,就拥有了自己的梯子啦。
千万要注意,不要公开给他人使用,更不要涉及到金钱交易,可能会很危险~
另外再次重申,本教程只是用于上手,很多大佬会进行更多额外配置或使用不同的协议,这个就自行探索吧!