【全网最全】FRP内网穿透参数配置+服务器与客户端的简易配置+完整配置详解(Windows)

本文介绍如何使用FRP实现内网穿透,包括服务器与客户端的基本配置流程及参数详解。通过简单的步骤,用户可以在拥有公网IP的设备上搭建FRP服务器,并在内网环境中配置客户端,实现对外部网络的服务暴露。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Frp的简单理解与执行的前提条件

主要功能:内网穿透,内网电脑通过公网电脑暴露服务
必须要有的:一个公网能访问的电脑,可以是云服务器,可以是有IPV6的电脑,如果使用ipv6模式,那么所有设备都需要支持ipv6才行

本文基于:v0.61.0版本,配合官方文档所写,防止部分人看了官方文档也不知道怎么写
官网(内有官方中文文档): 官网地址
Girhub:Github地址,windows下载amd64版本就行
简单使用复制下面的最简易配置或推荐配置即可

服务器端(有公网IP的电脑)最简易配置

frps.toml

bindPort = 7000 #frps与frpc交互用的端口,记得打开防火墙

新建一个Start.bat,内容:fprs -c frps.toml
双击就可以启动

客户端(内网电脑)最简易配置

frpc.toml

serverAddr = "xxx.xxx.xxx.xxx" #服务器的公网ipv4/6,网址也行
serverPort = 7000 #frps与frpc交互用的端口,记得打开服务器防火墙

[[proxies]]
name = "远程桌面" #此代理的名称,支持中文
type = "tcp" #协议类型
localIP = "127.0.0.1" #本机将访问的IP,可填写其他IP或域名
localPort = 3389 #本机将访问的端口
remotePort = 6000 #服务端的监听端口,意为服务器(frps)的6000端口接收到的数据会发给127.0.0.1:3389上
#如上的配置意思:访问xxx.xxx.xxx.xxx:6000后,会通过xxx.xxx.xxx.xxx:7000端口把数据发到客户端(frpc)上
#客户端再把数据发到127.0.0.1:3389上,如此一来就完成了内网穿透,服务端需要开放7000和6000端口
[[proxies]] #支持多个
……

新建一个Start.bat,内容:fprc -c frpc.toml
双击就可以启动

自此,配置完成,其中的端口记得在防火墙入站规则里打开,或者给exe加上防火墙入站规则也行

推荐配置

frps.toml

bindAddr = "0.0.0.0" #服务端监听地址,用于接收 frpc 的连接,默认监听 0.0.0.0。
bindPort = 7000 #【必填】服务端监听端口,默认值为 7000。
maxPortsPerClient = 10 #限制单个客户端最大同时存在的代理数,默认无限制。

[auth] #鉴权配置
method = "token" #鉴权方式,可选值为 token 或 oidc,默认为 token。
token = "xx" #在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。

frpc.toml

user = "内网电脑1"
serverAddr = "xxx.xxx.xxx.xxx" #服务器的公网ip,网址也行
serverPort = 7000 #frps与frpc交互用的端口,记得打开服务器防火墙

[auth] #鉴权配置
method = "token" #鉴权方式,可选值为 token 或 oidc,默认为 token。
token = "xx" #在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。

[[proxies]]
name = "远程桌面" #此代理的名称,支持中文
type = "tcp"
localIP = "127.0.0.1" #被代理的本地服务 IP,默认为 127.0.0.1。
localPort = 3389 #被代理的本地服务端口。
remotePort = 6000 #服务端绑定的端口,用户访问服务端此端口的流量会被转发到对应的本地服务,默认值6000。
[proxies.transport] #代理网络层配置。
useEncryption = true #是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输,如果 frpc 启用了全局 TLS(即[transport.tls]内参数),则不需要再启用此参数。
useCompression = true #是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输。
bandwidthLimit = "1MB" #设置单个 proxy 的带宽限流,单位为 MB 或 KB,0 表示不限制,如果启用,默认会作用于对应的 frpc。

进阶配置(多了些常用参数)

frps.toml

