1
0
0
FRP将本地 AI API反代到公网
2026-09-28
2026-09-28
文章摘要
|
适用场景
适用于以下结构:
本机运行 AI 服务(例如 Ollama、OpenAI 兼容 API 等)
AI 服务只监听
127.0.0.1有一台公网 VPS
有一个解析到 VPS 的域名
使用 FRP 建立内网穿透
使用 Caddy 提供 HTTPS 和访问控制
最终访问方式:
外部 AI 客户端
|
| HTTPS :443
v
公网 VPS Caddy
|
|
| 127.0.0.1:18080
v
公网 frps
|
| FRP 隧道 :7000
|
v
本地 frpc
|
| 127.0.0.1:8080
v
本地 Caddy
|
| 127.0.0.1:11434
v
本地 AI 服务注意:必须拥有公网入口。
单独运行本地 FRP 客户端无法凭空获得公网访问地址,需要一台公网服务器运行
frps。
一、完整配置
以下配置是一套独立方案:
包含:
公网服务器:
frps.tomlCaddyfile
本地 AI 主机:
frpc.tomlCaddyfile.local
两端配置不能混用。
1. 公网服务器 frps 配置
# 公网服务器 frps 配置
# frps 0.59.0
bindAddr = "0.0.0.0"
bindPort = 7000
# FRP代理端口只绑定本机
proxyBindAddr = "127.0.0.1"
# FRP客户端认证
auth.method = "token"
auth.token = "REPLACE_WITH_SAME_LONG_RANDOM_FRP_TOKEN"
log.level = "info"
log.maxDays = 3作用:
7000给 frpc 连接
2. 本地 frpc 配置
# 本地AI电脑 frpc配置
# frpc 0.59.0
serverAddr = "YOUR_VPS_PUBLIC_IP_OR_DOMAIN"
serverPort = 7000
auth.method = "token"
auth.token = "REPLACE_WITH_SAME_LONG_RANDOM_FRP_TOKEN"
loginFailExit = false
[[proxies]]
name = "local-ai-api"
type = "tcp"
# 转发到本机Caddy
localIP = "127.0.0.1"
localPort = 8080
# VPS内部端口
remotePort = 18080
transport.useEncryption = true3. 公网服务器 Caddy 配置
ai.example.com {
# 转发到FRP
reverse_proxy 127.0.0.1:18080
}4. 本地 Caddy 配置
TARGET_HOST:TARGET_PORT 为本地可访问的AI服务的地址
window本地 caddy json 配置文件
{
"apps": {
"http": {
"servers": {
"proxy": {
"listen": [
":8080"
],
"routes": [
{
"handle": [
{
"handler": "reverse_proxy",
"upstreams": [
{
"dial": "TARGET_HOST:TARGET_PORT"
}
],
"headers": {
"request": {
"set": {
"Host": [
"TARGET_HOST"
]
}
}
},
"transport": {
"protocol": "http",
"tls": {
"insecure_skip_verify": true
}
}
}
]
}
]
}
}
}
}
}Linux 本地Caddyfile 配置
:8080 {
reverse_proxy TARGET_HOST:TARGET_PORT {
header_up Host TARGET_HOST
transport http {
tls_insecure_skip_verify
}
}
}