Repolode
fatedier

fatedier/frp

一款快速的反向代理工具,可将位于 NAT 或防火墙后的本地服务暴露到公网。

可替代:ngrok

Star
110,048
Fork
15,248
未关闭 Issue
34
最近提交
前天

这是什么?

frp 是一款用 Go 编写的反向代理工具,可以把位于 NAT 或防火墙后面的本地服务暴露到公网。它由两个程序组成:部署在有公网 IP 机器上的 frps,以及运行被访问服务的机器上的 frpc。客户端与服务端保持连接,并把进来的流量转发到本地服务。

它支持 TCP 和 UDP 转发,也支持按域名或子域名路由的 HTTP、HTTPS 代理,使多个内网网站可以共用一台公网服务器。此外还提供需要预共享密钥的 STCP 模式、用于客户端直连传输数据的 XTCP(P2P)模式,并可选 KCP 和 QUIC 作为传输协议。

在运维方面,frp 支持 TOML、YAML、JSON 配置和环境变量注入,提供服务端仪表盘、支持热重载的客户端管理界面、Prometheus 指标,以及 Token 和 OIDC 认证、TLS 加密、带宽限制、负载均衡和健康检查等功能。

核心功能

  • 01将公网服务器上的 TCP、UDP、HTTP、HTTPS 流量转发到本地服务。
  • 02按自定义域名或子域名将 HTTP、HTTPS 请求路由到内网站点。
  • 03提供基于预共享密钥的 STCP 模式,以及用于点对点传输的 XTCP 模式。
  • 04支持 TCP、KCP、QUIC 传输协议,并可选择开启加密和压缩。
  • 05提供服务端仪表盘、客户端管理界面、热重载和 Prometheus 指标。
  • 06包含 Token 与 OIDC 认证、带宽限制、负载均衡和健康检查。

适用场景

  • 在没有公网 IP 的家庭或办公网络中,把 SSH 或开发中的 Web 应用暴露到公网。
  • 用一台公网服务器通过自定义域名托管多个内网网站。
  • 通过公网主机转发本地 DNS 解析器或其他 UDP 服务。
  • 通过预共享密钥让远程协作者安全访问内网服务。

快速上手

  1. 1

    从 Releases 页面下载适合你操作系统的最新 frp 程序

  2. 2

    在拥有公网 IP 的服务器上,使用配置文件启动 frps

    ./frps -c ./frps.toml
  3. 3

    在位于 NAT 或防火墙后的机器上,使用配置文件启动 frpc

    ./frpc -c ./frpc.toml

使用前须知

  • 运行 frps 需要你自己准备一台拥有公网 IP 地址的服务器。
  • README 说明即将推出的 v2 版本将与 v1 不兼容。
  • 部分杀毒软件可能会误将 frpc 判定为恶意软件。

标签

常见问题

frp 是什么?
一款快速的反向代理工具,可将位于 NAT 或防火墙后的本地服务暴露到公网。 frp 是一款用 Go 编写的反向代理工具,可以把位于 NAT 或防火墙后面的本地服务暴露到公网。它由两个程序组成:部署在有公网 IP 机器上的 frps,以及运行被访问服务的机器上的 frpc。客户端与服务端保持连接,并把进来的流量转发到本地服务。
frp 可以免费使用吗?用的什么许可证?
frp 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
frp 还在维护吗?
活跃维护中。frp 最近一次提交是在 2026年10月20日。
frp 适合用来做什么?
在没有公网 IP 的家庭或办公网络中,把 SSH 或开发中的 Web 应用暴露到公网。 用一台公网服务器通过自定义域名托管多个内网网站。 通过公网主机转发本地 DNS 解析器或其他 UDP 服务。 通过预共享密钥让远程协作者安全访问内网服务。
frp 怎么安装和运行?
从 Releases 页面下载适合你操作系统的最新 frp 程序 在拥有公网 IP 的服务器上,使用配置文件启动 frps: ./frps -c ./frps.toml 在位于 NAT 或防火墙后的机器上,使用配置文件启动 frpc: ./frpc -c ./frpc.toml
在哪里获取 frp?
源代码和安装说明在 GitHub 上:https://github.com/fatedier/frp

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目