bindAddr = "0.0.0.0" #服务端监听地址,用于接收 frpc 的连接,默认监听 0.0.0.0。
bindPort = 7000 #【必填】服务端监听端口,默认值为 7000。
maxPortsPerClient = 10 #限制单个客户端最大同时存在的代理数,默认无限制。
udpPacketSize = 1500 #代理 UDP 服务时支持的最大包长度,默认为 1500,服务端和客户端的值需要一致。

[auth] #鉴权配置
method = "token" #鉴权方式,可选值为 token 或 oidc,默认为 token。
token = "xx" #在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。

[webServer] #仪表盘配置。
addr = "127.0.0.1" #监听地址,默认为 127.0.0.1。
port = 0 #【必填】监听端口。
user = "name" #仪表盘用户名。
password = "123" #仪表盘密码。


[transport.tls] #服务端 TLS 协议配置。
force = false #是否只接受启用了 TLS 的客户端连接。
certFile = "xx.cert" #【必填】TLS 证书文件路径。
keyFile = "xx.key" #【必填】TLS 密钥文件路径。

[log] #日志配置
to = "xx.log" #日志输出文件路径,如果不填写,则会将日志打印在标准输出中。
level = "info" #日志级别,可选值为 trace, debug, info, warn, error,默认级别为 info。
maxDays = 3 #日志文件最多保留天数,默认为 3 天。

frpc.toml

user = "user" #用户名,设置此参数后,代理名称会被修改为 {user}.{代理的name},避免代理名称和其他用户冲突。
serverAddr = "xxx.xxx.xxx.xxx" #【必填】连接服务端的地址。
serverPort = 7000 #【必填】连接服务端的端口,默认为 7000。
dnsServer = "255.5.5.5" #使用 DNS 服务器地址,默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址。
loginFailExit = true #第一次登陆失败后是否退出,默认为 true。
includes = ["配置2.toml", "配置3.toml"] #指定额外的配置文件目录,其中的 proxy 和 visitor 配置会被读取加载。

[auth] #鉴权配置
method = "token" #鉴权方式,可选值为 token 或 oidc,默认为 token。
token = "xx" #在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。

[transport] #全局网络层配置。
protocol = "tcp" #和 frps 之间的通信协议,可选值为 tcp, kcp, quic, websocket, wss。默认为 tcp。
dialServerTimeout = 10 #连接服务端的超时时间,默认为 10s。
[transport.tls] #全局TLS 协议配置。
enable = true #是否和服务端之间启用 TLS 连接,默认启用。
certFile = "xx.cert" #【必填】TLS 证书文件路径。
keyFile = "xx.key" #【必填】TLS 密钥文件路径。
[webServer] #仪表盘配置。
addr = "127.0.0.1" #监听地址,默认为 127.0.0.1。
port = 0 #【必填】监听端口。
user = "name" #仪表盘用户名。
password = "123" #仪表盘密码。

[log] #日志配置
to = "xx.log" #日志输出文件路径,如果不填写,则会将日志打印在标准输出中。
level = "info" #日志级别,可选值为 trace, debug, info, warn, error,默认级别为 info。
maxDays = 3 #日志文件最多保留天数,默认为 3 天。

[[proxies]] 
name = "支持中文" #【必填】代理名称。
type = "tcp" #【必填】代理类型,可选值为 tcp, udp, http, https, tcpmux, stcp, sudp, xtcp。
[proxies.transport] #代理网络层配置。
useEncryption = false #是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输,如果 frpc 启用了全局 TLS(即[transport.tls]内参数),则不需要再启用此参数。
useCompression = false #是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输。
bandwidthLimit = "10MB" #设置单个 proxy 的带宽限流,单位为 MB 或 KB,0 表示不限制,如果启用,默认会作用于对应的 frpc。
bandwidthLimitMode = "client" #限流类型,客户端限流或服务端限流,可选值为 client 和 server,默认为客户端限流。
remotePort = 6000 #服务端绑定的端口,用户访问服务端此端口的流量会被转发到对应的本地服务,默认值6000。
[proxies.loadBalancer] #负载均衡配置,给代理分组。
group = "名称1" #【必填】负载均衡分组名称,用户请求会以轮询的方式发送给同一个 group 中的代理。
groupKey = "xx" #负载均衡分组密钥,用于对负载均衡分组进行鉴权,groupKey 相同的代理才会被加入到同一个分组中。


