Skip to content

配置说明

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 的字段和含义。首先是通用项目

字段 类型 含义
server_type string 服务器类型,目前支持 v2ray, trojanshadowsocks 三种
server_address string 服务器地址,可以是域名,也可以是 ip
server_port int 服务器端口,比如 443
password string 认证密码,v2ray 对应的是 uuid,trojan 和 shadowsocks 对应的是密码

上面是不管哪种 server_type 都有的字段,下面说明不同 type 对应的其他字段。

v2ray

server_type 设置为 v2ray 时,可选字段有

字段 类型 含义
secure string vmess 请求的加密算法,支持 aes-128-gcmaes-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 字段)

trojan

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 转发。

shadowsocks

server_type 设置为 shadowsocks 时,可选字段有

字段 类型 含义
method 加密方法 目前支持 aes-128-cfb,aes-128-gcm, aes-256-gcmchacha20-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
}
Clone this wiki locally