无公网IP住宅服务器FRP穿透AI中转接口
很多个人开发者或小型团队手里有一台性能不错的家用服务器,但受限于运营商不提供公网IP,无法直接对外提供AI接口服务。
本文手把手教你用FRP内网穿透,把无公网IP的住宅服务器暴露到公网,并搭建一个AI中转接口(以OpenAI API为例),让你在任意地方都能调用家里的算力。
---
准备条件:你需要哪些东西?
- 一台有公网IP的云服务器(最低配1核1G即可,系统建议Ubuntu 20.04或CentOS 7)
- 一台无公网IP的住宅服务器(系统Linux/Windows均可,本文以Ubuntu为例)
- 一个域名(可选,用于配置HTTPS或简化访问)
- FRP软件:从 GitHub Releases 下载最新版,服务端和客户端版本要一致
- 开放的端口:云服务器安全组放行FRP绑定的端口(例如7000控制端口,7001代理端口)
---
第一步:在公网服务器上部署FRP服务端
- 下载并解压FRP
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
tar -xzf frp_0.52.3_linux_amd64.tar.gz
cd frp_0.52.3_linux_amd64
- 编辑服务端配置文件
frps.toml(旧版是frps.ini,新版使用toml)
内容如下:
bindPort = 7000
vhostHTTPPort = 7001
auth.token = "your-secure-token"
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
bindPort是FRP控制端口,vhostHTTPPort是HTTP代理端口(中转接口会用到),auth.token客户端连接时需保持一致。
- 启动服务端
./frps -c frps.toml &
建议配合systemd管理,避免断开终端后进程退出。
---
第二步:在住宅服务器上部署FRP客户端
- 同样下载对应架构的FRP(x86还是arm根据实际情况选),解压后找到
frpc和frpc.toml。 - 编辑客户端配置文件
frpc.toml
假设你要把住宅服务器的8080端口映射到公网服务器的7001端口:
serverAddr = "你的云服务器公网IP"
serverPort = 7000
auth.token = "your-secure-token"
[[proxies]]
name = "ai-proxy"
type = "http"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 7001
如果后续用https,type可改为tcp。
注意auth.token必须和服务端一致。
- 启动客户端
./frpc -c frpc.toml &
检查日志,看到“start proxy success”表示连接成功。
---
第三步:在住宅服务器上配置AI中转接口
FRP只是通道,你还需要在住宅服务器上运行一个接收AI API请求并转发的服务。
这里以最简单的nginx反向代理OpenAI为例。
- 安装nginx
sudo apt update && sudo apt install nginx -y
- 配置nginx,编辑
/etc/nginx/sites-available/default:
server {
listen 8080;
location / {
proxy_pass https://api.openai.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
保存后重启nginx:sudo systemctl restart nginx。
- 验证中转功能:在住宅服务器本地测试:
curl http://127.0.0.1:8080/v1/models
如果能返回OpenAI的模型列表,说明nginx代理配置正确。
---
效果验证:从外网访问中转接口
在任意有外网的机器上,执行:
curl http://你的云服务器公网IP:7001/v1/models
如果返回同样的结果,说明FRP穿透和AI中转接口全部生效。
也可以将域名解析到云服务器,再用nginx反代7001端口,实现更干净的访问路径。
---
常见问题与避坑指南
- 防火墙/SELinux:云服务器安全组必须放行7000、7001、7500等端口;住宅服务器防火墙也要放行8080。
- 域名备案:如果使用国内云服务器和域名,HTTP/HTTPS流量可能被阻断,建议使用海外云服务器或TCP隧道。
- 速率限制:住宅服务器上行带宽通常较小(50Mbps以内),大量并发请求容易丢包,建议加缓存或限流。
- log文件:FRP服务端和客户端的日志会输出到终端,如果出错先看日志,常见原因是token不匹配或端口冲突。
- 长期运行:使用
systemctl将frps/frpc注册为服务,保证意外重启后自动拉起。
---
以上就是用FRP把无公网IP住宅服务器变成AI中转接口的完整流程。
如果你遇到国内直连OpenAI延迟高或断连的问题,这个方案能稳定解决;
也可以把中转接口换成其他AI服务使用。
动手试试吧!