Browse Source

docs: update describe of ssObject, ssrObject and vmessObject

master
dnomd343 2 years ago
parent
commit
6dca7dda12
  1. 39
      Basis/Methods.py
  2. 16
      Tester/Plugin.py
  3. 121
      docs/ProxyObject/Shadowsocks.md
  4. 117
      docs/ProxyObject/ShadowsocksR.md
  5. 315
      docs/ProxyObject/VMess.md

39
Basis/Methods.py

@ -1,6 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Shadowsocks Info
ssMethods = { # methods support of different Shadowsocks project ssMethods = { # methods support of different Shadowsocks project
'ss-rust': [ # table method removed refer to https://github.com/shadowsocks/shadowsocks-rust/issues/887 'ss-rust': [ # table method removed refer to https://github.com/shadowsocks/shadowsocks-rust/issues/887
'none', 'plain', 'rc4', 'rc4-md5', 'none', 'plain', 'rc4', 'rc4-md5',
@ -65,6 +66,26 @@ ssAllMethods = set()
[ssAllMethods.update(ssMethods[x]) for x in ssMethods] [ssAllMethods.update(ssMethods[x]) for x in ssMethods]
ssAllMethods = sorted(list(ssAllMethods)) # methods of Shadowsocks ssAllMethods = sorted(list(ssAllMethods)) # methods of Shadowsocks
# Plugin Info
plugins = {
'simple-obfs': ['obfs-local', 'obfs-server'],
'simple-tls': ['simple-tls'],
'v2ray': ['v2ray-plugin'],
'xray': ['xray-plugin'],
'kcptun': ['kcptun-client', 'kcptun-server'],
'gost': ['gost-plugin'],
'cloak': ['ck-client', 'ck-server'],
'go-quiet': ['gq-client', 'gq-server'],
'mos-tls-tunnel': ['mtt-client', 'mtt-server'],
'rabbit': ['rabbit-plugin', 'rabbit'],
'qtun': ['qtun-client', 'qtun-server'],
'gun': ['gun-plugin'],
}
plugins = {x: [plugins[x][0], plugins[x][1 if len(plugins[x]) == 2 else 0]] for x in plugins}
plugins = {x: {'client': plugins[x][0], 'server': plugins[x][1]} for x in plugins} # format plugins info
# ShadowsocksR Info
ssrMethods = [ # methods of ShadowsocksR ssrMethods = [ # methods of ShadowsocksR
'aes-128-ctr', 'aes-192-ctr', 'aes-256-ctr', 'aes-128-ctr', 'aes-192-ctr', 'aes-256-ctr',
'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm', 'aes-128-gcm', 'aes-192-gcm', 'aes-256-gcm',
@ -91,21 +112,3 @@ ssrObfuscations = [ # obfuscations of ShadowsocksR (obfs)
'plain', 'http_post', 'http_simple', 'random_head', 'plain', 'http_post', 'http_simple', 'random_head',
'tls_simple', 'tls1.2_ticket_auth', 'tls1.2_ticket_fastauth', 'tls_simple', 'tls1.2_ticket_auth', 'tls1.2_ticket_fastauth',
] ]
plugin = {
'simple-obfs': ['obfs-local', 'obfs-server'],
'simple-tls': ['simple-tls'],
'v2ray': ['v2ray-plugin'],
'xray': ['xray-plugin'],
'kcptun': ['kcptun-client', 'kcptun-server'],
'gost': ['gost-plugin'],
'cloak': ['ck-client', 'ck-server'],
'go-quiet': ['gq-client', 'gq-server'],
'mos-tls-tunnel': ['mtt-client', 'mtt-server'],
'rabbit': ['rabbit-plugin', 'rabbit'],
'qtun': ['qtun-client', 'qtun-server'],
'gun': ['gun-plugin'],
}
plugin = {x: [plugin[x][0], plugin[x][1 if len(plugin[x]) == 2 else 0]] for x in plugin}
plugin = {x: {'client': plugin[x][0], 'server': plugin[x][1]} for x in plugin} # format plugin info

16
Tester/Plugin.py

@ -5,22 +5,22 @@ import os
import re import re
import json import json
from Basis.Logger import logging from Basis.Logger import logging
from Basis.Methods import plugin
from Basis.Process import Process from Basis.Process import Process
from Basis.Methods import plugins
from Basis.Functions import genFlag, getAvailablePort from Basis.Functions import genFlag, getAvailablePort
settings = { settings = {
'serverBind': '127.0.0.1', 'serverBind': '127.0.0.1',
'workDir': '/tmp/ProxyC' 'workDir': '/tmp/ProxyC',
} }
pluginParams = { pluginParams = {
'SITE': 'www.bing.com', 'SITE': 'www.bing.com',
'PATH': '/test',
'HOST': '343.re', 'HOST': '343.re',
'CERT': '/etc/ssl/certs/343.re/fullchain.pem', 'CERT': '/etc/ssl/certs/343.re/fullchain.pem',
'KEY': '/etc/ssl/certs/343.re/privkey.pem', 'KEY': '/etc/ssl/certs/343.re/privkey.pem',
'PASSWD': 'dnomd343', 'PATH': '/' + genFlag(length = 6),
'PASSWD': genFlag(length = 8),
} }
pluginConfig = { pluginConfig = {
@ -231,8 +231,8 @@ def cloakLoad() -> None:
pluginParams['CK_PUBLIC'] = re.search(r'\s+(\S+)$', ckKey.split('\n')[0])[1] pluginParams['CK_PUBLIC'] = re.search(r'\s+(\S+)$', ckKey.split('\n')[0])[1]
pluginParams['CK_PRIVATE'] = re.search(r'\s+(\S+)$', ckKey.split('\n')[1])[1] pluginParams['CK_PRIVATE'] = re.search(r'\s+(\S+)$', ckKey.split('\n')[1])[1]
pluginParams['CK_UID'] = re.search(r'\s+(\S+)\n', os.popen('ck-server -uid').read())[1] # generate uid for clock pluginParams['CK_UID'] = re.search(r'\s+(\S+)\n', os.popen('ck-server -uid').read())[1] # generate uid for clock
logging.info('generate clock uid -> %s' % pluginParams['CK_UID']) logging.info('generate cloak uid -> %s' % pluginParams['CK_UID'])
logging.info('generate clock key -> %s (Public) | %s (Private)' % ( logging.info('generate cloak key -> %s (Public) | %s (Private)' % (
pluginParams['CK_PUBLIC'], pluginParams['CK_PRIVATE'] pluginParams['CK_PUBLIC'], pluginParams['CK_PRIVATE']
)) ))
ckPrefix = 'UID=${CK_UID};PublicKey=${CK_PUBLIC};ServerName=${SITE};' # cloak plugin's basic command ckPrefix = 'UID=${CK_UID};PublicKey=${CK_PUBLIC};ServerName=${SITE};' # cloak plugin's basic command
@ -300,11 +300,11 @@ def load():
'type': pluginType, 'type': pluginType,
'caption': pluginTest, 'caption': pluginTest,
'server': { # plugin info for server 'server': { # plugin info for server
'type': plugin[pluginType]['server'], 'type': plugins[pluginType]['server'],
'param': paramFill(pluginTestInfo[0]), 'param': paramFill(pluginTestInfo[0]),
}, },
'client': { # plugin info for client 'client': { # plugin info for client
'type': plugin[pluginType]['client'], 'type': plugins[pluginType]['client'],
'param': paramFill(pluginTestInfo[1]), 'param': paramFill(pluginTestInfo[1]),
}, },
'inject': ssInject # for some special plugins (only server part) 'inject': ssInject # for some special plugins (only server part)

121
docs/ProxyObject/Shadowsocks.md

@ -1,78 +1,121 @@
## Shadowsocks ## ssObject
> **remark**
>
> + 类型:*str*
> + 说明:节点备注名称
> + 缺省:''
> + 可选值:不限
``` ```
{ {
'type': 'ss', 'server': ---,
'server': ..., 'port': ---,
'port': ..., 'method': ---,
'method': ..., 'passwd': ---,
'passwd': ..., 'plugin': ---,
'plugin': ...
} }
``` ```
**server** ### server
+ 类型:*str* + 类型:*str*
+ 说明:服务地址 + 说明:Shadowsocks服务地址
+ 缺省:必选 + 缺省:必选
+ 可选值:合法的IP地址或域名 + 限制:IP地址或域名
**port** ### port
+ 类型:*int* + 类型:*int*
+ 说明:服务端口 + 说明:Shadowsocks服务端口
+ 缺省:必选 + 缺省:必选
+ 可选值:1 ~ 65535 + 限制:1 ~ 65535
**method** ### method
+ 类型:*str* + 类型:*str*
+ 说明:Shadowsocks加密方式 + 说明:Shadowsocks加密方式
+ 缺省:必选 + 缺省:必选
+ 可选值:`aes-128-gcm`,`aes-192-gcm`,`aes-256-gcm`,`aes-128-ctr`,`aes-192-ctr`,`aes-256-ctr`,`aes-128-ocb`,`aes-192-ocb`,`aes-256-ocb`,`aes-128-ofb`,`aes-192-ofb`,`aes-256-ofb`,`aes-128-cfb`,`aes-192-cfb`,`aes-256-cfb`,`aes-128-cfb1`,`aes-192-cfb1`,`aes-256-cfb1`,`aes-128-cfb8`,`aes-192-cfb8`,`aes-256-cfb8`,`aes-128-cfb128`,`aes-192-cfb128`,`aes-256-cfb128`,`camellia-128-cfb`,`camellia-192-cfb`,`camellia-256-cfb`,`camellia-128-cfb128`,`camellia-192-cfb128`,`camellia-256-cfb128`,`plain`,`none`,`table`,`rc4`,`rc4-md5`,`rc2-cfb`,`bf-cfb`,`cast5-cfb`,`des-cfb`,`idea-cfb`,`seed-cfb`,`salsa20`,`salsa20-ctr`,`xchacha20`,`chacha20`,`chacha20-ietf`,`chacha20-poly1305`,`chacha20-ietf-poly1305`,`xchacha20-ietf-poly1305` + 限制:(以下69种加密方式)
+ 建议值:`aes-256-gcm`,`aes-128-gcm`,`chacha20-ietf-poly1305`
`aes-128-ccm`, `aes-256-ccm`
`aes-128-gcm-siv`, `aes-256-gcm-siv`
`aes-128-gcm`, `aes-192-gcm`, `aes-256-gcm`
`aes-128-ctr`, `aes-192-ctr`, `aes-256-ctr`
`aes-128-ocb`, `aes-192-ocb`, `aes-256-ocb`
`aes-128-ofb`, `aes-192-ofb`, `aes-256-ofb`
`aes-128-cfb`, `aes-192-cfb`, `aes-256-cfb`
`aes-128-cfb1`, `aes-192-cfb1`, `aes-256-cfb1`
`aes-128-cfb8`, `aes-192-cfb8`, `aes-256-cfb8`
`aes-128-cfb128`, `aes-192-cfb128`, `aes-256-cfb128`
`camellia-128-ctr`, `camellia-192-ctr`, `camellia-256-ctr`
`camellia-128-ofb`, `camellia-192-ofb`, `camellia-256-ofb`
`camellia-128-cfb`, `camellia-192-cfb`, `camellia-256-cfb`
**passwd** `camellia-128-cfb1`, `camellia-192-cfb1`, `camellia-256-cfb1`
`camellia-128-cfb8`, `camellia-192-cfb8`, `camellia-256-cfb8`
`camellia-128-cfb128`, `camellia-192-cfb128`, `camellia-256-cfb128`
`none`, `plain`, `table`, `rc4`, `rc4-md5`
`bf-cfb`, `des-cfb`, `rc2-cfb`, `idea-cfb`, `seed-cfb`, `cast5-cfb`
`salsa20`, `chacha20`, `xchacha20`, `salsa20-ctr`, `chacha20-ietf`
`chacha20-poly1305`, `chacha20-ietf-poly1305`, `xchacha20-ietf-poly1305`
`2022-blake3-aes-128-gcm`, `2022-blake3-aes-256-gcm`
`2022-blake3-chacha8-poly1305`, `2022-blake3-chacha20-poly1305`
### passwd
+ 类型:*str* + 类型:*str*
+ 说明:Shadowsocks连接密码 + 说明:Shadowsocks连接密码
+ 缺省:必选 + 缺省:必选
+ 可选值:不限 + 限制:无
**plugin** ### plugin
+ 类型:*None* / *pluginObject* + 类型:*None* / [*pluginObject*](#pluginobject)
+ 说明:SIP003插件 + 说明:SIP003插件
+ 缺省:None + 缺省:`None`
+ 可选值:不限 + 限制:无
### pluginObject ## pluginObject
``` ```
{ {
'type': ..., 'type': ---,
'param': ... 'param': ---,
} }
``` ```
**type** ### type
+ 类型:*str* + 类型:*str*
+ 说明:SIP003插件名称 + 说明:插件名称
+ 缺省:必选 + 缺省:必选
+ 可选值:`obfs-local`,`simple-tls`,`v2ray-plugin`,`xray-plugin`,`kcptun-client`,`gost-plugin`,`ck-client`,`gq-client`,`mtt-client`,`rabbit-plugin`,`qtun-client`,`gun-plugin` + 限制:(以下12种插件名称)
`obfs-local`, `simple-tls`
`kcptun-client`, `qtun-client`, `gun-plugin`
`v2ray-plugin`, `xray-plugin`, `gost-plugin`
`ck-client`, `gq-client`, `mtt-client`, `rabbit-plugin`
**param** ### param
+ 类型:*str* + 类型:*str*
+ 说明:SIP003插件参数 + 说明:插件参数
+ 缺省:'' + 缺省:`空`
+ 可选值:不限 + 限制:无

117
docs/ProxyObject/ShadowsocksR.md

@ -1,85 +1,110 @@
## ShadowsocksR ## ssrObject
> **remark**
>
> + 类型:*str*
> + 说明:节点备注名称
> + 缺省:''
> + 可选值:不限
> **group**
>
> + 类型:*str*
> + 说明:节点所属群组
> + 缺省:''
> + 可选值:不限
``` ```
{ {
'type': 'ssr', 'server': ---,
'server': ..., 'port': ---,
'port': ..., 'method': ---,
'method': ..., 'passwd': ---,
'passwd': ..., 'protocol': ---,
'protocol': ..., 'protocolParam': ---,
'protocolParam': ..., 'obfs': ---,
'obfs': ..., 'obfsParam': ---,
'obfsParam': ...
} }
``` ```
**server** ### server
+ 类型:*str* + 类型:*str*
+ 说明:服务地址 + 说明:ShadowsocksR服务地址
+ 缺省:必选 + 缺省:必选
+ 可选值:合法的IP地址或域名 + 限制:IP地址或域名
**port** ### port
+ 类型:*int* + 类型:*int*
+ 说明:服务端口 + 说明:ShadowsocksR服务端口
+ 缺省:必选 + 缺省:必选
+ 可选值:1 ~ 65535 + 限制:1 ~ 65535
**method** ### method
+ 类型:*str* + 类型:*str*
+ 说明:ShadowsocksR加密方式 + 说明:ShadowsocksR加密方式
+ 缺省:必选 + 缺省:必选
+ 可选值:`aes-128-cfb`,`aes-192-cfb`,`aes-256-cfb`,`aes-128-cfb1`,`aes-192-cfb1`,`aes-256-cfb1`,`aes-128-cfb8`,`aes-192-cfb8`,`aes-256-cfb8`,`aes-128-ctr`,`aes-192-ctr`,`aes-256-ctr`,`aes-128-gcm`,`aes-192-gcm`,`aes-256-gcm`,`aes-128-ofb`,`aes-192-ofb`,`aes-256-ofb`,`camellia-128-cfb`,`camellia-192-cfb`,`camellia-256-cfb`,`none`,`table`,`rc4`,`rc4-md5`,`rc4-md5-6`,`bf-cfb`,`cast5-cfb`,`des-cfb`,`idea-cfb`,`seed-cfb`,`rc2-cfb`,`salsa20`,`xsalsa20`,`chacha20`,`xchacha20`,`chacha20-ietf` + 限制:(以下37种加密方式)
**passwd** `none`, `table`
`rc4`, `rc4-md5`, `rc4-md5-6`
`bf-cfb`, `cast5-cfb`, `des-cfb`
`idea-cfb`, `seed-cfb`, `rc2-cfb`
`aes-128-gcm`, `aes-192-gcm`, `aes-256-gcm`
`aes-128-ctr`, `aes-192-ctr`, `aes-256-ctr`
`aes-128-ofb`, `aes-192-ofb`, `aes-256-ofb`
`aes-128-cfb`, `aes-192-cfb`, `aes-256-cfb`
`aes-128-cfb1`, `aes-192-cfb1`, `aes-256-cfb1`
`aes-128-cfb8`, `aes-192-cfb8`, `aes-256-cfb8`
`camellia-128-cfb`, `camellia-192-cfb`, `camellia-256-cfb`
`salsa20`, `xsalsa20`, `chacha20`, `xchacha20`, `chacha20-ietf`
### passwd
+ 类型:*str* + 类型:*str*
+ 说明:ShadowsocksR连接密码 + 说明:ShadowsocksR连接密码
+ 缺省:必选 + 缺省:必选
+ 可选值:不限 + 限制:无
**protocol** ### protocol
+ 类型:*str* + 类型:*str*
+ 说明:ShadowsocksR连接协议 + 说明:ShadowsocksR连接协议
+ 缺省:'origin' + 缺省:`origin`
+ 可选值:`origin`,`verify_sha1`,`verify_simple`,`verify_deflate`,`auth_simple`,`auth_sha1`,`auth_sha1_v2`,`auth_sha1_v4`,`auth_aes128`,`auth_aes128_md5`,`auth_aes128_sha1`,`auth_chain_a`,`auth_chain_b`,`auth_chain_c`,`auth_chain_d`,`auth_chain_e`,`auth_chain_f` + 限制:(以下17种连接协议)
`origin`, `auth_simple`
`auth_sha1`, `auth_sha1_v2`, `auth_sha1_v4`
`auth_chain_a`, `auth_chain_b`, `auth_chain_c`
**protocolParam** `auth_chain_d`, `auth_chain_e`, `auth_chain_f`
`auth_aes128`, `auth_aes128_md5`, `auth_aes128_sha1`
`verify_sha1`, `verify_simple`, `verify_deflate`
### protocolParam
+ 类型:*str* + 类型:*str*
+ 说明:ShadowsocksR协议参数 + 说明:ShadowsocksR协议参数
+ 缺省:'' + 缺省:`空`
+ 可选值:不限 + 限制:无
**obfs** ### obfs
+ 类型:*str* + 类型:*str*
+ 说明:ShadowsocksR混淆方式 + 说明:ShadowsocksR混淆方式
+ 缺省:'plain' + 缺省:`plain`
+ 可选值:`plain`,`http_post`,`http_simple`,`tls_simple`,`tls1.2_ticket_auth`,`tls1.2_ticket_fastauth`,`random_head` + 限制:(以下7种混淆方式)
`plain`, `http_post`, `http_simple`, `random_head`
`tls_simple`, `tls1.2_ticket_auth`, `tls1.2_ticket_fastauth`
**obfsParam** ### obfsParam
+ 类型:*str* + 类型:*str*
+ 说明:ShadowsocksR混淆参数 + 说明:ShadowsocksR混淆参数
+ 缺省:'' + 缺省:`空`
+ 可选值:不 + 限制:无

315
docs/ProxyObject/VMess.md

@ -1,331 +1,308 @@
## VMess ## vmessObject
> **remark**
>
> + 类型:*str*
> + 说明:节点备注名称
> + 缺省:''
> + 可选值:不限
``` ```
{ {
'type': 'vmess', 'server': ---,
'server': ..., 'port': ---,
'port': ..., 'method': ---,
'method': ..., 'id': ---,
'id': ..., 'aid' ---,
'aid' ..., 'stream': ---,
'stream': ...
} }
``` ```
**server** ### server
+ 类型:*str* + 类型:*str*
+ 说明:服务地址 + 说明:VMess服务地址
+ 缺省:必选 + 缺省:必选
+ 可选值:合法的IP地址或域名 + 限制:IP地址或域名
**port** ### port
+ 类型:*int* + 类型:*int*
+ 说明:服务端口 + 说明:VMess服务端口
+ 缺省:必选 + 缺省:必选
+ 可选值:1 ~ 65535 + 限制:1 ~ 65535
**method** ### method
+ 类型:*str* + 类型:*str*
+ 说明:VMess加密方式 + 说明:VMess加密方式
+ 缺省:'auto' + 缺省:`auto`
+ 可选值:`aes-128-gcm`,`chacha20-poly1305`,`auto`,`none`,`zero` + 限制:`aes-128-gcm`, `chacha20-poly1305`, `auto`, `none`, `zero`
+ 建议值:'auto'
**id** ### id
+ 类型:*str* + 类型:*str*
+ 说明:VMess认证ID + 说明:VMess认证ID
+ 缺省:必选 + 缺省:必选
+ 可选值:不限 + 限制:无
+ 建议值:合法的UUID
**aid** ### aid
+ 类型:*int* + 类型:*int*
+ 说明:VMess额外ID + 说明:VMess额外ID
+ 缺省:0 + 缺省:`0`
+ 可选值:0 ~ 65535 + 限制:0 ~ 65535
+ 建议值:0
**stream** ### stream
+ 类型:*tcpObject* / *kcpObject* / *wsObject* / *h2Object* / *quicObject* / *grpcObject* + 类型:[*tcpObject*](#tcpobject) / [*kcpObject*](#kcpobject) / [*wsObject*](#wsobject) / [*h2Object*](#h2object) / [*quicObject*](#quicobject) / [*grpcObject*](#grpcobject)
+ 说明:VMess底层传输方式 + 说明:VMess传输方式
+ 缺省:tcpObject + 缺省:`tcpObject`
+ 可选值:不 + 限制:无
### tcpObject ## tcpObject
``` ```
{ {
'type': 'tcp', 'type': 'tcp',
'obfs': ..., 'obfs': ---,
'secure': ... 'secure': ---,
} }
``` ```
**obfs** ### obfs
+ 类型:*None* / *obfsObject* + 类型:*None* / [*obfsObject*](#obfsobject)
+ 说明:http伪装 + 说明:http伪装选项
+ 缺省:None + 缺省:`None`
+ 可选值:不 + 限制:无
**secure** ### secure
+ 类型:*None* / *secureObject* + 类型:*None* / [*secureObject*](#secureobject)
+ 说明:TLS加密 + 说明:TLS加密选项
+ 缺省:None + 缺省:`None`
+ 可选值:不 + 限制:无
### kcpObject ## kcpObject
``` ```
{ {
'type': 'kcp', 'type': 'kcp',
'seed': ..., 'seed': ---,
'obfs': ..., 'obfs': ---,
'secure': ... 'secure': ---,
} }
``` ```
**seed** ### seed
+ 类型:*None* / *str* + 类型:*None* / *str*
+ 说明:mKCP混淆密码 + 说明:mKCP混淆密码
+ 缺省:None + 缺省:`None`
+ 可选值:不 + 限制:无
**obfs** ### obfs
+ 类型:*str* + 类型:*str*
+ 说明:数据包头部伪装类型 + 说明:数据包头部伪装类型
+ 缺省:'none' + 缺省:`none`
+ 可选值:`none`,`srtp`,`utp`,`wechat-video`,`dtls`,`wireguard` + 限制:`none`, `srtp`, `utp`, `wechat-video`, `dtls`, `wireguard`
**secure** ### secure
+ 类型:*None* / *secureObject* + 类型:*None* / [*secureObject*](#secureobject)
+ 说明:TLS加密 + 说明:TLS加密选项
+ 缺省:None + 缺省:`None`
+ 可选值:不 + 限制:无
### wsObject ## wsObject
``` ```
{ {
'type': 'ws', 'type': 'ws',
'host': ..., 'host': ---,
'path': ..., 'path': ---,
'ed': ..., 'ed': ---,
'secure': ... 'secure': ---,
} }
``` ```
**host** ### host
+ 类型:*str* + 类型:*str*
+ 说明:Websocket连接域名 + 说明:Websocket连接域名
+ 缺省:'' + 缺省:`空`
+ 可选值:不限 + 限制:无
+ 建议值:合法域名
**path** ### path
+ 类型:*str* + 类型:*str*
+ 说明:Websocket连接路径 + 说明:Websocket连接路径
+ 缺省:'/' + 缺省:`/`
+ 可选值:不限 + 限制:无
+ 建议值:以`/`开头的合法路径
**ed** ### ed
+ 类型:*None* / *int* + 类型:*None* / *int*
+ 说明:`Early Data`长度阈值 + 说明:Early Data长度阈值
+ 缺省:None + 缺省:`None`
+ 可选值:>0 + 限制:>0
+ 建议值:2048
**secure** ### secure
+ 类型:*None* / *secureObject* + 类型:*None* / [*secureObject*](#secureobject)
+ 说明:TLS加密 + 说明:TLS加密选项
+ 缺省:None + 缺省:`None`
+ 可选值:不 + 限制:无
### h2Object ## h2Object
``` ```
{ {
'type': 'h2', 'type': 'h2',
'host': ..., 'host': ---,
'path': ..., 'path': ---,
'secure': ... 'secure': ---,
} }
``` ```
**host** ### host
+ 类型:*str* + 类型:*str*
+ 说明:HTTP/2通讯域名 + 说明:HTTP/2连接域名
+ 缺省:'' + 缺省:`空`
+ 可选值:不限 + 限制:无
+ 建议值:合法域名列表(逗号隔开)
**path** ### path
+ 类型:*str* + 类型:*str*
+ 说明:HTTP/2通讯路径 + 说明:HTTP/2连接路径
+ 缺省:'/' + 缺省:`/`
+ 可选值:不限 + 限制:无
+ 建议值:以`/`开头的合法路径
**secure** ### secure
+ 类型:*secureObject* + 类型:[*secureObject*](#secureobject)
+ 说明:TLS加密 + 说明:TLS加密选项
+ 缺省:None + 缺省:`None`
+ 可选值:不 + 限制:无
### quicObject ## quicObject
``` ```
{ {
'type': 'quic', 'type': 'quic',
'method': ..., 'method': ---,
'passwd': ..., 'passwd': ---,
'obfs': ..., 'obfs': ---,
'secure': ... 'secure': ---,
} }
``` ```
**method** ### method
+ 类型:*str* + 类型:*str*
+ 说明:QUIC加密方式 + 说明:QUIC加密方式
+ 缺省:'none' + 缺省:`none`
+ 可选值:`none`,`aes-128-gcm`,`chacha20-poly1305` + 限制:`none`, `aes-128-gcm`, `chacha20-poly1305`
**passwd** ### passwd
+ 类型:*str* + 类型:*str*
+ 说明:QUIC连接密码 + 说明:QUIC连接密码
+ 缺省:'' + 缺省:`空`
+ 可选值:不 + 限制:无
**obfs** ### obfs
+ 类型:*str* + 类型:*str*
+ 说明:数据包头部伪装类型 + 说明:数据包头部伪装类型
+ 缺省:'none' + 缺省:`none`
+ 可选值:`none`,`srtp`,`utp`,`wechat-video`,`dtls`,`wireguard` + 限制:`none`,`srtp`,`utp`,`wechat-video`,`dtls`,`wireguard`
**secure** ### secure
+ 类型:*secureObject* + 类型:[*secureObject*](#secureobject)
+ 说明:TLS加密 + 说明:TLS加密选项
+ 缺省:secureObject + 缺省:`secureObject`
+ 可选值:不 + 限制:无
### grpcObject ## grpcObject
``` ```
{ {
'type': 'grpc', 'type': 'grpc',
'service': ..., 'service': ---,
'mode': ..., 'mode': ---,
'secure': ... 'secure': ---,
} }
``` ```
**service** ### service
+ 类型:*str* + 类型:*str*
+ 说明:gRPC服务名称 + 说明:gRPC服务名称
+ 缺省:必选 + 缺省:必选
+ 可选值:不限 + 限制:无
+ 建议值:英文大小写字母、数字、下划线及英文句号组成
**mode** ### mode
+ 类型:*str* + 类型:*str*
+ 说明:gRPC传输模式 + 说明:gRPC传输模式
+ 缺省:'gun' + 缺省:`gun`
+ 可选值:`gun`,`multi` + 限制:`gun`,`multi`
+ 建议值:'multi'
**secure** ### secure
+ 类型:*None* / *secureObject* + 类型:*None* / [*secureObject*](#secureobject)
+ 说明:TLS加密 + 说明:TLS加密选项
+ 缺省:None + 缺省:`None`
+ 可选值:不 + 限制:无
### obfsObject ## obfsObject
``` ```
{ {
'host': ..., 'host': ---,
'path': ... 'path': ---,
} }
``` ```
**host** ### host
+ 类型:*str* + 类型:*str*
+ 说明:http伪装域名 + 说明:http伪装域名
+ 缺省:'' + 缺省:`空`
+ 可选值:不限 + 限制:无
+ 建议值:合法域名列表(逗号隔开)
**path** ### path
+ 类型:*str* + 类型:*str*
+ 说明:http伪装路径 + 说明:http伪装路径
+ 缺省:'/' + 缺省:`/`
+ 可选值:不限 + 限制:无
+ 建议值:以`/`开头的合法路径
### secureObject ## secureObject
``` ```
{ {
'sni': ..., 'sni': ---,
'alpn': ..., 'alpn': ---,
'verify': ... 'verify': ---,
} }
``` ```
**sni** ### sni
+ 类型:*str* + 类型:*str*
+ 说明:TLS握手SNI字段 + 说明:TLS握手SNI字段
+ 缺省:obfsObject.host[0] / wsObject.host / h2Object.host[0] / '' + 缺省:`obfsObject.host[0]` / `wsObject.host` / `h2Object.host[0]` / `空`
+ 可选值:不限 + 限制:无
+ 建议值:合法域名
**alpn** ### alpn
+ 类型:*None* / *str* + 类型:*None* / *str*
+ 说明:TLS握手协商协议 + 说明:TLS握手协商协议
+ 缺省:None + 缺省:`None`
+ 可选值:`h2`,`http/1.1`,`h2,http/1.1` + 限制:`h2`, `http/1.1`, `h2,http/1.1`
+ 建议值:'h2,http/1.1'
**verify** ### verify
+ 类型:*bool* + 类型:*bool*
+ 说明:是否验证服务端证书 + 说明:是否验证服务端证书
+ 缺省:True + 缺省:`True`
+ 可选值:不限 + 限制:无
+ 建议值:True

Loading…
Cancel
Save