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
# -*- coding: utf-8 -*-
# Shadowsocks Info
ssMethods = { # methods support of different Shadowsocks project
'ss-rust': [ # table method removed refer to https://github.com/shadowsocks/shadowsocks-rust/issues/887
'none', 'plain', 'rc4', 'rc4-md5',
@ -65,6 +66,26 @@ ssAllMethods = set()
[ssAllMethods.update(ssMethods[x]) for x in ssMethods]
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
'aes-128-ctr', 'aes-192-ctr', 'aes-256-ctr',
'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',
'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 json
from Basis.Logger import logging
from Basis.Methods import plugin
from Basis.Process import Process
from Basis.Methods import plugins
from Basis.Functions import genFlag, getAvailablePort
settings = {
'serverBind': '127.0.0.1',
'workDir': '/tmp/ProxyC'
'workDir': '/tmp/ProxyC',
}
pluginParams = {
'SITE': 'www.bing.com',
'PATH': '/test',
'HOST': '343.re',
'CERT': '/etc/ssl/certs/343.re/fullchain.pem',
'KEY': '/etc/ssl/certs/343.re/privkey.pem',
'PASSWD': 'dnomd343',
'PATH': '/' + genFlag(length = 6),
'PASSWD': genFlag(length = 8),
}
pluginConfig = {
@ -231,8 +231,8 @@ def cloakLoad() -> None:
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_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 clock key -> %s (Public) | %s (Private)' % (
logging.info('generate cloak uid -> %s' % pluginParams['CK_UID'])
logging.info('generate cloak key -> %s (Public) | %s (Private)' % (
pluginParams['CK_PUBLIC'], pluginParams['CK_PRIVATE']
))
ckPrefix = 'UID=${CK_UID};PublicKey=${CK_PUBLIC};ServerName=${SITE};' # cloak plugin's basic command
@ -300,11 +300,11 @@ def load():
'type': pluginType,
'caption': pluginTest,
'server': { # plugin info for server
'type': plugin[pluginType]['server'],
'type': plugins[pluginType]['server'],
'param': paramFill(pluginTestInfo[0]),
},
'client': { # plugin info for client
'type': plugin[pluginType]['client'],
'type': plugins[pluginType]['client'],
'param': paramFill(pluginTestInfo[1]),
},
'inject': ssInject # for some special plugins (only server part)

121
docs/ProxyObject/Shadowsocks.md

@ -1,78 +1,121 @@
## Shadowsocks
> **remark**
>
> + 类型:*str*
> + 说明:节点备注名称
> + 缺省:''
> + 可选值:不限
## ssObject
```
{
'type': 'ss',
'server': ...,
'port': ...,
'method': ...,
'passwd': ...,
'plugin': ...
'server': ---,
'port': ---,
'method': ---,
'passwd': ---,
'plugin': ---,
}
```
**server**
### server
+ 类型:*str*
+ 说明:服务地址
+ 说明:Shadowsocks服务地址
+ 缺省:必选
+ 可选值:合法的IP地址或域名
+ 限制:IP地址或域名
**port**
### port
+ 类型:*int*
+ 说明:服务端口
+ 说明:Shadowsocks服务端口
+ 缺省:必选
+ 可选值:1 ~ 65535
+ 限制:1 ~ 65535
**method**
### method
+ 类型:*str*
+ 说明: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`
+ 建议值:`aes-256-gcm`,`aes-128-gcm`,`chacha20-ietf-poly1305`
+ 限制:(以下69种加密方式)
`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*
+ 说明:Shadowsocks连接密码
+ 缺省:必选
+ 可选值:不限
+ 限制:无
**plugin**
### plugin
+ 类型:*None* / *pluginObject*
+ 类型:*None* / [*pluginObject*](#pluginobject)
+ 说明:SIP003插件
+ 缺省:None
+ 可选值:不限
+ 缺省:`None`
+ 限制:无
### pluginObject
## pluginObject
```
{
'type': ...,
'param': ...
'type': ---,
'param': ---,
}
```
**type**
### type
+ 类型:*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*
+ 说明:SIP003插件参数
+ 缺省:''
+ 可选值:不限
+ 说明:插件参数
+ 缺省:`空`
+ 限制:无

117
docs/ProxyObject/ShadowsocksR.md

@ -1,85 +1,110 @@
## ShadowsocksR
> **remark**
>
> + 类型:*str*
> + 说明:节点备注名称
> + 缺省:''
> + 可选值:不限
> **group**
>
> + 类型:*str*
> + 说明:节点所属群组
> + 缺省:''
> + 可选值:不限
## ssrObject
```
{
'type': 'ssr',
'server': ...,
'port': ...,
'method': ...,
'passwd': ...,
'protocol': ...,
'protocolParam': ...,
'obfs': ...,
'obfsParam': ...
'server': ---,
'port': ---,
'method': ---,
'passwd': ---,
'protocol': ---,
'protocolParam': ---,
'obfs': ---,
'obfsParam': ---,
}
```
**server**
### server
+ 类型:*str*
+ 说明:服务地址
+ 说明:ShadowsocksR服务地址
+ 缺省:必选
+ 可选值:合法的IP地址或域名
+ 限制:IP地址或域名
**port**
### port
+ 类型:*int*
+ 说明:服务端口
+ 说明:ShadowsocksR服务端口
+ 缺省:必选
+ 可选值:1 ~ 65535
+ 限制:1 ~ 65535
**method**
### method
+ 类型:*str*
+ 说明: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*
+ 说明:ShadowsocksR连接密码
+ 缺省:必选
+ 可选值:不限
+ 限制:无
**protocol**
### protocol
+ 类型:*str*
+ 说明:ShadowsocksR连接协议
+ 缺省:'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`
+ 缺省:`origin`
+ 限制:(以下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*
+ 说明:ShadowsocksR协议参数
+ 缺省:''
+ 可选值:不限
+ 缺省:`空`
+ 限制:无
**obfs**
### obfs
+ 类型:*str*
+ 说明:ShadowsocksR混淆方式
+ 缺省:'plain'
+ 可选值:`plain`,`http_post`,`http_simple`,`tls_simple`,`tls1.2_ticket_auth`,`tls1.2_ticket_fastauth`,`random_head`
+ 缺省:`plain`
+ 限制:(以下7种混淆方式)
`plain`, `http_post`, `http_simple`, `random_head`
`tls_simple`, `tls1.2_ticket_auth`, `tls1.2_ticket_fastauth`
**obfsParam**
### obfsParam
+ 类型:*str*
+ 说明:ShadowsocksR混淆参数
+ 缺省:''
+ 可选值:不
+ 缺省:`空`
+ 限制:无

315
docs/ProxyObject/VMess.md

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

Loading…
Cancel
Save