完整参数配置

通用配置,可放置于frps和frpc

[log] #日志配置
to = "xx.log" #日志输出文件路径,如果不填写,则会将日志打印在标准输出中。
level = "info" #日志级别,可选值为 trace, debug, info, warn, error,默认级别为 info。
maxDays = 3 #日志文件最多保留天数,默认为 3 天。
disablePrintColor = false #禁用标准输出中的日志颜色。

[webServer] #仪表盘配置。
addr = "127.0.0.1" #监听地址,默认为 127.0.0.1。
port = 0 #【必填】监听端口。
user = "name" #仪表盘用户名。
password = "123" #仪表盘密码。
assetsDir = "xx" #静态资源目录,仪表盘使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源。
pprofEnable = false #启动 Go HTTP pprof,用于应用调试。
[webServer.tls] #服务端仪表盘启用 HTTPS 的 TLS 相关配置。
certFile = "xx.cert" #【必填】TLS 证书文件路径。
keyFile = "xx.key" #【必填】TLS 密钥文件路径。
trustedCaFile = "xx" #CA 证书文件路径。
serverName = "" #TLS 服务名称。

frps.toml

bindAddr = "0.0.0.0" #服务端监听地址,用于接收 frpc 的连接,默认监听 0.0.0.0。
bindPort = 7000 #【必填】服务端监听端口,默认值为 7000。
kcpBindPort = 0 #服务端监听 KCP 协议端口,用于接收配置了使用 KCP 协议的 frpc 连接。
quicBindPort = 0 #服务端监听 QUIC 协议端口,用于接收配置了使用 QUIC 协议的 frpc 连接。
proxyBindAddr = "0.0.0.0" #代理监听地址,可以使代理监听在不同的网卡地址,默认情况下同 bindAddr。
vhostHTTPPort = 80 #HTTP 类型代理监听的端口,启用后才能支持 HTTP 类型的代理。
vhostHTTPTimeout = 60 #HTTP 类型代理在服务端的 ResponseHeader 超时时间,默认为 60s。
vhostHTTPSPort = 443 #HTTPS 类型代理监听的端口,启用后才能支持 HTTPS 类型的代理。
tcpmuxHTTPConnectPort = 0 #tcpmux 类型且复用器为 httpconnect 的代理监听的端口。
tcpmuxPassthrough = true #对于 tcpmux 类型的代理是否透传 CONNECT 请求。
subDomainHost = "baicu.com" #自定义二级域名,设置后,frpc端只要设置subdomain就行
custom404Page = "C:\\404.html" #自定义 404 错误页面地址。
enablePrometheus = false #是否提供 Prometheus 监控接口,需要同时启用了[webServer]后才会生效。
detailedErrorsToClient = true #服务端返回详细错误信息给客户端,默认为 true。
maxPortsPerClient = 10 #限制单个客户端最大同时存在的代理数,默认无限制。
userConnTimeout = 10 #用户建立连接后等待客户端响应的超时时间,单位秒,默认为 10 秒。
udpPacketSize = 1500 #代理 UDP 服务时支持的最大包长度,默认为 1500,服务端和客户端的值需要一致。
natholeAnalysisDataReserveHours = 168 #打洞策略数据的保留时间,默认为 168 小时,即 7 天。
allowPorts = [ #允许代理绑定的服务端端口,以此做限制,此写法用于批量添加,遵循Json格式,注意逗号
    { start = 10000, end = 15000 }, #端口范围设置为10000-15000可用
    { start = 30000, end = 40000 }, #同理,可设置多个端口范围开放
    { single = 25565 }, #单端口设置,指定25565端口可用
    { single = 25566 } #同理,可以设置多个单端口开放
]
[[allowPorts]] #allowPorts的第二种写法与上面选其一,此写法用于单一添加
start = 10000 #端口范围的起始值
end = 15000 #端口范围的结束值
single = 25565 #指定单一端口值

