Frp.ini

Copy
# [common] 是整个配置文件的共用部分
[common]
# IPv6地址或主机名必须用方括号括起来，例如"[::1]:80"、"[ipv6-host]:http"或"[ipv6-host%zone]:80"
# 对于单个的"server_addr"字段，不需要方括号，例如"server_addr = ::"
server_addr = 0.0.0.0
server_port = 7000

# STUN服务器用于帮助穿透NAT防火墙
# nat_hole_stun_server = stun.easyvoip.com:3478

# 连接服务器的最长等待时间，默认为10秒
# dial_server_timeout = 10

# dial_server_keepalive指定frpc与frps之间活动网络连接的保活探测间隔
# 如果值为负数，则禁用保活探测。
# dial_server_keepalive = 7200

# 如果你想通过HTTP代理、SOCKS5代理或NTLM代理连接frps，可以在这里设置http_proxy，或在全局环境变量中设置
# 只有在协议为tcp时才有效
# http_proxy = http://user:passwd@192.168.1.128:8080
# http_proxy = socks5://user:passwd@192.168.1.128:1080
# http_proxy = ntlm://user:passwd@192.168.1.128:2080

# 控制台或实际日志文件路径，如./frpc.log
log_file = ./frpc.log

# 跟踪、调试、信息、警告、错误
log_level = info

log_max_days = 3

# 当log_file为console时禁用日志颜色，默认为false
disable_log_color = false

# 用于身份验证的配置，应与frps.ini中的配置相同
# authenticate_heartbeats指定是否在发送到frps的心跳中包含身份验证令牌。默认为false。
authenticate_heartbeats = false

# authenticate_new_work_conns指定是否在发送到frps的新工作连接中包含身份验证令牌。默认为false。
authenticate_new_work_conns = false

# 认证令牌
token = 12345678

authentication_method =

# 如果AuthenticationMethod == "oidc"，oidc_client_id指定获取OIDC身份验证令牌时要使用的客户端ID。
# 默认为空字符串。
oidc_client_id =

# 如果AuthenticationMethod == "oidc"，oidc_client_secret指定获取OIDC身份验证令牌时要使用的客户端密钥。
# 默认为空字符串。
oidc_client_secret =

# 如果AuthenticationMethod == "oidc"，oidc_audience指定OIDC身份验证令牌的受众。默认为空字符串。
oidc_audience =

# 如果AuthenticationMethod == "oidc"，oidc_scope指定OIDC身份验证令牌的权限。默认为空字符串。
oidc_scope =

# 如果AuthenticationMethod == "oidc"，oidc_token_endpoint_url指定实现OIDC令牌端点的URL。
# 如果AuthenticationMethod == "oidc"，默认值为空字符串。
oidc_token_endpoint_url =

# oidc_additional_xxx指定要发送到OIDC令牌端点的其他参数。
# 例如，如果要指定"audience"参数，可以设置如下：
# frp将向附加参数添加"audience=<value>" "var1=<value>"。
# oidc_additional_audience = https://dev.auth.com/api/v2/
# oidc_additional_var1 = foobar

# 为通过HTTP API控制frpc的操作设置管理地址，例如重新加载
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_pwd = admin
# 管理资源文件目录。默认情况下，这些资源与frpc捆绑在一起。
# assets_dir = ./static

# 预先建立的连接数，默认值为零
pool_count = 5

# 如果使用了TCP流多路复用，默认为true，它必须与frps相同
# tcp_mux = true

# 指定TCP多路复用的保活间隔。
# 仅当tcp_mux为true时有效。
# tcp_mux_keepalive_interval = 60

# 在连接服务器时使用的客户端绑定IP， 默认为空。
# 只有在协议为tcp或websocket时才会使用该值。
connect_server_local_ip = 0.0.0.0

# QUIC协议选项
# quic_keepalive_period = 10
# quic_max_idle_timeout = 30
# quic_max_incoming_streams = 100000

# 如果tls_enable为true，则frpc将通过tls连接到frps。
# 从v0.50.0开始，默认值已更改为true，并且默认启用tls。
tls_enable = true

