类似 netcat 的命令行工具和 Go 库,无需 Tailscale 账号即可通过其 WireGuard 数据面在两台机器间建立加密连接。
- 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
从 Releases 页面下载适合你操作系统的最新 frp 程序
- 2
在拥有公网 IP 的服务器上,使用配置文件启动 frps
./frps -c ./frps.toml - 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 数据每日更新。
相关项目
8441381GoBSD-3-Clause更新于 14天前
用 Rust 编写的去中心化 Mesh VPN,可将分散设备组成虚拟局域网,支持 NAT 穿透与 WireGuard。
1.4万1447RustLGPL-3.0更新于 昨天
用 Go 编写的自托管隧道工具,通过你自己的域名和服务器将本地服务暴露到公网。
92062GoBSD-3-Clause更新于 18天前
一个 Rust 库,通过公钥建立连接,基于 QUIC 并支持打洞与中继回退。
1.3万737RustApache-2.0更新于 9小时前
开源的 ngrok 替代方案,一条命令即可把本地 HTTP 服务暴露到公网 HTTPS 地址。
43733GoMIT更新于 25天前
基于 Go 和 Vue 的自托管 Nginx 网页管理界面,用于管理站点、证书、配置和日志。
1.2万904GoAGPL-3.0更新于 昨天