mirror of
https://github.com/e1732a364fed/v2ray_simple.git
synced 2025-10-15 21:31:51 +08:00
minor improvement.
This commit is contained in:
@@ -225,7 +225,7 @@ verysimple -c server.toml
|
|||||||
|
|
||||||
标准模式使用toml格式,类似windows的ini,对新手友好,不容易写错。推荐直接使用标准模式。
|
标准模式使用toml格式,类似windows的ini,对新手友好,不容易写错。推荐直接使用标准模式。
|
||||||
|
|
||||||
本作的 examples文件夹中的 vlesss.client.toml, vlesss.server.toml , z_multi.client.toml 等文件中 提供了大量解释性的注释, 对新手很友好
|
本作的 examples文件夹中的 vlesss.client.toml, vlesss.server.toml , multi.client.toml 等文件中 提供了大量解释性的注释, 对新手很友好, 一定要读一下,才可以熟练掌握配置格式。
|
||||||
|
|
||||||
### 兼容模式
|
### 兼容模式
|
||||||
|
|
||||||
|
@@ -1,49 +0,0 @@
|
|||||||
# 本示例文件之所以 以 z_ 开头,是为了确保 “所有示例文件” 的开头字母都是 v 及v以后的字母
|
|
||||||
# 这样可以保证示例文件 尽量被 放在文件夹列表的末尾
|
|
||||||
|
|
||||||
[app]
|
|
||||||
loglevel = 1
|
|
||||||
default_uuid = "a684455c-b14f-11ea-bf0d-42010aaa0003"
|
|
||||||
|
|
||||||
[[listen]]
|
|
||||||
protocol = "socks5"
|
|
||||||
host = "127.0.0.1"
|
|
||||||
port = 10800
|
|
||||||
|
|
||||||
[[dial]]
|
|
||||||
tag = "my_vless1"
|
|
||||||
protocol = "vlesss"
|
|
||||||
host = "127.0.0.1"
|
|
||||||
port = 4433
|
|
||||||
version = 0
|
|
||||||
insecure = true
|
|
||||||
utls = true
|
|
||||||
|
|
||||||
|
|
||||||
[[dial]]
|
|
||||||
tag = "my_ws1"
|
|
||||||
protocol = "vlesss"
|
|
||||||
host = "127.0.0.1"
|
|
||||||
port = 4434
|
|
||||||
insecure = true
|
|
||||||
utls = true
|
|
||||||
advancedLayer = "ws"
|
|
||||||
path = "/ohmygod_verysimple_is_very_simple"
|
|
||||||
|
|
||||||
# route就是分流规则,分流规则从上到下匹配,匹配到哪一个就用哪一个.
|
|
||||||
|
|
||||||
[[route]]
|
|
||||||
dialTag = "my_ws1"
|
|
||||||
country = ["CN"]
|
|
||||||
|
|
||||||
[[route]]
|
|
||||||
dialTag = "my_vless1"
|
|
||||||
|
|
||||||
# 这里我们只给了tag, 没给其它限定条件,也就是说肯定会匹配到这一条 规则
|
|
||||||
# 如果所有route均不匹配,则数据会流向 proxy 这个tag,如果这个tag没有具体的dial,则流向第一个dial
|
|
||||||
# 如果匹配了mycountry, 则数据会直接被直连.
|
|
||||||
# 其它分流匹配示例:
|
|
||||||
# ip = ["0.0.0.0/8","10.0.0.0/8","fe80::/10","10.0.0.1"]
|
|
||||||
# domain = ["www.google.com","www.twitter.com"]
|
|
||||||
# network = ["tcp","udp"]
|
|
||||||
# inTag = ["tag1","tag2"]
|
|
@@ -1,30 +0,0 @@
|
|||||||
[app]
|
|
||||||
loglevel = 1
|
|
||||||
default_uuid = "a684455c-b14f-11ea-bf0d-42010aaa0003"
|
|
||||||
|
|
||||||
[[listen]]
|
|
||||||
tag = "my_vlesss1"
|
|
||||||
protocol = "vlesss"
|
|
||||||
host = "0.0.0.0"
|
|
||||||
port = 4433
|
|
||||||
insecure = true
|
|
||||||
fallback = ":80"
|
|
||||||
cert = "cert.pem"
|
|
||||||
key = "cert.key"
|
|
||||||
|
|
||||||
[[listen]]
|
|
||||||
tag = "my_ws1"
|
|
||||||
protocol = "vlesss"
|
|
||||||
host = "0.0.0.0"
|
|
||||||
port = 4434
|
|
||||||
insecure = true
|
|
||||||
cert = "cert.pem"
|
|
||||||
key = "cert.key"
|
|
||||||
advancedLayer = "ws"
|
|
||||||
path = "/ohmygod_verysimple_is_very_simple"
|
|
||||||
|
|
||||||
|
|
||||||
[[dial]]
|
|
||||||
protocol = "direct"
|
|
||||||
|
|
||||||
|
|
@@ -31,12 +31,14 @@ func GetRawConn(reader io.Reader) syscall.RawConn {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ReadFromMultiReader 用于读端实现了 readv但是写端的情况,比如 从socks5读取 数据, 等裸协议的情况。
|
/* ReadFromMultiReader 用于读端实现了 readv但是写端的情况,比如 从socks5读取 数据, 等裸协议的情况。
|
||||||
返回错误时,依然返回原 buffer或者新分配的buffer. 本函数不负责 释放分配的内存. 这样有时可以重复利用缓存。
|
|
||||||
若allocedBuffers未给出,会使用 utils.AllocMTUBuffers 来初始化 缓存。
|
若allocedBuffers未给出,会使用 utils.AllocMTUBuffers 来初始化 缓存。
|
||||||
|
|
||||||
|
返回错误时,依然会返回 原buffer 或者 在函数内部新分配的buffer. 本函数不负责 释放分配的内存. 这样有时可以重复利用缓存。
|
||||||
|
|
||||||
小贴士:将该 net.Buffers 写入io.Writer的话,只需使用 其WriteTo方法, 即可自动适配writev。
|
小贴士:将该 net.Buffers 写入io.Writer的话,只需使用 其WriteTo方法, 即可自动适配writev。
|
||||||
|
|
||||||
TryCopy函数使用到了本函数。
|
TryCopy函数使用到了本函数 来进行readv相关操作。
|
||||||
*/
|
*/
|
||||||
func ReadFromMultiReader(rawReadConn syscall.RawConn, mr utils.MultiReader, allocedBuffers net.Buffers) (net.Buffers, error) {
|
func ReadFromMultiReader(rawReadConn syscall.RawConn, mr utils.MultiReader, allocedBuffers net.Buffers) (net.Buffers, error) {
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user