FRP0.52以上新版本的服务端配置文件(frps.toml)和客户端配置文件(frpc.toml)详解

[复制链接]
查看: 113|回复: 0

FRP0.52以上新版本的服务端配置文件(frps.toml)和客户端配置文件(frpc.toml)详解

[复制链接]
查看: 113|回复: 0
admin

68

主题

1

回帖

339

积分

管理员

积分
339
admin 2025-11-16 00:07:23 | 显示全部楼层 |阅读模式
   FRP从0.52以上版本的配置文件弃用了老版本的ini配置文件,改用.toml格式,具体配置详细用法如下:


一、服务端配置文件frps.toml

# 服务端监听地址,用于接收 frpc 的连接,默认监听 0.0.0.0 bindAddr = "0.0.0.0" # 服务端监听端口,默认值为 7000 bindPort = 7000 # 服务端监听 KCP 协议端口,用于接收配置了使用 KCP 协议的 frpc 连接。端口可和 bindPort 相同,未配置时默认禁用 KCP kcpBindPort = 7000 # 服务端监听 QUIC 协议端口,用于接收配置了使用 QUIC 协议的 frpc 连接。未配置时默认禁用 QUIC quicBindPort = 7002 # 代理监听地址,可以使代理监听在不同的网卡地址,默认情况下同 bindAddr。 proxyBindAddr = "127.0.0.1" # HTTP 类型代理监听的端口,启用后才能支持 HTTP 类型的代理。端口可和 bindPort 相同。 vhostHTTPPort = 80 # HTTPS 类型代理监听的端口,启用后才能支持 HTTPS 类型的代理。端口可和 bindPort 相同。 vhostHTTPSPort = 443 # HTTP 类型代理在服务端的 ResponseHeader 超时时间,默认为 60s。 vhostHTTPTimeout = 60 # tcpmux 类型且复用器为 httpconnect 的代理监听的端口。 tcpmuxHTTPConnectPort = 1337 # 对于 tcpmux 类型的代理是否透传 CONNECT 请求。 tcpmuxPassthrough = false # 鉴权配置 ## 鉴权方式,可选值为 token 或 oidc,默认为 token。 auth.method = "token" ## 鉴权信息附加范围,可选值为 HeartBeats 和 NewWorkConns auth.additionalScopes = ["HeartBeats", "NewWorkConns"] ## 在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。 auth.token = "12345678" ## oidc 鉴权配置。 ### oidc issuer specifies the issuer to verify OIDC tokens with. auth.oidc.issuer = "" ### oidc audience specifies the audience OIDC tokens should contain when validated. auth.oidc.audience = "" ### oidc skipExpiryCheck specifies whether to skip checking if the OIDC token is expired. auth.oidc.skipExpiryCheck = false ### oidc skipIssuerCheck specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer. auth.oidc.skipIssuerCheck = false # 日志配置 ## 日志输出文件路径,如果为 console,则会将日志打印在标准输出中。 log.to = "./frps.log" ## 日志级别,可选值为 trace, debug, info, warn, error,默认级别为 info。 log.level = "info" ## 日志文件最多保留天数,默认为 3 天。 log.maxDays = 3 ## 禁用标准输出中的日志颜色。 log.disablePrintColor = false # 服务端 Dashboard 配置。 ## webServer 监听地址,默认为 127.0.0.1。 webServer.addr = "127.0.0.1" ## webServer 监听端口。 webServer.port = 7500 ## HTTP BasicAuth 用户名。 webServer.user = "admin" ## HTTP BasicAuth 密码。 webServer.password = "admin" ## 静态资源目录,Dashboard 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源。 webServer.assetsDir = "./static" ## 启动 Go HTTP pprof,用于应用调试。 webServer.pprofEnable = false ## Dashboard 启用 HTTPS 的 TLS 相关配置。 ### TLS 证书文件路径。 webServer.tls.certFile = "server.crt" ### TLS 密钥文件路径。 webServer.tls.keyFile = "server.key" # 网络层配置。 ## 允许客户端设置的最大连接池大小,如果客户端配置的值大于此值,会被强制修改为最大值,默认为 5。 transport.maxPoolCount = 5 ## 服务端和客户端心跳连接的超时时间,单位秒,默认为 90 秒。 transport.heartbeatTimeout = 90 ## 和客户端底层 TCP 连接的 keepalive 间隔时间,单位秒,配置为负数表示不启用。 transport.tcpKeepalive = 7200 # 是否启用 tcp mux transport.tcpMux = true ## tcp mux 的心跳检查间隔时间,单位秒。 transport.tcpMuxKeepaliveInterval = 60 ## QUIC 协议配置参数。 transport.quic.keepalivePeriod = 10 transport.quic.maxIdleTimeout = 30 transport.quic.maxIncomingStreams = 100000 ## 服务端 TLS 协议配置。 ### 是否只接受启用了 TLS 的客户端连接。 tls.force = false ### TLS 协议配置 #### TLS 证书文件路径。 transport.tls.certFile = "server.crt" #### TLS 密钥文件路径。 transport.tls.keyFile = "server.key" #### CA 证书文件路径。 transport.tls.trustedCaFile = "ca.crt" # 是否提供 Prometheus 监控接口,需要同时启用了 webServer 后才会生效。 enablePrometheus = true # 服务端返回详细错误信息给客户端,默认为 true。 detailedErrorsToClient = true # 用户建立连接后等待客户端响应的超时时间,单位秒,默认为 10 秒。 # userConnTimeout = 10 # 允许代理绑定的服务端端口。 allowPorts = [ { start = 2000, end = 3000 }, { single = 3001 }, { single = 3003 }, { start = 4000, end = 50000 } ] # 限制单个客户端最大同时存在的代理数,默认无限制。 maxPortsPerClient = 0 # 二级域名后缀。 subDomainHost = "frps.com" # 自定义 404 错误页面地址。 custom404Page = "/path/to/404.html" # 代理 UDP 服务时支持的最大包长度,默认为 1500,服务端和客户端的值需要一致。 udpPacketSize = 1500 # 打洞策略数据的保留时间,默认为 168 小时,即 7 天。 natholeAnalysisDataReserveHours = 168 # 服务端 HTTP 插件配置。 [[httpPlugins]] ## 插件名称。 name = "user-manager" ## 插件接口的地址。 addr = "127.0.0.1:9000" ## 插件接口的 Path。 path = "/handler" ## 插件需要生效的操作列表,具体可选值请参考服务端插件的说明文档。 ops = ["Login"] [[httpPlugins]] name = "port-manager" addr = "127.0.0.1:9001" path = "/handler" ops = ["NewProxy"]



