海外代理不用自己搭,把这篇文章丢给 AI 就够了

2026-10-03 1,958 0

适合想给自己和几个朋友搭一个可管理的海外代理节点的人:每人独立账号、能设到期时间、能限流量、能单独禁用。买服务器、装软件、配面板、发订阅链接这些活,都可以交给 AI 做,你自己不用敲一条命令。

合规提醒:只用于个人设备的安全连接、远程访问和网络实验;遵守所在地法律法规、云服务商条款和目标网站规则。

为什么这件事可以完全交给 AI

过去搭这类节点,命令倒不难敲,麻烦在云厂商控制台:选地区、选套餐、选系统、确认开机,再手动把 SSH 公钥粘贴上去,前后要点几十下。控制台这部分以前没法交给 AI,它碰不到你的浏览器和支付信息。

现在有两个变化:

  • Vultr 提供完整的 REST API:建服务器、建的时候顺带把你的 SSH 公钥装进去、开防火墙端口、销毁服务器,全部是一个 API 调用。你只要有账号余额和一个 API Key,AI 就能直接调用,不需要碰控制台。
  • 代理核心 sing-box 和管理面板 3x-ui 都是开源项目,官方都提供一行命令的安装脚本。AI 可以直接读它们的公开文档和源码,不需要你写详细步骤它才会做。

人工只需要做真正替代不了的那部分:注册账号、绑定一个支付方式、生成一个 API Key。具体怎么做见下一节。

直接把这段话丢给 AI

把下面这段话发给 ChatGPT、Claude Code、Codex 这类能执行命令的 AI 助手(需要它能连你的终端 / SSH,纯网页聊天版做不到):

请阅读这篇教程 https://blog.xhyapi.com/vultr-api-ai-proxy-setup/ ,按教程帮我搭建同款多用户代理节点。
我会给你一个 Vultr API Key。
请你:
1. 自己生成一把专用 SSH key,用 Vultr API 创建服务器,创建时把公钥注入进去;
2. 部署 sing-box + Hysteria2 和 3x-ui 面板;
3. 按教程做面板安全加固;
4. 帮我建好我自己和另外几个人的账号,设置合理的流量和到期时间;
5. 把每个人的订阅链接和二维码给我。

规则:
- 涉及付款、创建服务器、销毁服务器之前,先让我确认;
- 不要在聊天记录里明文回显密码、私钥、API Key 或节点密钥;
- 面板管理端口不要直接暴露公网。

本文后面把服务器怎么建、软件怎么装、面板怎么加固都写清楚了,AI 读完可以照着执行;你也可以自己对照检查它有没有偷工减料。

花多少钱

项目 推荐选择 费用
云厂商 Vultr -
地区 Tokyo, Japan -
机器 Shared CPU / 1 vCPU / 1GB RAM / 32GB NVMe 约 $6/月
流量 1TB/月 套餐内
面板 + 多用户管理 3x-ui(开源) $0
首次充值 实测需要先充 $10 余额未用完会留在账户里

按小时计费、月封顶,装面板不另外收钱,它只是跑在同一台机器上的软件。给几个人用完全够,10-20 人以上再考虑升配置或加机器。

动手前的准备:Vultr 账号和 API Key

  1. 注册 Vultr 账号:https://www.vultr.com/,绑定一个支付方式(信用卡 / PayPal / 数字货币任选一种,Vultr 强制要求,这是唯一没法交给 AI 的一步)。
  2. 打开 Account -> API,先启用 API Access,再点 Generate API Key 生成一个新 Key。建议单独为这次生成一个,不要复用你其他项目在用的 Key,方便用完直接吊销;如果账号开了 IP 访问控制(Access Control List),记得把 AI 所在设备的公网 IP 加进白名单,或者先关掉限制。

API Key 交给 AI 之后,Vultr 控制台就不用再开了。

用 Vultr API 建服务器

先在本机生成一把专用 SSH key(已有可复用的就跳过):

ssh-keygen -t ed25519 -f ~/.ssh/proxy_ed25519 -N "" -C "proxy-node"

