frps.toml的中文注释说明
# 必须包含 IPv6 的文字地址或主机名
# 在方括号中,如”[::1]:80″、”[ipv6-host]:http”或”[ipv6-host%zone]:80″
# 对于单个”bind_addr”字段,不需要方括号,如”bind_addr = ::”。
bindAddr = “0.0.0.0”
bindPort = 7000
# 用于 kcp 协议的 udp 端口,可以与 ‘bind_port’ 相同。
# 如果未设置,kcp 在 frps 中被禁用。
kcpBindPort = 7000
# 用于 quic 协议的 udp 端口。
# 如果没有设置,quic 在 frps 中被禁用。
# quicBindPort = 7002
# 指定代理监听哪个地址,默认值与bind_addr相同
# proxy_bind_addr = “127.0.0.1”
# quic协议选项
# transport.quic.keepalivePeriod = 10
# transport.quic.maxIdleTimeout = 30
# transport.quic.maxIncomingStreams = 100000
# 心跳配置,不建议修改默认值
# heartbeat_timeout 默认值为 90。设置负值即可禁用。
# transport.heartbeatTimeout = 90
# 每个代理中的池计数将不超过 maxPoolCount。
transport.maxPoolCount = 5
# 如果使用tcp流复用,默认为true
# transport.tcpMux = true
# 指定 tcp mux 的保持活动间隔。
# 仅当 tcpMux 为 true 时才有效。
# transport.tcpMuxKeepaliveInterval = 60
# tcpKeepalive 指定 frpc 和 frps 之间活动网络连接的 keep-alive 探测之间的时间间隔。
# 如果为负,则禁用保持活动探测。
# transport.tcpKeepalive = 7200
# Transport.tls.force 指定是否只接受 TLS 加密的连接。 默认情况下,该值为 false。
tls.force = false
# transport.tls.certFile = “server.crt”
# transport.tls.keyFile = “server.key”
# transport.tls.trustedCaFile = “ca.crt”
# 如果要支持虚拟主机,必须设置监听的http端口(可选)
# 注意:http端口和https端口可以与bind_port相同
vhostHTTPPort = 80
vhostHTTPSPort = 443
# vhost http服务器的响应头超时(秒),默认为60秒
# vhostHTTPTimeout = 60
# tcpmuxHTTPConnectPort 指定服务器监听 TCP 的端口
# HTTP CONNECT 请求。 如果值为0,服务器不会复用TCP
# 单个端口上的请求。 如果不是 – 它将监听这个值
# HTTP CONNECT 请求。 默认情况下,该值为 0。
# tcpmuxHTTPConnectPort = 1337
# 如果 tcpmux_passthrough 为 true,frps 不会对流量进行任何更新。
# tcpmuxPassthrough = false
# 配置Web服务器以启用frps的仪表板。
# 仅当设置了 webServer.port 时,仪表板才可用。
webServer.addr = “127.0.0.1”
webServer.port = 7500
webServer.user = “admin”
webServer.password = “admin”
# webServer.tls.certFile = “server.crt”
# webServer.tls.keyFile = “server.key”
# dashboard assets directory(only for debug mode)
# webServer.assetsDir = “./static”
# 在仪表板监听器中启用 golang pprof 处理程序。
# 必须首先设置仪表板端口
# webServer.pprofEnable = false
#enablePrometheus 将在 /metrics api 中导出 webServer 上的 prometheus 指标。
# enablePrometheus = true
# 控制台或真实日志文件路径,如 ./frps.log
log.to = “./frps.log”
# trace, debug, info, warn, error
log.level = “info”
log.maxDays = 3
# 当 log.to 为控制台时禁用日志颜色,默认为 false
log.disablePrintColor = false
#DetailedErrorsToClient 定义是否将特定错误(带有调试信息)发送到 frpc。 默认情况下,该值为 true。
detailedErrorsToClient = true
# auth.method 指定使用什么身份验证方法对 frpc 和 frps 进行身份验证。
# 如果指定了”token” – 令牌将被读入登录消息。
# 如果指定”oidc” – 将使用 OIDC 设置颁发 OIDC(开放 ID 连接)令牌。 默认情况下,该值为”token”。
auth.method = “token”
# auth.additionalScopes 指定包含身份验证信息的附加范围。
# 可选值为 HeartBeats、NewWorkConns。
# auth.additionalScopes = [“HeartBeats”, “NewWorkConns”]
# auth token
auth.token =”123456″
# oidc 发行者指定验证 OIDC 令牌的发行者。
# auth.oidc.issuer = “”
# oidcaudience 指定验证时 OIDC 令牌应包含的受众。
# auth.oidc.audience = “”
# oidc SkipExpiryCheck 指定是否在 OIDC 令牌过期时跳过检查。
# auth.oidc.skipExpiryCheck = false
# oidc skipIssuerCheck 指定是否跳过检查 OIDC 令牌的颁发者声明是否与 OidcIssuer 中指定的颁发者匹配。
# auth.oidc.skipIssuerCheck = false
# userConnTimeout 指定等待工作连接的最长时间。
# userConnTimeout = 10
# 只允许 frpc 绑定您列出的端口。 默认情况下,不会有任何限制。
# allowPorts = [
# { start = 2000, end = 3000 },
# { single = 3001 },
# { single = 3003 },
# { start = 4000, end = 50000 }
# ]
# 每个客户端可以使用的最大端口数,默认值为0表示无限制
maxPortsPerClient = 0
# 如果subDomainHost不为空,则可以在frpc的配置文件中设置type为http或https时的子域名
# subDomainHost = “frps.com”
# subdomain为test时,路由使用的host为test.frps.com
# subDomainHost = “*.proxy.frps.com”
# subdomain为test时,路由使用的host为test.proxy.frps.com
# HTTP 请求的自定义 404 页面
# custom404Page = “/path/to/404.html”
# 指定udp数据包大小,单位为字节。 如果未设置,则默认值为 1500。
# 这个参数在客户端和服务器之间应该是相同的。
# 它影响 udp 和 sudp 代理。
udpPacketSize = 1500
# NAT打洞策略数据的保留时间。
natholeAnalysisDataReserveHours = 168
# [[http插件]]
# name = “user-manager”
# addr = “127.0.0.1:9000”
# path = “/handler”
# ops = [“Login”]
# [[http插件]]
# name = “port-manager”
# addr = “127.0.0.1:9001”
# path = “/handler”
# ops = [“NewProxy”]
配置使用之前记得验证一下,是否正常
./frps verify -c frps.toml
frpc.toml的中文注释说明
# 您的代理名称将更改为 {user}.{proxy}
user = “your_name”
# 必须包含 IPv6 的文字地址或主机名
# 在方括号中,如”[::1]:80″、”[ipv6-host]:http”或”[ipv6-host%zone]:80″
# 对于单个 serverAddr 字段,不需要方括号,如 serverAddr = “::”。
serverAddr = “0.0.0.0”
serverPort = 7000
# STUN 服务器帮助穿透 NAT 漏洞。
# natHoleStunServer = “stun.easyvoip.com:3478”
# 决定首次登录失败是否退出程序,否则不断重新登录frps
# 默认为真
loginFailExit = true
# 控制台或真实日志文件路径,如 ./frpc.log
log.to = “./frpc.log”
# trace, debug, info, warn, error
log.level = “info”
log.maxDays = 3
# 当 log.to 为控制台时禁用日志颜色,默认为 false
log.disablePrintColor = false
auth.method = “token”
# auth.additionalScopes 指定包含身份验证信息的附加范围。
# 可选值为 HeartBeats、NewWorkConns。
# auth.additionalScopes = [“HeartBeats”, “NewWorkConns”]
# 授权令牌
auth.token = “12345678”
# oidc.clientID 指定用于在 OIDC 身份验证中获取令牌的客户端 ID。
# auth.oidc.clientID = “”
# oidc.clientSecret 指定用于在 OIDC 身份验证中获取令牌的客户端密钥。
# auth.oidc.clientSecret = “”
# oidc.audience 指定 OIDC 认证中令牌的受众。
# auth.oidc.audience = “”
# oidc_scope 指定 OIDC 身份验证中令牌的权限,如果 AuthenticationMethod == “oidc”。 默认情况下,该值为””。
# auth.oidc.scope = “”
# oidc.tokenEndpointURL 指定实现 OIDC 令牌端点的 URL。
# 它将用于获取 OIDC 令牌。
# auth.oidc.tokenEndpointURL = “”
# oidc.additionalEndpointParams 指定要发送到 OIDC 令牌端点的附加参数。
# 例如,如果要指定”audience”参数,可以如下设置。
# frp 会将”audience=”、”var1=”添加到附加参数中。
# auth.oidc.additionalEndpointParams.audience = “https://dev.auth.com/api/v2/”
# auth.oidc.additionalEndpointParams.var1 = “foobar”
# 设置管理地址,用于通过http api控制frpc的动作,如reload
webServer.addr = “127.0.0.1”
webServer.port = 7400
webServer.user = “admin”
webServer.password = “admin”
# 管理资产目录。 默认情况下,这些资源与 frpc 捆绑在一起。
# webServer.assetsDir = “./static”
# 在管理监听器中启用 golang pprof 处理程序。
webServer.pprofEnable = false
# 拨号到服务器等待连接完成的最长时间。 默认值为 10 秒。
# transport.dialServerTimeout = 10
# dialServerKeepalive 指定 frpc 和 frps 之间活动网络连接的 keep-alive 探测之间的时间间隔。
# 如果为负,则禁用保持活动探测。
# transport.dialServerKeepalive = 7200
# 连接将提前建立,默认值为零
transport.poolCount = 5
# 如果使用tcp流复用,默认为true,必须与frps相同
# transport.tcpMux = true
# 指定 tcp mux 的保持活动间隔。
# 仅当 tcpMux 启用时才有效。
# transport.tcpMuxKeepaliveInterval = 60
# 用于连接服务器的通信协议
# 现在支持 tcp、kcp、quic、websocket 和 wss,默认为 tcp
transport.protocol = “tcp”
# 设置客户端连接服务器时绑定的ip,默认为空。
# 仅当protocol = tcp或websocket时,才会使用该值。
transport.connectServerLocalIP = “0.0.0.0”
# 如果你想通过http代理或者socks5代理或者ntlm代理连接frps,可以在这里或者全局环境变量中设置proxyURL
# 仅当协议为 tcp 时才有效
# 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协议选项
# transport.quic.keepalivePeriod = 10
# transport.quic.maxIdleTimeout = 30
# transport.quic.maxIncomingStreams = 100000
# 如果tls.enable为true,frpc将通过tls连接frps。
# 从v0.50.0开始,默认值改为true,并且默认启用tls。
transport.tls.enable = true
# transport.tls.certFile = “client.crt”
# transport.tls.keyFile = “client.key”
# transport.tls.trustedCaFile = “ca.crt”
# transport.tls.serverName = “example.com”
# 如果disableCustomTLSFirstByte设置为false,frpc将使用以下方式与frps建立连接
# 启用 tls 时的第一个自定义字节。
# 从v0.50.0开始,默认值改为true,并且默认禁用第一个自定义字节。
# transport.tls.disableCustomTLSFirstByte = true
# 心跳配置,不建议修改默认值。
# heartbeat_interval默认值为10,heartbeat_timeout默认为90。设置负值禁用它。
# transport.heartbeatInterval = 30
# transport.heartbeatTimeout = 90
# 指定一个dns服务器,这样frpc将使用它而不是默认的
# dnsServer = “8.8.8.8”
# 您要启动的代理名称。
# 默认为空,表示所有代理。
# start = [“ssh”, “dns”]
# 指定udp数据包大小,单位为字节。 如果未设置,则默认值为 1500。
# 这个参数在客户端和服务器之间应该是相同的。
# 它影响 udp 和 sudp 代理。
udpPacketSize = 1500
# 客户端的附加元数据。
metadatas.var1 = “abc”
metadatas.var2 = “123”
# 包含代理的其他配置文件。
# includes = [“./confd/*.ini”]
[[proxies]]
# ‘ssh’ 是唯一的代理名称
# 如果全局用户不为空,则改为{user}.{proxy} 如’your_name.ssh’
name = “ssh”
type = “tcp”
localIP = “127.0.0.1”
localPort = 22
# 限制该代理的带宽,单位是KB和MB
transport.bandwidthLimit = “1MB”
# 限制带宽的地方,可以是’client’或’server’,默认是’client’
transport.bandwidthLimitMode = “client”
# 如果为 true,则该代理的流量将被加密,默认为 false
transport.useEncryption = false
# 如果为 true,流量将被压缩
transport.useCompression = false
# 通过frps监听远程端口
remotePort = 6001
# frps 将为同一组中的代理负载平衡连接
loadBalancer.group = “test_group”
# 组应该有相同的组密钥
loadBalancer.groupKey = “123456”
# 为后端服务启用健康检查,现在支持’tcp’和’http’。
# frpc 将连接本地服务的端口来检测其健康状态
healthCheck.type = “tcp”
# 健康检查连接超时
healthCheck.timeoutSeconds = 3
# 如果连续3次失败,代理将从frps中移除
healthCheck.maxFailed = 3
# 每10秒会进行一次健康检查
healthCheck.intervalSeconds = 10
# 每个代理的附加元信息
metadatas.var1 = “abc”
metadatas.var2 = “123”
[[proxies]]
name = “ssh_random”
type = “tcp”
localIP = “192.168.31.100”
localPort = 22
# 如果remote_port为0,frps会为你分配一个随机端口
remotePort = 0
[[proxies]]
name = “dns”
type = “udp”
localIP = “114.114.114.114”
localPort = 53
remotePort = 6002
# 将您的域名解析为 [server_addr],以便您可以使用 http://web01.yourdomain.com 浏览 web01,使用 http://web02.yourdomain.com 浏览 web02
[[proxies]]
name = “web01”
type = “http”
localIP = “127.0.0.1”
localPort = 80
# http用户名和密码是http协议的安全认证
# 如果不设置,无需认证即可访问此custom_domains
httpUser = “admin”
httpPassword = “admin”
# 如果frps的域名是frps.com,那么您可以通过URL http://web01.frps.com访问[web01]代理
subdomain = “web01”
customDomains = [“web01.yourdomain.com”]
# 位置仅适用于 http 类型
locations = [“/”, “/pic”]
# 如果 http 基本自动用户是 abc,则将请求路由到此服务
# route_by_http_user = abc
hostHeaderRewrite = “example.com”
# 带有前缀”header_”的参数将用于更新http请求头
requestHeaders.set.x-from-where = “frp”
healthCheck.type = “http”
# frpc 将向本地 http 服务发送 GET http 请求 ‘/status’
# 当 http 服务返回 2xx http 响应代码时,它就处于活动状态
healthCheck.path = “/status”
healthCheck.intervalSeconds = 10
healthCheck.maxFailed = 3
healthCheck.timeoutSeconds = 3
[[proxies]]
name = “web02”
type = “https”
localIP = “127.0.0.1”
localPort = 8000
subdomain = “web02”
customDomains = [“web02.yourdomain.com”]
# 如果不为空,frpc将使用代理协议将连接信息传输到您的本地服务
# v1 或 v2 或空
transport.proxyProtocolVersion = “v2”
[[proxies]]
name = “tcpmuxhttpconnect”
type = “tcpmux”
multiplexer = “httpconnect”
localIP = “127.0.0.1”
localPort = 10701
customDomains = [“tunnel1”]
# routeByHTTPUser = “user1”
[[proxies]]
name = “plugin_unix_domain_socket”
type = “tcp”
remotePort = 6003
# 如果定义了plugin,local_ip和local_port就没用了
# 插件将处理从 frps 获得的连接
[proxies.plugin]
type = “unix_domain_socket”
unixPath = “/var/run/docker.sock”
[[proxies]]
name = “plugin_http_proxy”
type = “tcp”
remotePort = 6004
[proxies.plugin]
type = “http_proxy”
httpUser = “abc”
httpPassword = “abc”
[[proxies]]
name = “plugin_socks5”
type = “tcp”
remotePort = 6005
[proxies.plugin]
type = “socks5”
username = “abc”
password = “abc”
[[proxies]]
name = “plugin_static_file”
type = “tcp”
remotePort = 6006
[proxies.plugin]
type = “static_file”
localPath = “/var/www/blog”
stripPrefix = “static”
httpUser = “abc”
httpPassword = “abc”
[[proxies]]
name = “plugin_https2http”
type = “https”
customDomains = [“test.yourdomain.com”]
[proxies.plugin]
type = “https2http”
localAddr = “127.0.0.1:80”
crtPath = “./server.crt”
keyPath = “./server.key”
hostHeaderRewrite = “127.0.0.1”
requestHeaders.set.x-from-where = “frp”
[[proxies]]
name = “plugin_https2https”
type = “https”
customDomains = [“test.yourdomain.com”]
[proxies.plugin]
type = “https2https”
localAddr = “127.0.0.1:443”
crtPath = “./server.crt”
keyPath = “./server.key”
hostHeaderRewrite = “127.0.0.1”
requestHeaders.set.x-from-where = “frp”
[[proxies]]
name = “plugin_http2https”
type = “http”
customDomains = [“test.yourdomain.com”]
[proxies.plugin]
type = “http2https”
localAddr = “127.0.0.1:443”
hostHeaderRewrite = “127.0.0.1”
requestHeaders.set.x-from-where = “frp”
[[proxies]]
name = “secret_tcp”
# 如果类型是secret tcp,则remote_port没有用
# 如果想要连接本地端口,需要部署另一个带有stcp代理的frpc,角色是visitor
type = “stcp”
# secretKey is used for authentication for visitors
secretKey = “abcdefg”
localIP = “127.0.0.1”
localPort = 22
# 如果不为空,则只有指定用户的访问者可以连接。
# 否则,来自同一用户的访问者可以连接。 ‘*’ 表示允许所有用户。
allowUsers = [“*”]
[[proxies]]
name = “p2p_tcp”
type = “xtcp”
secretKey = “abcdefg”
localIP = “127.0.0.1”
localPort = 22
# 如果不为空,则只有指定用户的访问者可以连接。
# 否则,来自同一用户的访问者可以连接。 ‘*’ 表示允许所有用户。
allowUsers = [“user1”, “user2”]
# frpc 角色访问者 -> frps -> frpc 角色服务器
[[visitors]]
name = “secret_tcp_visitor”
type = “stcp”
# 您要访问的服务器名称
serverName = “secret_tcp”
secretKey = “abcdefg”
#将此地址连接到访客stcp服务器
bindAddr = “127.0.0.1”
#bindPort可以小于0,表示不绑定端口,只接收重定向的连接
# 其他访客。 (目前SUDP不支持)
bindPort = 9000
[[visitors]]
name = “p2p_tcp_visitor”
type = “xtcp”
# 如果不设置服务器用户,则默认为当前用户
serverUser = “user1”
serverName = “p2p_tcp”
secretKey = “abcdefg”
bindAddr = “127.0.0.1”
#bindPort可以小于0,表示不绑定端口,只接收重定向的连接其他访客。 (目前SUDP不支持)
bindPort = 9001
# 当需要自动隧道持久化时,设置为true
keepTunnelOpen = false
# keep_tunnel_open设置为true时有效,每小时尝试打通的次数
maxRetriesAnHour = 8
minRetryInterval = 90
# fallbackTo = “stcp_visitor”
# fallbackTimeoutMs = 500
Comments | NOTHING