afrp.net

AFRP OIDC 认证中心 · 使用文档

配置文件 frpc.toml 详解

一、frpc.toml 实例

请参照阅读下述各参数的说明进行修改,错误的参数会导致 frpc 无法启动。 点击下载 frpc.toml 实例
frpc.toml 是 frpc 客户端中重要的配置文件,错误的配置会导致服务无法连接,重要的参数错误会导致 frpc 客户端无法启动。

# frpc.toml
serverAddr = "frps服务器IP或域名"
serverPort = 7000
user = "注册用户名"
# 本站要求必须设置 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"


[[proxies]]
name = "nas.http"
type = "http"
localIP = "192.168.100.8"
localPort = 5000
customDomains = ["nas.yourdomain.com"]
subdomain = "nas"

[[proxies]]
name = "nas.https"
type = "https"
localIP = "192.168.100.8"
localPort = 5001
customDomains = ["nas.yourdomain.com"]
subdomain = "nas"

[[proxies]]
name = "linux.ssh.tcp"
type = "tcp"
localIP = "192.168.100.21"
localPort = 22
remotePort = 10022

[[proxies]]
name = "windows11.rdp.tcp"
type = "tcp"
localIP = "192.168.100.10"
localPort = 3389
remotePort = 13389

[[proxies]]
name = "windows11.rdp.udp"
type = "udp"
localIP = "192.168.100.10"
localPort = 3389
remotePort = 13389

使用 frpc 服务内网穿透到您本地 DSM 、路由器、自建网站等时,您需要解析域名的 CNAME 或 A 到服务商提供的 fprs 服务器地址或 IP ,可以使用泛域名,省去解析其他子域名的麻烦。
Windows 远程桌面、Linux 系统 ssh 连接,可不用自行解析域名,直接使用服务器地址连接即可,您也可以使用自己的域名,只需要解析域名的 CNAME 或 A 到服务商提供的 fprs 服务器地址或IP。
如果登陆不是您自己的主机,说明您的端口可能跟别的用户冲突了,您可以更换远程端口后重试。


二、frpc.toml 详解