httpPlugins = [ #httpPlugins的第二种写法,与上面选其一,服务端 HTTP 插件配置,此写法用于批量添加,遵循Json格式,注意逗号
    { name = "xx", addr = "xx", path = "xx", ops = ["xx", "xx"], tlsVerify = false},
    { name = "xx", addr = "xx", path = "xx", ops = ["xx", "xx"], tlsVerify = false}
]
[[httpPlugins]] #httpPlugins的第二种写法,与上面选其一,此写法用于单一添加
name = "xx" #【必填】插件名称
addr = "xx" #【必填】插件接口的地址
path = "xx" #【必填】插件接口的Path
ops = ["xx", "xx"] #【必填】插件需要生效的操作列表,Login、NewProxy、CloseProxy、Ping、NewWorkConn、NewUserConn,详见官方文档:https://github.com/gofrp/plugin
tlsVerify = false #当插件地址为 HTTPS 协议时,是否校验插件的 TLS 证书,默认为不校验。

[auth] #鉴权配置
method = "token" #鉴权方式,可选值为 token 或 oidc,默认为 token。
additionalScopes = ["xx", "xx"] #鉴权信息附加范围,可选值为 HeartBeats 和 NewWorkConns
token = "xx" #在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。
[auth.oidc] #oidc 鉴权配置
issuer = "xx"
audience = "xx"
skipExpiryCheck = false
skipIssuerCheck = fase

[sshTunnelGateway] #ssh 隧道网关配置。
bindPort = 0 #【必填】SSH 服务器监听端口。
privateKeyFile = "xx" #SSH 服务器私钥文件路径。若为空,frps将读取autoGenPrivateKeyPath路径下的私钥文件。
autoGenPrivateKeyPath = "./.autogen_ssh_key" #私钥文件自动生成路径,默认为./.autogen_ssh_key。若文件不存在或内容为空,frps将自动生成RSA私钥文件并存储到该路径。
authorizedKeysFile = "xx" #SSH 客户端授权密钥文件路径。若为空,则不进行SSH客户端鉴权认证。非空可实现SSH免密登录认证。

[transport] #网络层配置。
tcpMuxKeepaliveInterval = 60 #tcp复用保活时间(心跳间隔),单位秒
tcpKeepalive = 10 #客户端与服务端的保活探测间隔(心跳间隔),单位秒,配置为负数表示不启用。
maxPoolCount = 5 #允许客户端设置的最大连接池大小,如果客户端配置的值大于此值,会被强制修改为最大值,默认为 5。
heartbeatTimeout = 90 #服务端和客户端心跳连接的超时时间,单位秒,默认为 90 秒。
[transport.quic] #QUIC 协议配置参数
keepalivePeriod = 10 #QUIC保活探测间隔默认值为 10 秒。
maxIdleTimeout = 30 #QUIC超时时间,默认值为 30 秒。
maxIncomingStreams = 100000 #QUIC最大输入流大小,单位字节,默认值为 100000。
[transport.tls] #服务端 TLS 协议配置。
force = false #是否只接受启用了 TLS 的客户端连接。
certFile = "xx.cert" #【必填】TLS 证书文件路径。
keyFile = "xx.key" #【必填】TLS 密钥文件路径。
trustedCaFile = "xx" #CA 证书文件路径。
serverName = "" #TLS 服务名称。


frpc.toml

user = "user" #用户名,设置此参数后,代理名称会被修改为 {user}.{代理的name},避免代理名称和其他用户冲突。
serverAddr = "xxx.xxx.xxx.xxx" #【必填】连接服务端的地址。
serverPort = 7000 #【必填】连接服务端的端口,默认为 7000。
natHoleStunServer = "stun.easyvoip.com:3478" #xtcp 打洞所需的 stun 服务器地址,默认为 stun.easyvoip.com:3478。
dnsServer = "255.5.5.5" #使用 DNS 服务器地址,默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址。
loginFailExit = true #第一次登陆失败后是否退出,默认为 true。
start = ["代理的name1", "代理的name2"] #指定启用部分代理,当配置了较多代理,但是只希望启用其中部分时可以通过此参数指定,默认为全部启用。
udpPacketSize = 1500 #代理 UDP 服务时支持的最大包长度,默认为 1500,服务端和客户端需要保持配置一致。
includes = ["配置2.toml", "配置3.toml"] #指定额外的配置文件目录,其中的 proxy 和 visitor 配置会被读取加载。