# tls_cert_file = client.crt
# tls_key_file = client.key
# tls_trusted_ca_file = ca.crt
# tls_server_name = example.com

# 指定DNS服务器，这样frpc将使用此DNS服务器而不是默认的DNS服务器
# dns_server = 8.8.8.8

# 要启动的代理名称，用逗号分隔
# 默认为空，表示所有代理
# start = ssh,dns

# 心跳配置，不建议修改默认值
# heartbeat_interval的默认值为10，heartbeat_timeout的默认值为90。设置负值将禁用它。
# heartbeat_interval = 30
# heartbeat_timeout = 90

# 客户端的附加元信息
meta_var1 = 123
meta_var2 = 234

# 指定UDP数据包大小，单位为字节。如果未设置，则默认值为1500。
# 此参数应在客户端和服务器之间相同。
# 它影响UDP和SUDP代理。
udp_packet_size = 1500

# 包括其他配置文件以用于代理。
# includes = ./confd/*.ini

# 如果disable_custom_tls_first_byte设置为false，则frpc将使用第一个自定义字节与frps建立连接
# 当启用tls时，默认值已更改为true，默认情况下禁用第一个

自定义字节。

disable_custom_tls_first_byte = true

# 在admin侦听器中启用Golang pprof处理程序。
# 必须先设置Admin端口。
pprof_enable = false

# 'ssh'是唯一的代理名称
# 如果[common]部分中的user不为空，它将更改为{user}.{proxy}，例如'your_name.ssh'
[ssh]
# tcp | udp | http | https | stcp | xtcp，默认为tcp
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 限制此代理的带宽，单位为KB和MB
bandwidth_limit = 1MB
# 带宽限制的位置，可以是'client'或'server'，默认为'client'
bandwidth_limit_mode = client
# true或false，如果为true，frps和frpc之间的消息将被加密，默认为false
use_encryption = false
# 如果为true，消息将被压缩
use_compression = false
# frps监听的远程端口
remote_port = 6001
# frps将为同一组中的代理进行负载均衡
group = test_group
# 组应具有相同的组密钥
group_key = 123456
# 为后端服务启用健康检查，目前支持'tcp'和'http'
# frpc将连接到本地服务的端口以检测其健康状态
health_check_type = tcp
# 健康检查连接超时
health_check_timeout_s = 3
# 如果连续失败3次，则从frps中删除该代理
health_check_max_failed = 3
# 每10秒进行一次健康检查
health_check_interval_s = 10
# 每个代理的附加元信息
meta_var1 = 123
meta_var2 = 234

[ssh_random]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 如果remote_port为0，frps将为您分配一个随机端口
remote_port = 0

# 如果要公开多个端口，请在节名前添加“range:”前缀
# frpc将生成多个代理，例如'tcp_port_6010'，'tcp_port_6011'等等。
[range:tcp_port]
type = tcp
local_ip = 127.0.0.1
local_port = 6010-6020,6022,6024-6028
remote_port = 6010-6020,6022,6024-6028
use_encryption = false
use_compression = false

[dns]
type = udp
local_ip = 114.114.114.114
local_port = 53
remote_port = 6002
use_encryption = false
use_compression = false

[range:udp_port]
type = udp
local_ip = 127.0.0.1
local_port = 6010-6020
remote_port = 6010-6020
use_encryption = false
use_compression = false

# 将您的域名解析为[server_addr]，这样您就可以使用http://web01.yourdomain.com浏览web01，
# 使用http://web02.yourdomain.com浏览web02
[web01]
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
# http的用户名和密码是http协议的安全证书
# 如果未设置，您可以在没有证书的情况下访问这些custom_domains
http_user = admin
http_pwd = admin
# 如果frps的域名为frps.com，那么您可以通过URL http://web01.frps.com访问[web01]代理
subdomain = web01
custom_domains = web01.yourdomain.com
# 仅适用于http类型
locations = /,/pic
# 如果http basic auto user是abc，则将请求路由到此服务
# route_by_http_user = abc
host_header_rewrite = example.com
# 带前缀“header_”的参数将用于更新http请求头
header_X-From-Where = frp
health_check_type = http
# frpc将向本地http服务发送GET http请求'/status'
# 仅当返回2xx http响应代码时，http服务才是正常的
health_check_url = /status
health_check_interval_s = 10
health_check_max_failed = 3
health_check_timeout_s = 3

