PCF (Potatso Config File)
Potatso 支持使用文本来定义用户配置、代理、规则集,以便于归档或分享配置,简称为 PCF(Potatso Configuration File)。
PCF 以 TOML 为基础,语法简洁,自解释。
示例
以下是一个 PCF 示例:
# 头部描述信息(可选)
# 在 PCL 的头部一般添加上本文件和作者的描述信息,在 Potatso App 中暂时没有实际作用。
name = "Potatso Sample Configuration"
author = "Potatso"
email = "potatso.com@gmail.com"
website = "http://manual.potatso.com"
description = "The sample PCF. This demonstrates the basic grammar of defining a PCL."
# 用户配置(Profile)
[PROFILE.sample]
name = "Sample Profile"
dns = [
"8.8.8.8",
"223.5.5.5"
]
defaultRoute = "PROXY"
proxy = "hk"
rulesets = [
"direct",
"google"
]
# 代理(Proxy)
[PROXY.hk]
type = "SHADOWSOCKS"
host = "ss.example.com"
port = 8388
encryption = "aes-256-cfb"
password = "DO NOT EXPOSE IT TO OTHERS"
remark = "HK Proxy"
[PROXY.us_ssr]
type = "SHADOWSOCKSR"
host = "ssr.example.com"
port = 8388
encryption = "aes-256-cfb"
password = "DO NOT EXPOSE IT TO OTHERS"
protocol = "auth_aes128_md5"
protocolParam = "64#123:user"
obfs = "tls1.2_ticket_auth"
obfsParam = "cloudflare.com"
remark = "HK Proxy"
[PROXY.jp]
type = "SOCKS5"
host = "socks5.example.com"
port = 8888
user = "testuser"
password = "DO NOT EXPOSE IT TO OTHERS"
remark = "HK Proxy"
# 规则集(Ruleset)
[RULESET.direct]
name = "Direct"
rules = [
"DOMAIN-SUFFIX, cn, DIRECT",
"GEOIP, cn, DIRECT"
]
[RULESET.google]
name = "Google Rules"
rules = [
"DOMAIN-MATCH, google, PROXY",
"DOMAIN-MATCH, gstatic, PROXY"
]
头部描述
在 PCF 头部,你可以添加必要的说明信息,包括但不仅限于以下字段:
字段 | 描述 | 值类型 | 是否必要 |
---|---|---|---|
name | PCF 名称 | 字符串 | 可选 |
author | 作者名称 | 字符串 | 可选 |
作者 Email | 字符串 | 可选 | |
website | 作者网站地址 | 字符串 | 可选 |
description | 描述 | 字符串 | 可选 |
头部描述是可选的,但我建议公开的 PCF 填写以上信息,便于传播宣传以及用户反馈。
区块声明
Potatso 通过区块声明分隔用户配置、代理、规则集。其语法为:
[SECTION.id]
SECTION
表示区块名称,要求大写,目前支持的区块为 用户配置 PROFILE, 代理PROXY, 规则集 RULESET
id
是区块在当前 PCF 内的唯一标识,用于跨区块引用。
用户配置
Potatso 在运行时依赖一个用户配置,它包含通用配置、代理、规则集。
字段 | 描述 | 值类型 | 是否必要 |
---|---|---|---|
name | 配置名称 | 字符串 | 必填 |
defaultRoute | 默认路由(DIRECT, PROXY, REJECT) | 字符串 | 必填 |
dns | 自定义 DNS 列表 | 字符串列表 | 可选 |
proxy | 默认的代理 id | 字符串 | 可选 |
rulesets | 自定义规则集 id 列表 | 字符串列表 | 可选 |
代理
目前 PCF 支持两种方式定义代理:
1. URI
字段 | 描述 | 值类型 | 是否必要 |
---|---|---|---|
uri | 代理的 URI 表示 | 字符串 | 必填 |
URI 只是用于 Shadowscoks 类代理, 关于 URI 的定义请参见:
Shadowsocks: https://shadowsocks.org/en/config/quick-guide.html
ShadowsocksR: https://github.com/breakwa11/shadowsocks-rss/wiki/SSR-QRcode-scheme
2. 多字段表示
字段 | 描述 | 值类型 | 是否必要 |
---|---|---|---|
host | 服务器地址 | 字符串 | 必填 |
port | 服务器端口 | 整数 | 必填 |
user | 用户名(SOCKS) | 字符串 | 可选 |
password | 密码 | 字符串 | 可选(shadowsocks 类必填) |
encryption | 加密方法 | 字符串 | 可选(shadowsocks 类必填) |
protocol | SSR 协议 | 字符串 | 可选 |
protocolParam | SSR 协议参数 | 字符串 | 可选 |
obfs | SSR 混淆 | 字符串 | 可选 |
obfsParam | SSR 混淆参数 | 字符串 | 可选 |
remark | 备注名称 | 字符串 | 可选 |
注意安全
由于代理信息(尤其是服务器地址和密码)必须明文表示,如无必要,请不要公开分享。
规则集
字段 | 描述 | 值类型 | 是否必要 |
---|---|---|---|
name | 规则集名称 | 字符串 | 必填 |
rules | 规则列表(其中每一项为字符串表示的规则) | 字符串列表 | 必填 |
注释
以 # 开头的行表示注释,用于提供必要的说明。
从其它配置转换
1. Surge 规则转成 PCF
Potatso 提供了简单的转换服务,能帮助你快速的将类 Surge 规则转换为 PCF。
地址为:https://convert.potatsocontent.com
2. PAC 转成 PCF
暂未支持