Frp 进阶:使用 TOML 实现模块化配置

前言
随着需要穿透的服务越来越多,frpc.ini
文件可能会变得异常冗长和混乱,难以维护。Frp 从 v0.51.0
版本开始,引入了对 TOML
格式的支持,并提供了一个强大的新特性——模块化配置。
通过将不同的代理规则拆分到独立的文件中,我们可以让配置结构更加清晰,管理起来也更加方便。
为什么选择 TOML 模块化配置?
- 结构清晰:每个服务一个配置文件,互不干扰。
- 易于维护:修改、添加或删除某个服务的代理规则,只需操作对应的文件。
- 便于协作:不同人可以负责维护不同的服务配置。
- 可读性强:TOML 格式本身比 ini 更具表现力和可读性。
配置方法
1. 主配置文件 frpc.toml
这是客户端的入口配置文件,负责设置服务端连接信息,并通过 includes
指令引入其他模块化的配置。
1 | # frpc.toml |
关键参数说明:
server_addr
: 你的 Frp 服务端 IP 地址。server_port
: Frp 服务端端口。token
: 用于身份验证的令牌。includes
: 指定要加载的额外配置文件路径,支持通配符*
。
2. 子配置文件(模块)
在 conf.d
目录下,我们可以为每一个需要代理的服务创建一个独立的 .toml
文件。
示例 1: conf.d/web.toml
(穿透 Web 服务)
1 | # conf.d/web.toml |
示例 2: conf.d/ssh.toml
(穿透 SSH 服务)
1 | # conf.d/ssh.toml |
关键参数说明:
[[proxies]]
: TOML 中的数组语法,表示这是一个代理配置项。name
: 代理规则的名称,必须唯一。type
: 代理类型,如tcp
,http
,https
等。local_ip
,local_port
: 本地服务的 IP 和端口。remote_port
: 在服务端监听的远程端口(适用于 TCP/UDP)。custom_domains
: 绑定的自定义域名(适用于 HTTP/HTTPS)。
3. 最终目录结构
一个清晰的模块化配置目录结构如下:
1 | /etc/frp/ |
启动 Frpc
完成配置后,使用以下命令启动客户端:
1 | ./frpc -c ./frpc.toml |
Frpc 会自动加载 frpc.toml
以及 conf.d
目录下的所有子配置,并建立相应的代理。
总结
通过 TOML
和 includes
特性,我们可以轻松实现 Frp 配置的模块化管理。这不仅让配置文件更加整洁,也极大地提高了可维护性,尤其是在代理规则复杂、服务众多的场景下。
- 标题: Frp 进阶:使用 TOML 实现模块化配置
- 作者: MX
- 创建于 : 2025-09-24 12:40:26
- 更新于 : 2025-09-24 12:59:55
- 链接: https://www.convolution.fun/2025/09/24/202509241240/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论