[metadatas] #附加元数据,会传递给服务端插件,提供附加能力,键值对格式,下面2行是样例
Key1 = "value1"
Key2 = "value2"

proxies = [ #代理配置样例,其他参数详见下方,此写法用于批量添加,遵循Json格式,注意逗号
    {name = "ssh", type = "tcp", localIP = "127.0.0.1", localPort = 22, remotePort = 6000},
    {name = "ssh", type = "tcp", localIP = "127.0.0.1", localPort = 22, remotePort = 6000}
]
[[proxies]] #代理配置的第二种写法与上面选其一,此写法用于单一添加
name = "支持中文" #【必填】代理名称。
type = "tcp" #【必填】代理类型,可选值为 tcp, udp, http, https, tcpmux, stcp, sudp, xtcp。
[proxies.transport] #代理网络层配置。
useEncryption = false #是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输,如果 frpc 启用了全局 TLS(即[transport.tls]内参数),则不需要再启用此参数。
useCompression = false #是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输。
bandwidthLimit = "10MB" #设置单个 proxy 的带宽限流,单位为 MB 或 KB,0 表示不限制,如果启用,默认会作用于对应的 frpc。
bandwidthLimitMode = "client" #限流类型,客户端限流或服务端限流,可选值为 client 和 server,默认为客户端限流。
proxyProtocolVersion = "v2" #代理协议的版本,可选值为 v1 和 v2。如果启用,则 frpc 和本地服务建立连接后会发送 proxy protocol 的协议,包含了原请求的 IP 地址和端口等内容。
[proxies.loadBalancer] #负载均衡配置,给代理分组。
group = "名称1" #【必填】负载均衡分组名称,用户请求会以轮询的方式发送给同一个 group 中的代理。
groupKey = "xx" #负载均衡分组密钥,用于对负载均衡分组进行鉴权,groupKey 相同的代理才会被加入到同一个分组中。
[proxies.healthCheck] #健康检查配置。
type = "tcp" #【必填】健康检查类型,可选值为 tcp 和 http,配置后启用健康检查功能,tcp 是连接成功则认为服务健康,http 要求接口返回 2xx 的状态码则认为服务健康。
timeoutSeconds = 3 #健康检查超时时间(秒),默认为 3s。
maxFailed = 1 #健康检查连续错误次数,连续检查错误多少次认为服务不健康,默认为 1。
intervalSeconds = 10 #健康检查周期(秒),每隔多长时间进行一次健康检查,默认为 10s。
path = "/health" #健康检查的 HTTP 接口,如果健康检查类型是 http,则需要配置此参数,指定发送 http 请求的 path,例如 /health。
httpHeaders = [ #http的请求头,遵循Json格式,注意逗号
    {name = "【必填】Header的name", value = "【必填】Header的value"},
    {name = "【必填】Header的name", value = "【必填】Header的value"}
]
#根据[[proxies]]的代理类型(type),有额外的参数可选,额外参数之间不可混用
#tcp和udp
remotePort = 6000 #服务端绑定的端口,用户访问服务端此端口的流量会被转发到对应的本地服务,默认值6000。
#http
customDomains = ["xx", "xx"] #【与下面必填其一】自定义域名列表
subdomain = "xx" #【与上面必填其一】子域名
locations = ["xx", "xx"] #URL 路由配置。
httpUser = "xx" #HTTP Basic Auth 用户名。
httpPassword = "xx" #HTTP Basic Auth 密码。
hostHeaderRewrite = "xx" #替换 Host Header。
[proxies.requestHeaders.set] #http协议下,对请求 Header 的操作配置,键值对格式,下面2行是样例
Key1 = "value1"
Key2 = "value2"
[proxies.responseHeaders.set] #http协议下,对响应 Header 的操作配置,键值对格式,下面2行是样例
Key1 = "value1"
Key2 = "value2"
routeByHTTPUser = "xx" #根据 HTTP Basic Auth user 路由。
#https
customDomains = ["xx", "xx"] #【与下面必填其一】自定义域名列表
subdomain = "xx" #【与上面必填其一】子域名
#tcpmux
customDomains = ["xx", "xx"] #【与下面必填其一】自定义域名列表
subdomain = "xx" #【与上面必填其一】子域名
httpUser = "xx" #用户名,如果配置此参数,通过 HTTP CONNECT 建立连接时需要通过 Proxy-Authorization 附加上正确的身份信息。
httpPassword = "xx" #密码。
routeByHTTPUser = "xx" #根据 HTTP Basic Auth user 路由。
multiplexer = "xx" #复用器类型,目前仅支持 httpconnect。
#stcp和sudp,和xtcp。
secretKey = "xx" #密钥,服务端和访问端的密钥需要一致,访问端才能访问到服务端。
allowUsers = ["*", "xx"] #允许访问的 visitor 用户列表,默认只允许同一用户下的访问者访问,配置为 * 则允许任何访问者访问。