frpc.toml 主要分为成两部分配置,第一部分为服务器连接配置,第二部分为需内网穿透的服务配置,服务配置包括 Web 访问的 HTTP / HTTPS 协议(服务器开放端口为 80 / 443 )和 TCP / UDP 协议(服务器开放端口为 10001 - 60000 )。


  1. HTTP / HTTPS 协议 Web 穿透服务
    同一个域名只能穿透一个 HTTP / HTTPS 服务,如需穿透多个 Web,请分别为每个 Web 服务分配各自的域名,并正确的将 CNAME 或 A 记录指向 frps 服务器的域名或 IP,可以使用泛域名。
    例如:示例中 nas.yourdomain.com 已经分别配置到了群晖 NAS 的 HTTP 和 HTTPS 端口。如果本地还有其他诸如博客的 Web 服务需要穿透,请再分配例如 www.yourdomain.com 或 blog.yourdomain.com 的二级域名来使用。
    name = "nas.http"
    服务名称: 重点参数,此处为该条穿透服务的名称,必须修改,且不能与其他用户重复。为保证唯一性,建议以 [服务名称.协议] 的方式命名。此条记录重复会导致 frpc 客户端无法启动。加上连接配置中有用户名一般不会出现重复现象,以上述配置为例此条连接在服务器上会显示为:用户名.nas.http
    type = "http"
    协议类型: 确保本条穿透服务使用此协议能够在内网正常使用或访问。
    localIP = "192.168.100.8"
    内网 IP:本地服务所在设备的内网 IP 地址。由于 frpc 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP。
    localPort = 5000
    本地端口:本地服务的端口号。例如群晖 NAS 的 HTTP 管理端口号为 5000。
    customDomains = ["nas.yourdomain.com"]
    自定义域名:为本条穿透服务提供的域名,请确保在域名服务商后台将该域名的 CNAME 指向了本 frps 服务器地址,也就是上文的 serverAddr 地址,如果 serverAddr 为 IP,则指向 A 记录到服务器 IP。配置成功后可以使用你设置的网址访问你的群晖 NAS。
    subdomain = "nas"
    子域名:本站提供了免费的子域名,可以使用 subdomain 参数来为本条穿透服务设置子域名。如果服务商未提供子域名此条配置无效。
    重点提示:当 type = "http" 或者 "https" 协议时, custom_domains 和 subdomain 至少需要任意一条参数,也可以同时存在。如果没有此参数会导致 frpc 客户端无法启动。
    HTTPS 协议参数配置同上述 HTTP 协议,只是协议类型改为 https ,本地端口根据实际情况配置,群晖 NAS 的 HTTPS 管理端口号为 5001

  2. TCP / UDP 协议常用连接
    name = "debian.ssh.tcp"
    服务名称: 重点参数,此处为该条穿透服务的名称,必须修改,且不能与其他用户重复。为保证唯一性,建议以 [服务名称.协议] 的方式命名。此条记录重复会导致 frpc 客户端无法启动。加上连接配置中有用户名一般不会出现重复现象,以上述配置为例此条连接在服务器上会显示为:your_name.debian.ssh.tcp
    type = "tcp"
    协议类型: 确保本条穿透服务使用此协议能够在内网正常使用或访问。例如,尝试在本地终端执行 ssh [email protected] 确保能够正常登录。
    localIP = "192.168.100.21"
    内网 IP:本地服务所在设备的内网 IP 地址。由于 frpc 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP。
    localPort = 22
    本地端口:本地服务的端口号。例如,本地 linux 服务器的默认 SSH 登录端口为 22。
    remotePort = 10022
    远程端口:远程服务的端口号。自定义填写一个远程服务端口号,例如 10022,成功连接后,可以使用 ssh -p 10022 [email protected] 来远程登录你的内网 Linux 服务器。
    远程端口号必须根据服务提供商提供的服务端口范围进行自选填写,确保不要与其他用户重复,如果访问的内容不是自己的服务或无法访问,则表示该端口号已被其他用户使用。此条记录重复或者超出端口号范围会导致无法连接或者 frpc 客户端无法启动。
    重点提示:当 type = "tcp" 时,无需配置上文的两条域名记录,可以直接使用 frpc 服务器的地址作为域名,也可以将自己的域名 CNAME 或 A 记录 指向 frps 服务器的域名或 IP。
    UDP 协议参数配置同上述 TCP 协议,只是协议类型改为 udp ,本地端口根据实际情况配置,一般情况同一服务项目 UDP 协议端口与 TCP 协议端口相同。

    name = "windows11.rdp.tcp"
    服务名称: 重点参数,此处为该条穿透服务的名称,必须修改,且不能与其他用户重复。为保证唯一性,建议以 [服务名称.协议] 的方式命名。此条记录重复会导致 frpc 客户端无法启动。加上连接配置中有用户名一般不会出现重复现象,以上述配置为例此条连接在服务器上会显示为:your_name.windows11.rdp.tcp
    type = "tcp"
    协议类型:确保本条穿透服务使用此协议能够在内网正常使用或访问。例如,尝试在本地使用 Microsoft Remote Desktop 来远程访问该电脑,确保能够正常登录。
    localIP = "192.168.100.10"
    内网 IP:本地服务所在设备的内网 IP 地址。由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP。
    localPort = 3389
    本地端口:本地服务的端口号。例如,本地 Windows RDP 的默认端口为 3389。
    remotePort = 13389
    远程端口:远程服务的端口号。自定义填写一个远程服务端口号,例如 13389,成功连接后,可以使用 Microsoft Remote Desktop 将地址填写为 us.afrp.net:13389 来远程登录你的内网 Windows。
    远程端口号必须根据服务提供商提供的服务端口范围进行自选填写,确保不要与其他用户重复,如果访问的内容不是自己的服务,则表示该端口号已被其他用户使用。此条记录重复或者超出端口号范围会导致无法连接或者 frp 客户端无法启动。
    重点提示:当 type = tcp 时,无需配置上文的两条域名记录,可以直接使用 frpc 服务器的地址作为域名,也可以将自己的域名 CNAME 或 A 记录 指向 frps 服务器的域名或 IP。
    UDP 协议参数配置同上述 TCP 协议,只是协议类型改为 udp ,本地端口根据实际情况配置,一般情况同一服务项目 UDP 协议端口与 TCP 协议端口相同,建议使用 Windows 远程桌面时同时穿透 UDP 协议。