FRP穿透:让你的高性能内网服务器走向互联网
一、为什么需要内网穿透(FRP)?
许多朋友拥有配置强大的本地电脑或服务器(例如配备高性能显卡),非常适合运行大型AI模型或进行图形渲染。然而,这些设备面临两个主要限制:
-
无法直接提供互联网服务: 本地机器通常不具备静态公网IP,且运营商不会开放常用的服务端口,如安全的HTTPS协议端口443或HTTP协议端口80 。
-
云服务器成本高昂或性能不足: 租用高性能的云服务器价格非常昂贵,而便宜的云服务器往往性能较低,无法满足高性能计算需求 。
FRP(Fast Reverse Proxy) 正是为了解决这一痛点而生。它是一个高性能的反向代理应用,能够将位于内网或防火墙后的服务暴露到公网上,让你能用自己的高性能本地机器来提供真正的互联网服务。
二、FRP 的工作原理
FRP 的核心思想是利用一台性能要求不高、但拥有公网IP的云服务器(VPS) 作为“中转站”(即 FRP Server),来连接你的本地高性能服务器(即 FRP Client)。
-
用户访问云服务器的公网IP和特定端口。
-
云服务器上的
frps接收请求。 -
frps将请求转发到已连接的本地frpc。 -
本地服务器处理请求并将结果返回,最终通过云服务器中转给用户。
这样,你就能以极低的成本,享受本地机器带来的高性能服务。
三、部署步骤(基于 Docker)
推荐使用 Docker 和 Docker Compose 进行部署,这是最简单且最稳定的方式,可以避免版本不兼容等问题。
1. FRP 服务端(frps)配置
在你的云服务器(VPS) 上进行以下配置:
| 文件 | 关键配置项 | 作用 | 备注 |
frps.toml | bindPort |
服务端与客户端连接的端口。 |
建议不要使用默认端口。 |
|
| token |
客户端与服务端握手的密钥。 |
需设置一个安全的随机字符串。 |
|
| 管理面板 |
dashboardPort,dashboardUser,dashboardPwd |
用于网页监控连接状态,建议修改默认端口和账号密码。 |
|
docker-compose.yml |
network_mode:host |
强烈建议:使用 host模式 |
避免手动映射大量端口,简化防火墙配置。 |
操作流程:
-
创建并编辑
frps.toml和docker-compose.yml文件。 -
启动服务:
docker-compose up -d -
开放防火墙:务必在云服务器的安全组或防火墙中开放 bindPort和 dashboardPort(例如 17500)
-
通过浏览器访问
云服务器IP:dashboardPort,使用配置的账号密码登录管理面板
2. FRP 客户端(frpc)配置
在你的本地高性能服务器上进行以下配置:
| 文件 | 关键配置项 | 作用 | 备注 |
frpc.toml | serverAddr |
云服务器的公网IP |
|
|
| serverPort |
云服务器的 |
|
|
| token |
必须和服务端保持一致 |
|
|
| 代理服务 | remotePort
(VPS端口) |
将本地 localPort映射到云服务器的remotePort |
操作流程:
-
创建并编辑
frpc.toml和docker-compose.yml文件; -
启动服务(确保本地服务器已安装 Docker):
docker-compose up -d -
服务启动后,返回
frps的管理面板,你应该能在“连接”列表中看到客户端已成功连接,并显示你配置的remotePort(如 1280)。 -
再次开放防火墙: 在云服务器上开放你为代理服务设定的
remotePort(例如 1280) 。
四、验证穿透效果
现在,你可以通过访问 云服务器IP:remotePort 来访问你本地服务器上的服务了!
总结
FRP 内网穿透是一种高效且经济的解决方案,它让你能够充分利用本地高性能设备,如用于Stable Diffusion (SD) 或大型语言模型 (LLM) 的本地GPU,并将其作为稳定、可访问的互联网服务提供给他人或自己远程使用 。遵循本教程中的 Docker 部署和 .toml 配置文件,可以大大提高初次部署的成功率!