[proxies.plugin] #客户端插件配置,如果启用了客户端插件,则不需要配置 localIP 和 localPort,流量会由客户端插件接管。不同的插件类型对应不同的配置。
#以下配置选其一,配置下方的参数不可混用
#HTTPProxyPluginOptions配置
type = "http_proxy"
httpUser = "xx" #HTTP 代理用户名。
httpPassword = "xx" #HTTP 代理密码。
#Socks5PluginOptions配置
type = "socks5"
username = "xx" #用户名
password = "xx" #密码
#StaticFilePluginOptions配置
type = "static_file"
localPath = "xx" #【必填】静态文件所在本地路径。
stripPrefix = "xx" #去除用户 HTTP 请求 Path 的特定前缀。
httpUser = "xx" #HTTP Basic Auth 用户名。
httpPassword = "xx" #HTTP Basic Auth 密码。
#UnixDomainSocketPluginOptions
type = "unix_domain_socket"
unixPath = "xx" #【必填】UNIX 域套接字的地址。
#HTTP2HTTPSPluginOptions配置
type = "http2https"
localAddr = "xx" #【必填】本地 HTTPS 服务地址。
hostHeaderRewrite = "xx" #替换 Host header。
#HTTPS2HTTPPluginOptions配置
type = "https2http"
localAddr = "xx" #【必填】本地 HTTPS 服务地址。
hostHeaderRewrite = "xx" #替换 Host header。
enableHTTP2 = true #是否启用 HTTP/2,默认启用。
crtPath = "xxx.pen" #TLS 证书文件路径。
keyPath = "xxx.key" #TLS 密钥文件路径。
#HTTPS2HTTPSPluginOptions配置
type = "https2https"
localAddr = "xx" #【必填】本地 HTTPS 服务地址。
hostHeaderRewrite = "xx" #替换 Host header。
enableHTTP2 = true #是否启用 HTTP/2,默认启用。
crtPath = "xxx.pen" #TLS 证书文件路径。
keyPath = "xxx.key" #TLS 密钥文件路径。
[proxies.plugin.requestHeaders.set] #用于3个http(s)2http(s)的配置中对请求 Header 的操作配置。键值对格式,下面2行是样例
Key1 = "value1"
Key2 = "value2"
#TLS2RawPluginOptions配置
type = "tls2raw"
localAddr = "xx" #【必填】本地 HTTPS 服务地址。
crtPath = "xxx.pen" #TLS 证书文件路径。
keyPath = "xxx.key" #TLS 密钥文件路径。

[proxies.annotations] #代理的注释信息,会被展示在 server 的 dashboard 中。键值对格式,下面2行是样例
Key1 = "value1"
Key2 = "value2"
[proxies.metadatas] #附加元数据,会传递给服务端插件,提供附加能力。。键值对格式,下面2行是样例
Key1 = "value1"
Key2 = "value2"

