CLIProxyAPI 部署教程:VPS、域名、SSL 与远程调用完整配置

视频教程

视频介绍

这期内容围绕一个完整的 CLIProxyAPI 部署流程展开,目标是在云服务器上搭建一个可远程调用的接口服务,并把域名、反向代理、HTTPS 证书和基础验证流程一次走通。

如果你想把一套服务部署在 VPS 上,并通过域名稳定访问,这类流程基本都会涉及:

  • 服务器基础环境准备
  • 域名解析与 DNS 配置
  • Nginx 反向代理
  • HTTPS / SSL 证书签发与续签
  • 面板或配置文件中的基础参数填写
  • 服务启动后的访问验证与排查

核心内容

1. 服务器准备

先准备一台可用的 VPS,确认系统环境、网络连通性以及基础工具已经就绪。实际操作里,通常会先完成 SSH 登录、更新系统包、检查开放端口,并确认后续部署路径。

2. 域名与解析

当服务需要远程访问时,域名解析是很关键的一步。视频里会结合实际面板与配置页面,演示如何把域名正确指向服务器,并为后续的 HTTPS 配置做准备。

3. Nginx 反向代理

反向代理层负责把域名请求转发给后端服务,同时也方便统一处理证书、端口和外部访问入口。这里重点是:

  • 站点配置文件位置
  • 监听端口与 server_name
  • 反向代理目标地址
  • 配置生效后的重载与检查

4. SSL / HTTPS 证书

在域名可访问后,再继续处理证书申请与自动续签。常见做法是通过 Certbot 一类工具完成签发,然后检查:

  • 证书是否签发成功
  • HTTPS 是否可以正常访问
  • 自动续签是否已经配置
  • 代理层与证书配置是否匹配

5. 后台与服务配置

完成外层访问后,再回到服务面板或配置文件中,补充模型、接口、认证或其他基础参数。这里更适合逐项核对,避免因为配置遗漏导致前端能打开但服务不可用。

6. 联调与排查

最后一步是验证服务是否真正可用,包括页面访问、接口调用、端口状态、日志输出以及重载后的运行情况。实际部署里,很多问题都出在这里,所以排查顺序通常是:

  1. 域名是否解析正确
  2. 端口是否开放
  3. Nginx 配置是否加载成功
  4. 证书是否有效
  5. 后端服务是否已启动
  6. 日志里是否有明显报错

适合什么场景

这类教程更适合下面几种情况:

  • 想把服务部署到云服务器统一管理
  • 想通过域名对外访问本地或云端服务
  • 想把 HTTP 访问补齐为 HTTPS
  • 想整理一套从部署到验证的完整操作流程

实操建议

如果你准备自己复现,建议按这个顺序走:

  1. 先确认 VPS 基础环境没问题
  2. 再处理域名解析
  3. 然后配置 Nginx 反向代理
  4. 再申请并验证 SSL 证书
  5. 最后再填写服务配置并做联调

这样做的好处是每一步都能单独验证,出问题时更容易定位。

实操脚本与配置示例

下面这些就是视频里会实际用到的命令与配置片段,整理后放在文章里,便于你直接对照操作。

1. SSH 登录后先做 IP 检测

如果服务器默认已经放开 22 端口,可以先用你自己的认证方式连接到 VPS。连上后,先确认当前 IP 环境是否满足后续访问要求。

