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 作者 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.potatso.com

2. PAC 转成 PCF

暂未支持