[web02]
type = https
local_ip = 127.0.0.1
local_port = 8000
use_encryption = false
use_compression = false
subdomain = web02
custom_domains = web02.yourdomain.com
# 如果不为空，frpc将使用代理协议将连接信息传输给本地服务
# v1或v2或空
proxy_protocol_version = v2

[plugin_unix_domain_socket]
type = tcp
remote_port = 6003
# 如果定义了plugin，local_ip和local_port无用
# plugin将处理从frps得到的连接
plugin = unix_domain_socket
# plugin所需的具有前缀“plugin_”的参数
plugin_unix_path = /var/run/docker.sock

[plugin_http_proxy]
type = tcp
remote_port = 6004
plugin = http_proxy
plugin_http_user = abc
plugin_http_passwd = abc

[plugin_socks5]
type = tcp
remote_port = 6005
plugin = socks5
plugin_user = abc
plugin_passwd = abc

[plugin_static_file]
type = tcp
remote_port = 6006
plugin = static_file
plugin_local_path = /var/www/blog
plugin_strip_prefix = static
plugin_http_user = abc
plugin_http_passwd = abc

[plugin_https2http]
type = https
custom_domains = test.yourdomain.com
plugin = https2http
plugin_local_addr = 127.0.0.1:80
plugin_crt_path = ./server.crt
plugin_key_path = ./server.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

[plugin_https2https]
type = https
custom_domains = test.yourdomain.com
plugin = https2https
plugin_local_addr = 127.0.0.1:443
plugin_crt_path = ./server.crt
plugin_key_path = ./server.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From

-Where = frp

[plugin_http2https]
type = http
custom_domains = test.yourdomain.com
plugin = http2https
plugin_local_addr = 127.0.0.1:443
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

[secret_tcp]
# 如果类型是secret tcp，则remote_port无用
# 想要连接本地端口的用户应部署另一个具有stcp代理和角色为visitor的frpc
type = stcp
# 用于访客身份验证的sk
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
use_encryption = false
use_compression = false
# 如果不为空，只有指定用户的访客才能连接。
# 否则，同一用户的访客可以连接。'*'表示允许所有用户。
allow_users = *

# frpc的用户应该与stcp服务器和stcp访客中的用户相同
[secret_tcp_visitor]
# frpc角色为visitor -> frps -> frpc角色为server
role = visitor
type = stcp
# 您要访问的服务器名称
server_name = secret_tcp
sk = abcdefg
# 将连接到visitor stcp服务器的地址
bind_addr = 127.0.0.1
# bind_port可以小于0，表示不绑定到端口，只接收从
# 其他访客重定向的连接。（SUDP目前不支持此功能）
bind_port = 9000
use_encryption = false
use_compression = false

[p2p_tcp]
type = xtcp
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22
use_encryption = false
use_compression = false
# 如果不为空，只有指定用户的访客才能连接。
# 否则，同一用户的访客可以连接。'*'表示允许所有用户。
allow_users = user1, user2

[p2p_tcp_visitor]
role = visitor
type = xtcp
# 如果服务器用户未设置，则默认为当前用户
server_user = user1
server_name = p2p_tcp
sk = abcdefg
bind_addr = 127.0.0.1
# bind_port可以小于0，表示不绑定到端口，只接收从
# 其他访客重定向的连接。（SUDP目前不支持此功能）
bind_port = 9001
use_encryption = false
use_compression = false
# 当需要自动隧道持久性时，将其设置为true
keep_tunnel_open = false
# keep_tunnel_open设置为true时生效，每小时尝试穿透的次数
max_retries_an_hour = 8
min_retry_interval = 90
# fallback_to = stcp_visitor
# fallback_timeout_ms = 500

[tcpmuxhttpconnect]
type = tcpmux
multiplexer = httpconnect
local_ip = 127.0.0.1
local_port = 10701
custom_domains = tunnel1
# route_by_http_user = user1