客户端配置
frp 客户端的详细配置说明。
ClientConfig
| Field | Type | Description | Required |
|---|---|---|---|
| ClientCommonConfig | 客户端通用配置。 | Yes | |
| proxies | []ProxyConfig | 代理配置,不同的代理类型对应不同的配置,例如 TCPProxyConfig 或 HTTPProxyConfig。 | No |
| visitors | []VisitorConfig | 访问者配置,不同的访问者类型对应不同的配置,例如 STCPVisitorConfig。 | No |
ClientCommonConfig
| Field | Type | Description | Required |
|---|---|---|---|
| auth | AuthClientConfig | 客户端鉴权配置。 | No |
| user | string | 用户名,设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突。 | No |
| serverAddr | string | 连接服务端的地址。 | No |
| serverPort | int | 连接服务端的端口,默认为 7000。 | No |
| natHoleStunServer | string | xtcp 打洞所需的 stun 服务器地址,默认为 stun.easyvoip.com:3478。 | No |
| dnsServer | string | 使用 DNS 服务器地址,默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址。 | No |
| loginFailExit | bool | 第一次登陆失败后是否退出,默认为 true。 | No |
| start | []string | 指定启用部分代理,当配置了较多代理,但是只希望启用其中部分时可以通过此参数指定,默认为全部启用。 | No |
| log | LogConfig | 日志配置。 | No |
| webServer | WebServerConfig | 客户端 AdminServer 配置。 | No |
| transport | ClientTransportConfig | 客户端网络层配置。 | No |
| virtualNet | VirtualNetConfig | 虚拟网络配置,Alpha 特性。 | No |
| featureGates | map[string]bool | 特性门控,用于启用或禁用实验性功能。 | No |
| udpPacketSize | int | 代理 UDP 服务时支持的最大包长度,默认为 1500,服务端和客户端需要保持配置一致。 | No |
| metadatas | map[string]string | 附加元数据,会传递给服务端插件,提供附加能力。 | No |
| includes | []string | 指定额外的配置文件目录,其中的 proxy 和 visitor 配置会被读取加载。 | No |
ClientTransportConfig
| Field | Type | Description | Required |
|---|---|---|---|
| protocol | string | 和 frps 之间的通信协议,可选值为 tcp, kcp, quic, websocket, wss。默认为 tcp。 | No |
| dialServerTimeout | int | 连接服务端的超时时间,默认为 10s。 | No |
| dialServerKeepalive | int | 和服务端底层 TCP 连接的 keepalive 间隔时间,单位秒。 | No |
| connectServerLocalIP | string | 连接服务端时所绑定的本地 IP。 | No |
| proxyURL | string | 连接服务端使用的代理地址,格式为 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm。 | No |
| poolCount | int | 连接池大小。 | No |
| tcpMux | bool | TCP 多路复用,默认启用。 | No |
| tcpMuxKeepaliveInterval | int | tcp_mux 的心跳检查间隔时间。 |
No |
| quic | QUICOptions | QUIC 协议配置参数。 | No |
| heartbeatInterval | int | 向服务端发送心跳包的间隔时间,默认为 30s。建议启用 tcp_mux_keepalive_interval,将此值设置为 -1。 |
No |
| heartbeatTimeout | int | 和服务端心跳的超时时间,默认为 90s。 | No |
| tls | TLSClientConfig | 客户端 TLS 协议配置。 | No |
TLSClientConfig
| Field | Type | Description | Required |
|---|---|---|---|
| enable | bool | 是否和服务端之间启用 TLS 连接,默认启用。 | No |
| disableCustomTLSFirstByte | bool | 启用 TLS 连接时,不发送 0x17 特殊字节。默认为 true。当配置为 true 时,无法和 vhostHTTPSPort 端口复用。 | No |
| TLSConfig | TLS 协议配置,内嵌结构。 | No |
AuthClientConfig
| Field | Type | Description | Required |
|---|---|---|---|
| method | string | 鉴权方式,可选值为 token 或 oidc,默认为 token。 | No |
| additionalScopes | []string | 鉴权信息附加范围,可选值为 HeartBeats 和 NewWorkConns | No |
| token | string | 在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。与 tokenSource 字段互斥。 | No |
| tokenSource | ValueSource | 从文件中加载 token 的配置。与 token 字段互斥。 | No |
| oidc | AuthOIDCClientConfig | oidc 鉴权配置。 | No |
AuthOIDCClientConfig
| Field | Type | Description | Required |
|---|---|---|---|
| clientID | string | OIDC 客户端 ID。 | No |
| clientSecret | string | OIDC 客户端密钥。 | No |
| audience | string | OIDC audience 参数。 | No |
| scope | string | OIDC scope 参数。 | No |
| tokenEndpointURL | string | OIDC 令牌端点 URL。 | No |
| additionalEndpointParams | map[string]string | 附加的端点参数。 | No |
| trustedCaFile | string | 信任的 CA 证书文件路径,用于验证 OIDC 服务器的 TLS 证书。 | No |
| insecureSkipVerify | bool | 跳过 TLS 证书验证,不推荐在生产环境使用。 | No |
| proxyURL | string | 访问 OIDC 令牌端点时使用的代理服务器 URL。 | No |
VirtualNetConfig
| Field | Type | Description | Required |
|---|---|---|---|
| address | string | 虚拟网络接口的 IP 地址和网段,格式为 CIDR (例如 “100.86.0.1/24”)。 | Yes |