-
Notifications
You must be signed in to change notification settings - Fork 37
配置说明
Yongsheng Xu edited this page Oct 7, 2021
·
7 revisions
pegasocks 的配置文件是 json 格式,最外层的字段如下,带*号的为选填字段
字段 | 类型 | 含义 |
---|---|---|
servers | Server | 数组,可以有多个 |
local_address | string | 绑定本地的地址,比如 127.0.0.1 , 0.0.0.0 等 |
local_port | int | 绑定本地的端口,比如 1080 |
log_level | int | 日志等级 0, 1, 2, 3 分别对应 debug, info, warn, error |
*log_file | string | 日志输出位置,设置时,会将日志写到指定位置,不设置时,默认写到 stderr |
*ping_interval | int | 程序会定时检查服务器的网络状况,这里设置检查的时间间隔,默认为 120,单位是秒 |
*control_port | int | 设置后,主程序将以 TCP 的形式监听,用户可以通过这个端口和主程序进行交互 |
*control_file | string | 默认为 "/tmp/pegas.sock",主程序监听这个 unix socket,用户可以通过它和主程序进行交互,设置 control_port 后,程序会忽略这个选项 |
*dns_servers | array | 指定 DNS 解析服务器,比如 ["192.168.123.3:53", "1.1.1.1"] |
*ssl.cert | string | 指定 ssl 加载的 crt 文件,比如 /etc/ssl/ca-certificates.crt 或者 /usr/local/etc/openssl/cert.pem
|
*ssl.verify | boolean | 默认为 true,设置为 false 跳过 ssl 验证 |
服务器的网络状况有两个指标, connect 和 g204,前者指代从本地到服务器的连接建立成功的时间(比如对于使用 websocket 的,websocket 的协议升级时间也算在内),g204 指代通过这个服务器,访问 google 的 generate_204 服务的返回时间。
然后讲解 Server 的字段和含义。首先是通用项目
字段 | 类型 | 含义 |
---|---|---|
server_type | string | 服务器类型,目前支持 v2ray , trojan 和 shadowsocks 三种 |
server_address | string | 服务器地址,可以是域名,也可以是 ip |
server_port | int | 服务器端口,比如 443 |
password | string | 认证密码,v2ray 对应的是 uuid,trojan 和 shadowsocks 对应的是密码 |
上面是不管哪种 server_type 都有的字段,下面说明不同 type 对应的其他字段。
当 server_type
设置为 v2ray 时,可选字段有
字段 | 类型 | 含义 |
---|---|---|
secure | string | vmess 请求的加密算法,支持 aes-128-gcm 和 aes-128-cfb ,不填写时,默认为后者 |
ssl | object/boolean | 形式为 {"sni": "xxxx.com"},如果不需要设置 sni,设置为 1 即可 |
websocket | Websocket | 形式为 {"path": "/ray", "hostname": "xxxx.com"},path 为 v2ray 的 path,hostname 和 server_address 相同 |
如上面,v2ray 支持
- tcp 上的 vmess(不设置 ssl 和 websocket 字段)
- websocket(只设置 websocket,不设置 ssl)
- tls + websocket(同时设置 websocket 和 ssl 字段)
当 server_type
设置为 trojan 时,可选字段有
字段 | 类型 | 含义 |
---|---|---|
websocket | Websocket | 形式为 {"path": "/ray", "hostname": "xxxx.com"},path 为 trojan 的 path,hostname 和 server_address 相同 |
如上,trojan 同时支持 trojan-gfw 和 trojan-go,因为 trojan 必走 tls,因此这里不用设置 ssl 字段。
websocket 字段用于区分是否走 websocket,不设置时,表示 trojan-gfw,直连服务器。设置时,表示用 websocket,这时是 trojan-go,可以利用 cdn 转发。
当 server_type
设置为 shadowsocks 时,可选字段有
字段 | 类型 | 含义 |
---|---|---|
method | 加密方法 | 目前支持 aes-128-cfb ,aes-128-gcm , aes-256-gcm 和 chacha20-poly1305
|
PS: UDP 和 plugin 暂时没有实现
下面给出几个例子
trojan-gfw
{
"servers": [
{
"server_address": "yourhost.com",
"server_type": "trojan",
"server_port": 443,
"password": "password"
}
],
"local_address": "0.0.0.0",
"local_port": 1080,
"log_level": 1
}
trojan-go
{
"servers": [
{
"server_address": "yourhost.com",
"server_type": "trojan",
"server_port": 443,
"password": "password",
"websocket": {
"path": "/trojan",
"hostname": "yourhost.com"
}
}
],
"local_address": "0.0.0.0",
"local_port": 1080,
"log_level": 1
}
v2ray + tls + websocket
{
"servers": [
{
"server_address": "yourhost.com",
"server_type": "v2ray",
"server_port": 443,
"password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ssl": {"sni": "ray.yourhost.com"},
"websocket": {
"path": "/ray",
"hostname": "yourhost.com"
}
}
],
"local_address": "0.0.0.0",
"local_port": 1080,
"log_level": 1
}
v2ray (tcp)
{
"servers": [
{
"server_address": "xxxxx.jamjams.net",
"server_type": "v2ray",
"server_port": 10086,
"secure": "aes-128-gcm",
"password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
],
"local_address": "0.0.0.0",
"local_port": 1080,
"log_level": 1
}