本站采用 OIDC(Client Credentials)认证:frpc 启动时用 clientID / clientSecret 向认证中心换取 JWT,再凭 JWT 连接 frps,认证通过后建立隧道。
认证中心:https://www.afrp.net
frps 服务端:你选的服务器(IP 或域名)
适用 frp 版本:v0.50.0+(本环境实测 v0.51.2 /v0.70.1 均正常)
# frpc.toml
serverAddr = "frps服务器IP或域名"
serverPort = 7000
user = "注册用户名"
auth.method = "oidc"
auth.oidc.clientID = "注册用户名"
auth.oidc.clientSecret = "注册时保存的ClientSecret"
auth.oidc.tokenEndpointURL = "https://www.afrp.net/oidc/token.php"
auth.oidc.audience = "afrp.net"
auth.oidc.scope = "afrp"
# ===== 隧道示例:把本机 22 端口映射为 frps 的 6000 端口 =====
[[proxies]]
name = "ssh-demo"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
| 字段 | 说明 | 是否必填 |
|---|---|---|
serverAddr |
frps 服务器的 IP 或域名,按你选的服务器填写 | 必填 |
serverPort |
frps 监听端口,与服务器的连接端口一致(本站默认 7000) | 必填 |
user |
登录标识,认证用户名、客户端 | 必填 |
auth.method |
固定为 "oidc" |
必填 |
auth.oidc.clientID |
认证网站注册的用户名 | 必填 |
auth.oidc.clientSecret |
注册时一次性展示的 Client Secret | 必填 |
auth.oidc.tokenEndpointURL |
认证中心 Token 端点,固定 https://www.afrp.net/oidc/token.php |
必填 |
auth.oidc.audience |
必须与 frps 的 auth.oidc.audience、认证中心 OIDC_AUDIENCE 三处一致(afrp.net) |
必填 |
auth.oidc.scope |
与认证中心 OIDC_SCOPE 一致(afrp) |
必填 |
[[proxies]] |
隧道定义,可多个 | 至少一个 |
| 值 | 认证中心 config.php | frps.toml | frpc.toml |
|---|---|---|---|
| issuer | OIDC_ISSUER=https://www.afrp.net |
auth.oidc.issuer |
auth.oidc.tokenEndpointURL |
| audience | OIDC_AUDIENCE=afrp.net |
auth.oidc.audience |
auth.oidc.audience |
| scope | OIDC_SCOPE=afrp |
— | auth.oidc.scope |
任何一处不一致,frps 都会拒绝认证。
浏览器打开 https://www.afrp.net/register.php 注册账号;
注册成功页面一次性展示 Client Secret,立即保存(系统只存哈希,无法找回);
登录 https://www.afrp.net/login.php 进入控制台,可查看自己的 Client ID(用户名)、复制 frpc.toml 配置片段;
Secret 遗失或泄露:控制台点「重新生成 Client Secret」,旧值立即失效,需同步更新所有 frpc 配置。
# TCP 隧道(最常用)
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
# UDP 隧道
[[proxies]]
name = "dns"
type = "udp"
localIP = "127.0.0.1"
localPort = 53
remotePort = 6053
# HTTP 虚拟主机
[[proxies]]
name = "web"
type = "http"
localIP = "127.0.0.1"
localPort = 8080
customDomains = ["web.example.com"]
| 现象 | 原因与处理 |
|---|---|
| 日志无输出 / 立即退出 | frpc -c frpc.toml 配置路径错误;TOML 语法错误(检查引号、缩进) |
login to server success |
认证通过,隧道建立成功 |
token in login doesn't match token from configuration |
确认 frpc.toml 为 auth.method = "oidc" 且已重启或 oidc 三处不一致 |
invalid_client |
clientID/clientSecret 错误、账号被管理员停用、或 Secret 已被重置 |
oidc: token validation failed |
audience 三处不一致,按上文联动表核对 |
cannot fetch token: 401 |
账号被停用(管理员关闭认证),或 Secret 错误 |
| 隧道建立但连不通 | 检查 frps 防火墙 / 云安全组是否放行 remotePort |
Client Secret 等同隧道钥匙,妥善保管,不要提交到公开仓库;
泄露后立即在控制台重置(旧值马上失效);
违规内容会关闭认证,严重的、限期不整改的将删除账号,对应 frpc 立即失去连接资格。