visitors = [ #访问者样例,其他参数详见下方,此写法用于批量添加,遵循Json格式,注意逗号
    {}
]
[[visitors]] #访问者配置的第二种写法与上面选其一,此写法用于单一添加
name = "xx" #【必填】访问者名称。
type = "stcp" #【必填】访问者类型,可选值为 stcp, sudp, xtcp。
secretKey = "xx" #密钥,服务端和访问端的密钥需要一致,访问端才能访问到服务端。
serverUser = "xx" #要访问的 proxy 所属的用户名,如果为空,则默认为当前用户。
serverName = "xx" #【必填】要访问的 proxy 名称。
bindAddr = "127.0.0.1" #访问者监听的本地地址,通过访问监听的地址和端口,连接到远端代理的服务。
bindPort = 22 #【必填】访问者监听的本地端口,如果为 -1,表示不需要监听物理端口,通常可以用于作为其他 visitor 的 fallback。
[visitors.transport] #访问者网络层配置。
useEncryption = false #是否启用加密功能,启用后该代理和服务端之间的通信内容都会被加密传输,如果 frpc 启用了全局 TLS(即[transport.tls]内参数),则不需要再启用此参数。
useCompression = false #是否启用压缩功能,启用后该代理和服务端之间的通信内容都会被压缩传输。
#xtcp的额外可选参数
protocol = "quic" #隧道底层通信协议,可选 quic 和 kcp,默认为 quic。
keepTunnelOpen = false #是否保持隧道打开,如果开启,会定期检查隧道状态并尝试保持打开。
maxRetriesAnHour = 8 #每小时尝试打开隧道的次数,默认值为 8。
minRetryInterval = 90 #重试打开隧道的最小间隔时间,单位: 秒,默认为 90s。
fallbackTo = "xx" #回退到的其他 visitor 名称。
fallbackTimeoutMs = 2000 #连接建立超过多长时间(ms) 后回退到其他 visitor。

[auth] #鉴权配置
method = "token" #鉴权方式,可选值为 token 或 oidc,默认为 token。
additionalScopes = ["xx", "xx"] #鉴权信息附加范围,可选值为 HeartBeats 和 NewWorkConns
token = "xx" #在 method 为 token 时生效,客户端需要设置一样的值才能鉴权通过。
[auth.oidc] #oidc 鉴权配置
clientID = "xx"
clientSecret = "xx"
audience = "xx"
scope = "xx"
tokenEndpointURL = "xx"
[auth.oidc.additionalEndpointParams] #键值对格式,下面2行是样例
Key1 = "value1"
Key2 = "value2"

[transport] #全局网络层配置。
protocol = "tcp" #和 frps 之间的通信协议,可选值为 tcp, kcp, quic, websocket, wss。默认为 tcp。
dialServerTimeout = 10 #连接服务端的超时时间,默认为 10s。
dialServerKeepalive = 10 #和服务端底层 TCP 连接的 keepalive 间隔时间,单位秒。
connectServerLocalIP = "127.0.0.1" #连接服务端时所绑定的本地 IP。
proxyURL = "xx://user:pwd@host:port" #连接服务端使用的代理地址,格式为 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm。
poolCount = 100 #连接池大小。
tcpMux = true #TCP 多路复用,默认启用。
tcpMuxKeepaliveInterval = 10 #tc复用的心跳检查间隔时间。
heartbeatInterval = 30 #向服务端发送心跳包的间隔时间,默认为 30s。建议启用 tcp_mux_keepalive_interval,将此值设置为 -1。
heartbeatTimeout = 90 #和服务端心跳的超时时间,默认为 90s。
[transport.quic] #全局QUIC协议配置参数
keepalivePeriod = 10 #QUIC保活探测间隔默认值为 10 秒。
maxIdleTimeout = 30 #QUIC超时时间,默认值为 30 秒。
maxIncomingStreams = 100000 #QUIC最大输入流大小,单位字节,默认值为 100000。
[transport.tls] #全局TLS 协议配置。
enable = true #是否和服务端之间启用 TLS 连接,默认启用。
disableCustomTLSFirstByte = true #启用 TLS 连接时,不发送 0x17 特殊字节。默认为 true。当配置为 true 时,无法和 vhostHTTPSPort 端口复用。
certFile = "xx.cert" #【必填】TLS 证书文件路径。
keyFile = "xx.key" #【必填】TLS 密钥文件路径。
trustedCaFile = "xx" #CA 证书文件路径。
serverName = "" #TLS 服务名称。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值