二、客户端配置文件frpc.toml

# 用户名,设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突。 user = "your_name" # 连接服务端的地址。 serverAddr = "0.0.0.0" # 连接服务端的端口,默认为 7000。 serverPort = 7000 # 鉴权配置 ## 鉴权方式,可选值为 token 或 oidc,默认为 token。 auth.method = "token" ## 鉴权信息附加范围,可选值为 HeartBeats 和 NewWorkConns auth.additionalScopes = ["HeartBeats", "NewWorkConns"] ## 在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。 auth.token = "12345678" ## oidc 鉴权配置。 ### oidc.clientID specifies the client ID to use to get a token in OIDC authentication. auth.oidc.clientID = "" ### oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication. auth.oidc.clientSecret = "" ### oidc.audience specifies the audience of the token in OIDC authentication. auth.oidc.audience = "" ### oidc.scope specifies the permisssions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "". auth.oidc.scope = "" ### oidc.tokenEndpointURL specifies the URL which implements OIDC Token Endpoint.It will be used to get an OIDC token. auth.oidc.tokenEndpointURL = "" ### oidc.additionalEndpointParams specifies additional parameters to be sent to the OIDC Token Endpoint. ### For example, if you want to specify the "audience" parameter, you can set as follow. ### frp will add "audience=" "var1=" to the additional parameters. auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/" auth.oidc.additionalEndpointParams.var1 = "foobar" # xtcp 打洞所需的 stun 服务器地址,默认为 stun.easyvoip.com:3478。 natHoleStunServer = "stun.easyvoip.com:3478" # 使用 DNS 服务器地址,默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址。 dnsServer = "8.8.8.8" # 第一次登陆失败后是否退出,默认为 true。 loginFailExit = true # 日志配置 ## 日志输出文件路径,如果为 console,则会将日志打印在标准输出中。 log.to = "./frpc.log" ## 日志级别,可选值为 trace, debug, info, warn, error,默认级别为 info。 log.level = "info" ## 日志文件最多保留天数,默认为 3 天。 log.maxDays = 3 ## 禁用标准输出中的日志颜色。 log.disablePrintColor = false # 客户端 AdminServer 配置。 ## webServer 监听地址,默认为 127.0.0.1。 webServer.addr = "127.0.0.1" ## webServer 监听端口。 webServer.port = 7400 ## HTTP BasicAuth 用户名。 webServer.user = "admin" ## HTTP BasicAuth 密码。 webServer.password = "admin" ## 静态资源目录,Dashboard 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源。 webServer.assetsDir = "./static" ## 启动 Go HTTP pprof,用于应用调试。 webServer.pprofEnable = false # 客户端网络层配置。 ## 连接服务端时所绑定的本地 IP。 transport.connectServerLocalIP = "0.0.0.0" ## 和 frps 之间的通信协议,可选值为 tcp, kcp, quic, websocket, wss。默认为 tcp。 transport.protocol = "tcp" ## 连接服务端的超时时间,默认为 10s。 transport.dialServerTimeout = 10 ## 和服务端底层 TCP 连接的 keepalive 间隔时间,单位秒。 transport.dialServerKeepalive = 7200 ## 连接池大小。 transport.poolCount = 5 ## 向服务端发送心跳包的间隔时间,默认为 30s。建议启用 tcp_mux_keepalive_interval,将此值设置为 -1。 transport.heartbeatInterval = 30 ## 和服务端心跳的超时时间,默认为 90s。 transport.heartbeatTimeout = 90 ## TCP 多路复用,默认启用。 transport.tcpMux = true ## tcp_mux 的心跳检查间隔时间。 transport.tcpMuxKeepaliveInterval = 60 ## 连接服务端使用的代理地址,格式为 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm。 transport.proxyURL = "http://user:passwd@192.168.1.128:8080" transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080" transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080" ## QUIC 协议配置参数。 transpo
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

68

主题

1

回帖

339

积分

管理员

积分
339
精选版块
更多

0

圈子今日发帖

QQ|Archiver|小黑屋|玩机社区 | 鲁ICP备2025164041号-1|11040102700068

GMT+8, 2025-11-28 22:38 , Processed in 0.303308 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.