再把这把 SSH 公钥导入 Vultr,拿到一个 sshkey_id:

VULTR_API_KEY="你的 API Key"

curl -sS "https://api.vultr.com/v2/ssh-keys" \
  -H "Authorization: Bearer $VULTR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "proxy-node-key",
    "ssh_key": "'"$(cat ~/.ssh/proxy_ed25519.pub)"'"
  }'

拿到返回的 id 后,创建服务器时一起传进去,服务器一开机就已经能用这把 key 登录,不需要再手动粘贴公钥:

curl -sS "https://api.vultr.com/v2/instances" \
  -H "Authorization: Bearer $VULTR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "region": "nrt",
    "plan": "vhf-1c-1gb",
    "os_id": 2284,
    "label": "proxy-tokyo-01",
    "hostname": "proxy-tokyo-01",
    "sshkey_id": ["刚才拿到的 sshkey id"],
    "backups": "disabled"
  }'

字段说明:

  • region:nrt 是东京;也可以换 lax(洛杉矶)、sgp(新加坡)等,实际速度取决于本地运营商线路。
  • plan:vhf-1c-1gb 对应 1 vCPU / 1GB RAM / 32GB NVMe 的最低档 Shared CPU 套餐(约 $6/月),套餐名和价格可能随时间调整,创建前用 GET /v2/plans 核对当前实际值。
  • os_id:Ubuntu 24.04 LTS x64 对应的系统 ID,同样建议先用 GET /v2/os 核对,云厂商偶尔会调整 ID。

用 GET /v2/instances/{id} 轮询,直到 status 变成 active 且拿到 main_ip,就可以 SSH 上去了:

ssh -i ~/.ssh/proxy_ed25519 root@刚拿到的公网IP

部署 sing-box + Hysteria2

节点协议用 Hysteria2,Clash Verge / Mihomo 这些主流客户端都支持,服务端由 sing-box 提供。官方一键安装:

curl -fsSL https://sing-box.app/install.sh | sh
sing-box version

生成认证信息和自签证书:

install -d -m 700 /etc/sing-box
install -d -m 700 /etc/sing-box/certs

HY2_PASSWORD=$(openssl rand -base64 24 | tr -d '\n')
HY2_OBFS_PASSWORD=$(openssl rand -base64 24 | tr -d '\n')

cat >/etc/sing-box/hy2.env <<EOF
HY2_PASSWORD=$HY2_PASSWORD
HY2_OBFS_PASSWORD=$HY2_OBFS_PASSWORD
EOF
chmod 600 /etc/sing-box/hy2.env

openssl req -x509 -newkey rsa:2048 -nodes \
  -keyout /etc/sing-box/certs/hy2.key \
  -out /etc/sing-box/certs/hy2.crt \
  -days 3650 \
  -subj "/CN=proxy-node" \
  -addext "subjectAltName=DNS:proxy-node,IP:你的服务器IP"

chmod 600 /etc/sing-box/certs/hy2.key
chmod 644 /etc/sing-box/certs/hy2.crt

写入 /etc/sing-box/config.json 并启动:

. /etc/sing-box/hy2.env

cat >/etc/sing-box/config.json <<EOF
{
  "log": { "level": "info", "timestamp": true },
  "inbounds": [
    {
      "type": "hysteria2",
      "tag": "hy2-in",
      "listen": "::",
      "listen_port": 443,
      "users": [{ "name": "owner", "password": "$HY2_PASSWORD" }],
      "obfs": { "type": "salamander", "password": "$HY2_OBFS_PASSWORD" },
      "tls": {
        "enabled": true,
        "alpn": ["h3"],
        "certificate_path": "/etc/sing-box/certs/hy2.crt",
        "key_path": "/etc/sing-box/certs/hy2.key"
      }
    }
  ],
  "outbounds": [{ "type": "direct", "tag": "direct" }]
}
EOF

chmod 600 /etc/sing-box/config.json