1
2
sudo -i
bash <(curl -Ls https://IP.Check.Place) -f

如果检测结果不符合预期,建议先更换服务器或调整网络环境,再继续部署。

2. 使用安装脚本部署 CLIProxyAPI

项目文档:https://help.router-for.me/cn/

一键安装命令:

1
curl -fsSL https://raw.githubusercontent.com/brokechubb/cliproxyapi-installer/refs/heads/master/cliproxyapi-installer | bash

如果你需要手动指定配置文件路径,也可以这样启动:

1
./cli-proxy-api --config /path/to/your/config.yaml

3. config.yaml 基础配置示例

如果你打算通过远程方式管理服务,需要在配置文件里开启远程管理,并设置管理密钥。下面是一个精简示例:

1
2
3
4
5
6
7
8
9
10
11
host: ""
port: 8317

tls:
enable: false
cert: ""
key: ""

remote-management:
allow-remote: true
secret-key: "123456"

其中要重点确认:

  • host 是否满足你的监听需求
  • port 是否与实际服务端口一致
  • remote-management.allow-remote 是否按需开启
  • secret-key 是否已设置

4. 安装 systemd 服务

部署完成后,可以把 service 文件交给 systemd 管理:

1
2
3
cd ~/cliproxyapi
sudo cp -f cliproxyapi.service /etc/systemd/system/cliproxyapi.service
sudo systemctl daemon-reload

检查服务是否被 systemd 识别:

1
systemctl status cliproxyapi.service --no-pager

5. 启动并设置开机自启

1
2
sudo systemctl enable --now cliproxyapi.service
systemctl status cliproxyapi.service --no-pager

查看日志:

1
sudo journalctl -u cliproxyapi.service -e --no-pager

6. 放行服务端口并检查监听状态

如果服务使用 8317 端口,可以先放行这个端口:

1
sudo iptables -A INPUT -p tcp --dport 8317 -j ACCEPT

查看当前 iptables 规则:

1
sudo iptables -L -n -v

删除指定行号规则:

1
sudo iptables -D INPUT <line-number>

查看端口监听状态:

1
ss -lntp

筛选 8317 端口:

1
ss -lntp | grep 8317

如果还是访问不了,再检查 nft / ufw 规则:

1
sudo nft list ruleset

如果发现旧的 reject 规则挡住了流量,可以按实际 handle 删除后,再补回新的 reject 规则。例如:

1
2
sudo nft delete rule ip filter INPUT handle 9
sudo nft add rule ip filter INPUT reject with icmp type host-prohibited

7. 安装 Nginx

1
2
3
4
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginx
systemctl status nginx

8. 安装 Certbot 与 Cloudflare DNS 插件

1
2
sudo apt update
sudo apt install -y certbot python3-certbot-dns-cloudflare

创建凭据目录并写入 Cloudflare Token:

1
2
sudo mkdir -p /root/.secrets/certbot
sudo nano /root/.secrets/certbot/cloudflare.ini

文件内容示例:

1
dns_cloudflare_api_token = YOUR_TOKEN_HERE

收紧权限:

1
sudo chmod 600 /root/.secrets/certbot/cloudflare.ini

9. 申请证书

假设你的域名是 bbb.aaa.com

1
2
3
4
5
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /root/.secrets/certbot/cloudflare.ini \
-d bbb.aaa.com \
--preferred-challenges dns-01

签发成功后,常见证书路径如下:

  • /etc/letsencrypt/live/bbb.aaa.com/fullchain.pem
  • /etc/letsencrypt/live/bbb.aaa.com/privkey.pem

10. Nginx 反向代理配置示例

创建站点配置文件:

1
sudo nano /etc/nginx/sites-available/cliproxyapi

示例配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
listen 443 ssl http2;
server_name bbb.aaa.com;

ssl_certificate /etc/letsencrypt/live/bbb.aaa.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/bbb.aaa.com/privkey.pem;

ssl_protocols TLSv1.2 TLSv1.3;

location / {
proxy_pass https://127.0.0.1:8317;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 300s;
}
}

启用并重载 Nginx:

1
2
3
sudo ln -s /etc/nginx/sites-available/cliproxyapi /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

11. 配置证书续期后自动重载 Nginx

先检查系统中是否已有 certbot 定时任务:

1
systemctl list-timers | grep certbot || true

创建 deploy hook:

1
sudo nano /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

写入:

1
2
#!/bin/sh
systemctl reload nginx

赋予执行权限:

1
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/reload-nginx.sh

测试续期流程:

1
sudo certbot renew --dry-run

12. 为 CLIProxyAPI 启用 TLS

你也可以直接在配置文件里启用 TLS,例如:

1
2
3
4
5
6
7
8
9
10
host: ""
port: 8317

tls:
enable: true
cert: "/etc/letsencrypt/live/bbb.aaa.com/fullchain.pem"
key: "/etc/letsencrypt/live/bbb.aaa.com/privkey.pem"

remote-management:
allow-remote: true

完成后,记得再次检查:

  1. 域名解析是否正确
  2. 443 端口是否放行
  3. Nginx 配置是否通过测试
  4. 证书路径是否填写正确
  5. 服务是否正常监听

参考链接


视频信息

  • 视频 ID:3KhDHeQ7MJs
  • 分类:Science & Technology
  • 字幕:中文
  • 当前可见性:private