菜单

客户端配置

相关源文件

本文档提供了 frp(Fast Reverse Proxy)系统中 frpc 客户端配置的全面指南。它涵盖了客户端组件可用的所有配置选项,客户端运行在 NAT/防火墙后面的机器上,通过具有公共 IP 地址的 frps 服务器将本地服务暴露给互联网。

有关服务器配置选项,请参阅 服务器配置

配置文件格式

frpc 支持多种配置文件格式

  • TOML(推荐,并在示例中使用)
  • YAML
  • JSON

自 v0.52.0 起,INI 格式已被弃用,并将最终移除。新功能仅在 TOML、YAML 或 JSON 格式中可用。

来源:README.md476-483

基本配置结构

客户端配置包含两个主要组件

  1. 通用配置:适用于所有代理的全局设置
  2. 代理配置:单独的代理定义

下面是一个展示客户端配置结构的图表

来源:pkg/config/v1/client.go25-78 pkg/config/v1/proxy.go31-83

常用配置选项

下表列出了必需的通用配置选项

选项描述默认
serverAddrfrps 服务器的地址"0.0.0.0"
serverPortfrps 服务器的端口7000
user将作为所有代理名称前缀的用户名""
loginFailExit登录失败时是否退出true
auth.method认证方法(“token”或“oidc”)"token"
auth.token认证令牌""
transport.protocol通信协议(“tcp”、“kcp”、“quic”、“websocket”、“wss”)"tcp"
transport.tls.enable是否使用 TLS 加密true(自 v0.50.0 起)
log.to日志文件路径或“console”"console"
log.level日志级别(trace, debug, info, warn, error)"info"
includes要包含的其他配置文件[]

来源:conf/frpc_full_example.toml1-147 pkg/config/v1/client.go24-92

示例基本配置

这是一个最简的客户端配置示例

来源:conf/frpc.toml1-3 README.md156-161

身份验证

frp 支持两种认证方式

令牌认证

最简单的认证方法。客户端和服务器必须具有相同的 token

来源:README.md609-613

OIDC 认证

使用 OpenID Connect 进行更高级别的安全

来源:README.md630-637 pkg/config/v1/client.go175-211

传输选项

传输配置控制 frpc 如何与 frps 通信

协议选择

frpc 支持多种传输协议

对于 KCP(基于 UDP 的可靠协议)

对于 QUIC(基于 UDP 的现代多路复用传输)

来源:README.md825-877 pkg/config/v1/client.go94-154

TLS 配置

启用 TLS 加密(自 v0.50.0 起默认启用)

来源:README.md655-684 pkg/config/v1/client.go156-173

连接池与多路复用

来源:README.md816-822 README.md879-897 pkg/config/v1/client.go94-154

代理配置

代理在配置的 proxies 部分定义。每个代理指定了一个应通过 frps 服务器公开的本地服务。

通用代理设置

所有代理类型都共享这些基本设置

选项描述
名称代理的唯一名称
类型代理类型(tcp、udp、http、https、stcp、xtcp、tcpmux、sudp)
localIP要代理到的本地 IP 地址或主机名
localPort要代理到的本地端口
transport.useEncryption是否加密通信(可选)
transport.useCompression是否压缩通信(可选)
transport.bandwidthLimit带宽限制,例如“1MB”(可选)
metadatas自定义元数据(可选)

来源:pkg/config/v1/proxy.go31-167

代理类型

frp 支持多种代理类型以适应不同的用例

来源:pkg/config/v1/proxy.go219-229 README.md142-474

TCP 代理示例

这将通过 frps 服务器上的 6000 端口暴露本地 SSH 服务(22 端口)。

来源:README.md161-168 pkg/config/v1/proxy.go253-269

UDP 代理示例

来源:README.md291-297 pkg/config/v1/proxy.go271-289

HTTP/HTTPS 代理示例

HTTP 和 HTTPS 代理支持附加选项

选项描述
customDomainsHTTP/HTTPS 服务的自定义域名
subdomainHTTP/HTTPS 服务的子域名
locationsURL 路径路由规则
httpUserBasic Auth 用户名
httpPasswordBasic Auth 密码
hostHeaderRewrite重写 Host 头
requestHeaders.set要添加的自定义请求头
responseHeaders.set要添加的自定义响应头

来源: README.md249-261 pkg/config/v1/proxy.go291-353 README.md1003-1014

STCP (Secret TCP) 代理示例

适用于需要预共享密钥的私密代理

在另一台想要访问此代理的客户端上

来源: README.md389-426 pkg/config/v1/proxy.go395-416 pkg/config/v1/visitor.go142-144

XTCP (P2P) 代理示例

用于直接客户端到客户端通信

来源: README.md434-449 pkg/config/v1/proxy.go418-439 pkg/config/v1/visitor.go154-175

高级特性

健康检查

健康检查有助于确保被代理的服务正常运行

用于 TCP 健康检查

来源: README.md933-978 pkg/config/v1/proxy.go73-103

带宽限制

限制特定代理的带宽使用

来源: README.md795-812 pkg/config/v1/proxy.go31-50

负载均衡

在多个代理之间负载均衡

来源: README.md905-932 pkg/config/v1/proxy.go52-60

客户端插件

frpc 支持各种插件来扩展功能

可用插件包括:

  • unix_domain_socket
  • http_proxy
  • socks5
  • static_file
  • https2http
  • https2https
  • http2https
  • http2http
  • tls2raw

来源: README.md333-352 test/e2e/v1/plugin/client.go22-450 pkg/plugin/client/http2http.go15-92

环境变量

配置文件可以引用环境变量

来源: README.md493-516

拆分配置

您可以将配置拆分为多个文件

然后在包含的目录中创建单独的代理配置

来源: README.md518-538

管理界面

frpc 包括一个用于管理的 Web 管理界面

这将在 http://127.0.0.1:7400 提供 Web UI 来管理代理。

来源: README.md572-585

功能门控

frpc 支持通过功能门控(feature gates)启用实验性功能

来源: conf/frpc_full_example.toml132-139 pkg/config/v1/client.go68-215

完整的配置参考

有关所有可用选项的完整列表,请参阅 frp 存储库中的完整示例配置文件: conf/frpc_full_example.toml 该文件包含所有可能的配置选项以及详细注释。

来源: conf/frpc_full_example.toml1-417