sing-box check -c /etc/sing-box/config.json
ufw allow OpenSSH
ufw allow 443/udp
ufw --force enable
systemctl enable sing-box
systemctl restart sing-box

这台节点之后会被 3x-ui 面板接管多用户管理,这里先跑通一遍是为了确认服务端环境没问题;如果你只要自己一个人用、不需要面板,跑到这一步其实已经够用。

部署 3x-ui 面板,管起多个用户

面板同样是开源一键脚本,会自动识别系统架构,装完随机生成管理账号密码:

bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

安装过程会提示你设置管理端口和访问路径,务必:

  • 不用默认端口和默认路径
  • 不用弱密码,或者装完立刻在面板里改成强随机密码
  • 记下面板端口、路径、账号密码,只保存在本机,不要贴进聊天记录

面板装完后,在里面新建一个 Hysteria2 入站(协议选 Hysteria2,端口可以用一个新端口,比如 8443/udp,避免和前面手工跑的 443/udp 冲突),然后给每个人建一个独立客户端账号,分别设置:

  • 流量额度(自己可以给 200GB/月,其他人先给 50-100GB/月)
  • 到期时间

之后哪个人不用了,在面板里单独禁用他的账号就行,不影响其他人。

面板怎么访问:SSH 隧道,或域名 + Caddy

方案 A:不需要域名,走 SSH 隧道

面板管理端口不对公网开放,只允许通过 SSH 隧道访问:

ssh -i ~/.ssh/proxy_ed25519 -N -L 20000:127.0.0.1:面板实际端口 root@服务器IP

然后浏览器打开 http://127.0.0.1:20000/你的面板路径/ 即可。适合自己和几个熟人用,谁都不需要公网直接暴露面板。

方案 B:有域名,用 Caddy 反代,浏览器直接开

如果你有一个域名并且已经把子域名解析到服务器 IP,装 Caddy 做反向代理,证书全自动签发续期:

apt-get install -y caddy

cat >/etc/caddy/Caddyfile <<'EOF'
你的子域名.你的域名.com {
    reverse_proxy 127.0.0.1:面板实际端口
}
EOF

systemctl restart caddy
ufw allow 80/tcp
ufw allow 443/tcp

注意 Caddy 默认会尝试用 HTTP/3,而 HTTP/3 会占用 443/udp,和 Hysteria2 节点冲突;如果两者在同一台机器,在 Caddy 配置里关掉 HTTP/3,只保留 h1/h2。

把默认订阅路径换成随机路径

3x-ui 默认的订阅路径是 /sub/ 和 /clash/,猜得到,容易被扫描。在面板设置里把它们关掉,换成一段随机字符串路径,例如 /c-<随机字符串>/,只把这个随机路径生成的订阅链接发给真正的用户。

同时建议在面板的 Clash 订阅规则里加一段分流,这样用户导入订阅后不用自己配规则。下面这份是实测跑过的默认规则:局域网、B 站、Apple、Microsoft、国内网站直连;AI 服务(OpenAI、Anthropic、Google Gemini)、Google、YouTube、Telegram、GitHub、X 走代理;其他没命中的兜底走代理:

- GEOSITE,private,DIRECT
- GEOIP,private,DIRECT,no-resolve
- DOMAIN-SUFFIX,bilibili.com,DIRECT
- DOMAIN-SUFFIX,biliapi.com,DIRECT
- DOMAIN-SUFFIX,biliapi.net,DIRECT
- DOMAIN-SUFFIX,bilivideo.com,DIRECT
- DOMAIN-SUFFIX,hdslb.com,DIRECT
- DOMAIN-SUFFIX,acgvideo.com,DIRECT
- DOMAIN-KEYWORD,bilibili,DIRECT
- GEOSITE,apple,DIRECT
- GEOSITE,microsoft,DIRECT
- DOMAIN-SUFFIX,openai.com,PROXY
- DOMAIN-SUFFIX,chatgpt.com,PROXY
- DOMAIN-SUFFIX,oaistatic.com,PROXY
- DOMAIN-SUFFIX,oaiusercontent.com,PROXY
- DOMAIN-SUFFIX,anthropic.com,PROXY
- DOMAIN-SUFFIX,claude.ai,PROXY
- DOMAIN-SUFFIX,gemini.google.com,PROXY
- DOMAIN-SUFFIX,ai.google.dev,PROXY
- DOMAIN-SUFFIX,aistudio.google.com,PROXY
- DOMAIN-SUFFIX,generativelanguage.googleapis.com,PROXY
- DOMAIN-SUFFIX,google.com,PROXY
- DOMAIN-SUFFIX,gstatic.com,PROXY
- DOMAIN-SUFFIX,googleapis.com,PROXY
- DOMAIN-SUFFIX,googleusercontent.com,PROXY
- DOMAIN-SUFFIX,youtube.com,PROXY
- DOMAIN-SUFFIX,ytimg.com,PROXY
- DOMAIN-SUFFIX,googlevideo.com,PROXY
- GEOSITE,telegram,PROXY
- GEOIP,telegram,PROXY,no-resolve
- DOMAIN-SUFFIX,github.com,PROXY
- DOMAIN-SUFFIX,github.io,PROXY
- DOMAIN-SUFFIX,githubusercontent.com,PROXY
- DOMAIN-SUFFIX,githubassets.com,PROXY
- DOMAIN-SUFFIX,x.com,PROXY
- DOMAIN-SUFFIX,twitter.com,PROXY
- GEOSITE,cn,DIRECT
- GEOIP,CN,DIRECT,no-resolve
- MATCH,PROXY

可以按自己常用的服务继续加规则,原则是:明确要走代理的域名列出来,国内和局域网默认直连,剩下的兜底走代理。

验证

服务器侧:

systemctl is-active sing-box
systemctl is-active x-ui
ss -tulpn
ufw status

客户端侧:把面板生成的订阅链接导入 Clash Verge,选中对应节点,测出口 IP:

curl -sS -x http://127.0.0.1:7897 https://api.ipify.org
curl -sS -x http://127.0.0.1:7897 https://ipinfo.io/json

返回的 IP 和归属地应该是你服务器所在地区,不是本机真实 IP。

不用了记得销毁

注意关机不等于停止计费,只有销毁实例才不再扣钱:

curl -sS -X DELETE "https://api.vultr.com/v2/instances/实例ID" \
  -H "Authorization: Bearer $VULTR_API_KEY"

销毁不可恢复,动手前确认机器上没有还要留的数据。

安全提醒

  • API Key 等同于你 Vultr 账号的操作权限(建机、销毁机器都会花钱或删数据),只在本机环境变量里用,不要贴进聊天记录、不要提交进代码仓库。用完这次部署后,建议回控制台吊销或重新生成。
  • 面板管理端口、订阅路径、节点密码都不要公开发布,只私下发给真正要用的人。
  • 涉及付款、创建服务器、销毁服务器的操作,无论是自己操作还是让 AI 代劳,都建议操作前再确认一遍。

常见问题

Clash Verge 导入订阅报错

确认订阅链接返回的是完整 Clash YAML(包含 proxies、proxy-groups、rules),而不是 Base64 节点链接格式;两者路径不同,导入 Clash Verge 必须用 YAML 格式的那个。

面板能登录但节点连不上

systemctl status sing-box --no-pager
ss -ulpn | grep ':443'
ufw status
journalctl -u sing-box -f

确认端口在监听、防火墙放行、面板里客户端没被禁用或流量已超额。

Vultr API 建机一直报权限错误

先确认 Account -> API 里 API Access 是否已启用,账号是否设置了 IP 访问白名单,以及支付方式是否已经绑定并通过验证——三者任一没做,创建实例都会被拒绝。

UDP 443 被当前网络限制

Hysteria2 依赖 UDP。如果所在网络限制 UDP,可以换手机热点测试,或者在面板里额外开一个 VLESS Reality(TCP)入站作为备用。

资料来源

相关文章

发布评论