Skip to content
On this page

Frpc 配置

修改 frpc.ini

[common]
 server_addr = frp.moeyy.xyz
 server_port = 7000
 token = moeyy.cn

 # 穿透需要 Web 访问的内网服务,例如群晖 NAS DSM 的管理界面。
[moeyy01_http]
 type = http
 local_ip = 127.0.0.1
 local_port = 80
 custom_domains = www.test.com

[moeyy01_https]
 type = https
 local_ip = 127.0.0.1
 local_port = 443
 custom_domains = www.test.com

#穿透需要 tcp 连接的内网服务,例如 SSH 的 22 端口或者 3389 的 Windowws 远程访问端口。
[moeyy01_linux_ssh]
 type = tcplocal
 ip = 192.168.1.5
 local _port = 22
 remote_port = 22222

[moeyy01_windows_rdp]
 type = tcp
 local_ip = 192.168.1.6
 local port = 3389
 remote_port = 33333

基础配置

参数类型说明默认值可选值备注
server_addrstring连接服务端的地址0.0.0.0
server_portint连接服务端的端口7000
nat_hole_stun_serverstringxtcp 打洞所需的 stun 服务器地址stun.easyvoip.com:3478
connect_server_local_ipstring连接服务端时所绑定的本地 IP
dial_server_timeoutint连接服务端的超时时间10
dial_server_keepaliveint和服务端底层 TCP 连接的 keepalive 间隔时间,单位秒7200负数不启用
http_proxystring连接服务端使用的代理地址格式为 {protocol}😕/user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm
log_filestring日志文件地址./frpc.log如果设置为 console,会将日志打印在标准输出中
log_levelstring日志等级infotrace, debug, info, warn, error
log_max_daysint日志文件保留天数3
disable_log_colorbool禁用标准输出中的日志颜色false
pool_countint连接池大小0
userstring用户名设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突
dns_serverstring使用 DNS 服务器地址默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址
login_fail_exitbool第一次登陆失败后是否退出true
protocolstring连接服务端的通信协议tcptcp, kcp, quic, websocket
quic_keepalive_periodintquic 协议 keepalive 间隔,单位: 秒10
quic_max_idle_timeoutintquic 协议的最大空闲超时时间,单位: 秒30
quic_max_incoming_streamsintquic 协议最大并发 stream 数100000
tls_enablebool启用 TLS 协议加密连接true
tls_cert_filestringTLS 客户端证书文件路径
tls_key_filestringTLS 客户端密钥文件路径
tls_trusted_ca_filestringTLS CA 证书路径
tls_server_namestringTLS Server 名称为空则使用 server_addr
disable_custom_tls_first_byteboolTLS 不发送 0x17true当为 true 时,不能端口复用
tcp_mux_keepalive_intervalinttcp_mux 的心跳检查间隔时间60单位:秒
heartbeat_intervalint向服务端发送心跳包的间隔时间30建议启用 tcp_mux_keepalive_interval,将此值设置为 -1
heartbeat_timeoutint和服务端心跳的超时时间90
udp_packet_sizeint代理 UDP 服务时支持的最大包长度1500服务端和客户端的值需要一致
startstring指定启用部分代理当配置了较多代理,但是只希望启用其中部分时可以通过此参数指定,默认为全部启用
meta_xxxmap附加元数据会传递给服务端插件,提供附加能力

权限验证

参数类型说明默认值可选值备注
authentication_methodstring鉴权方式tokentoken, oidc需要和服务端一致
authenticate_heartbeatsbool开启心跳消息鉴权false需要和服务端一致
authenticate_new_work_connsbool开启建立工作连接的鉴权false需要和服务端一致
tokenstring鉴权使用的 token 值需要和服务端设置一样的值才能鉴权通过
oidc_client_idstringoidc_client_id
oidc_client_secretstringoidc_client_secret
oidc_audiencestringoidc_audience
oidc_scopestringoidc_scope
oidc_token_endpoint_urlstringoidc_token_endpoint_url
oidc_additional_xxxmapOIDC 附加参数map 结构,key 需要以 oidc_additional_ 开头

UI

参数类型说明默认值可选值备注
admin_addrstring启用 AdminUI 监听的本地地址0.0.0.0
admin_portint启用 AdminUI 监听的本地端口0
admin_userstringHTTP BasicAuth 用户名
admin_pwdstringHTTP BasicAuth 密码
asserts_dirstring静态资源目录AdminUI 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
pprof_enablebool启动 Go HTTP pproffalse用于应用调试

Frpc.ini 配置讲解

frpc.ini 是 frp 客户端中重要的配置文件,错误的配置会导致服务无法访问,部分重要的参数会直接导致 frp 客户端无法启动,点击下载 frpc.ini 样本,并参考以下文档仔细修改每条参数.

frpc.ini 主要分为两部分,其中第一部分 [common] 为服务器连接配置,第二部分为所需穿透的各项服务配置,服务配置又分为需要 Web 访问的 HTTP/HTTPS 协议穿透服务和 TCP 协议穿透服务.

server_addr = frp.moeyy.xyz
#服务提供商提供的 frp 服务器 IP 地址或者域名地址

server_port = 7000
#服务提供商提供的 frp 服务端口号

token = moeyy.cn
#服务提供商提供的密码

HTTP/HTTPS

同一个域名只能穿透一个 HTTP/HTTPS 服务,如需穿透多个 Web ,请分别为每个 Web 服务分配各自的域名,并正确的将 CNAME 指向 frp.moeyy.xyz.

例如 : 示例中 nas.yourname.com 已经分别配置到了群晖 NAS 的 HTTP 和 HTTPS 端口.如果本地还有其他例如博客的 Web 服务器需要穿透,请再分配例如 www.yourname.com 或 blog.yourname.com 的二级域名来使用.

[nas_yourdomain_com_http]
#服务名称 : 重点参数,此处为该条穿透服务的名称,必须修改,且不能与其他用户重复.

type = http
#协议类型 : 确保本条穿透服务使用此协议能够在内网正常使用或访问.例如,尝试在本地访问 http://内网 IP:内网端口 确保能够正常浏览.

local_ip = 192.168.1.4
#内网 IP : 本地服务所在设备的内网 IP 地址.由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP.

local_port = 5000
#本地端口 : 本地服务的端口号.例如群晖 NAS 的 HTTP 管理端口号为 5000.

custom_domains = nas.yourdomain.com
#自定义域名 : 为本条穿透服务提供的域名,请确保在域名服务商后台将该域名的 CNAME 指向 frp.moeyy.xyz
#重点提示 : 当 type = http 或者 https 协议时, custom_domains 必须设置.
[nas_yourdomain_com_https]
#服务名称 : 此处为该条穿透服务的名称,必须修改,且不能与其他用户重复.

type = https
#协议类型 : 确保本条穿透服务使用此协议能够在内网正常使用或访问.例如,尝试在本地访问 https://内网 IP:内网端口 确保能够正常浏览.

local_ip = 192.168.1.4
#内网 IP : 本地服务所在设备的内网 IP 地址.由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP.

local_port = 5001
#本地端口 : 本地服务的端口号.例如群晖 NAS 的 HTTPS 管理端口号为 5001.

custom_domains = nas.yourdomain.com
#自定义域名 : 为本条穿透服务提供的域名,请确保在域名服务商后台将该域名的 CNAME 指向 frp.moeyy.xyz
#重点提示 : 当 type = http 或者 https 协议时, custom_domains 必须设置.
[yourname_linux_ssh]
#服务名称 : 重点参数,此处为该条穿透服务的名称,必须修改,且不能与其他用户重复.

type = tcp
#协议类型 : 确保本条穿透服务使用此协议能够在内网正常使用或访问.例如,尝试在本地终端执行 ssh root@192.168.1.5 确保能够正常登录.

local_ip = 192.168.1.4
#内网 IP : 本地服务所在设备的内网 IP 地址.由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP.

local_port = 22
#本地端口 : 本地服务的端口号.例如,本地 linux 服务器的默认 SSH 登录端口为 22.

remote_port = 22222
#远程端口 : 远程服务的端口号.自定义填写一个远程服务端口号,例如 22222 ,成功连接后,可以使用 ssh -p 22222 root@frp.moeyy.xyz 来远程登录你的内网 Linux 服务器.
#重点提示 : 当 type = tcp 时,无需配置上文的两条域名记录,可以直接使用 frp 服务器的地址作为域名,也可以将自己的域名 CNAME 指向 frp.moeyy.xyz.
[yourname_windows10_rdp]
#服务名称 : 重点参数,此处为该条穿透服务的名称,必须修改,且不能与其他用户重复.

type = tcp
#协议类型 : 确保本条穿透服务使用此协议能够在内网正常使用或访问.例如,尝试在本地使用 Microsoft Remote Desktop 来远程访问该电脑,确保能够正常登录.

local_ip = 192.168.1.6
#内网 IP : 本地服务所在设备的内网 IP 地址.由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP.

local_port = 3389
#本地端口 : 本地服务的端口号.例如,本地 Windows 的默认远程访问端口为 3389.

remote_port = 33333
#远程端口 : 远程服务的端口号.自定义填写一个远程服务端口号,例如 33333 ,成功连接后,可以使用 Microsoft Remote Desktop 将地址填写为 frp.moeyy.xyz:33333 来远程登录你的内网 Windows.
#重点提示 : 当 type = tcp 时,无需配置上文的两条域名记录,可以直接使用 frp 服务器的地址作为域名,也可以将自己的域名 CNAME 指向 frp.moeyy.xyz.