Files
v2ray_simple/examples/multi.client.toml
T

168 lines
5.9 KiB
TOML

# 注意,本作示例文件的listen和dial的地址均为 127.0.0.1,是可以直接进行内网测试的; 如果你要用于其它用途,自行修改地址。
[app]
loglevel = 1
# 使用了default_uuid后, 下面其它dial和listen的uuid就可以省略
default_uuid = "a684455c-b14f-11ea-bf0d-42010aaa0003"
admin_pass = "adfadfadfadfa" # 用于 api服务器的登陆密码.只要给出, 且命令行给了-ea参数, 就会自动运行api服务, 在 127.0.0.1:48345
[dns]
# 只要dns模块存在并给出了servers,则所有域名请求都会被先解析成ip
# dns解析仅仅是为了能够精准分流, 如果你不需要分流, 没有自定义dns需求,则不需要dns模块
# dns解析的默认方式是先查A记录,没有A再查AAAA记录
#strategy = 60 # 0表示默认, 4表示先查ip4后查ip6, 6表示先查6后查4; 40表示只查ipv4, 60 表示只查ipv6
# 在只查 ipv6时, 有可能查无结果, 此时将依然会把域名原封不动发送到节点, 而不是断开连接.
servers = [
"udp://114.114.114.114:53", # 如果把该url指向我们dokodemo监听的端口,就可以达到通过节点请求dns的目的.
#"udp://127.0.0.1:63782", # 如这一行 就是通过我们节点请求dns
#{ addr = "udp://8.8.8.8:53", domain = [ "google.com" ] }, # 还可以为特定域名指定特定服务器
#{ addr = "tls://223.5.5.5:853", domain = [ "twitter.com" ] } # 还可以 用 dns over tls
]
[dns.hosts] # 自己定义的dns解析
"www.myfake.com" = "11.22.33.44"
"www.myfake2.com" = "11.222.33.44"
[[listen]]
protocol = "http"
host = "127.0.0.1"
port = 1080
# noroute = true # 如果设置了noroute,则从该listen接收到的数据绝对不会被分流.
[[listen]]
protocol = "socks5"
host = "127.0.0.1"
port = 10800
[[listen]]
protocol = "dokodemo" # dokodemo协议会指定一个目标,并通过我们的节点来请求
network = "udp" # 本监听为了监听dns请求,所以必须要指明监听的传输层为 udp
host = "127.0.0.1"
port = 63782
target = "udp://8.8.8.8:53" #必须写这种url格式,前面是udp或者tcp,后面要加端口, 我们要转发到udp地址,所以用udp。
# 这个dokodemo 协议 在这一个示例中, 专门用于监听dns请求, 会通过我们的dial 来转发到 target(8.8.8.8,即google的dns服务器)
# 我们电脑只要配置好dns服务器指向127.0.0.1:63782,就可以通过我们的节点去申请实际的udp的dns请求,这里就是通过我们的 my_vless1 这个节点转发。
# 只要是定向的流量,如果某客户端可以自己指定地址,那么我们就可以用dokodemo进行转发
[[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"
[[dial]]
tag = "my_grpc"
protocol = "vlesss"
host = "127.0.0.1"
port = 4435
version = 0
insecure = true
utls = true
advancedLayer = "grpc"
path = "ohmygod_verysimple_is_very_simple"
[[dial]]
tag = "my_direct"
protocol = "direct"
fullcone = true
[[dial]]
tag = "my_hole"
protocol = "reject" # 和 v2ray的 blackhole 等价.
# extra = { type = "http" } #当 type 为 "http"时, reject 会发回一个简单的 HTTP 403 数据包,然后关闭连接。
# route就是分流规则,分流规则从上到下匹配,匹配到哪一个就用哪一个.
# 下面这个route中,我们只给了tag, 没给其它限定条件,这个是无效的,永远匹配不到。
#[[route]]
#toTag = "my_vless1"
# 关于 [[route]] 的 toTag:
# direct并不需要 在dial中实际给出。 "proxy" 代表首个dial, 也不需要实际赋值该tag
[[route]]
toTag = "my_ws1"
country = ["US"]
# 上面这个规则的 意思就是所有向US国家的ip请求的数据 全都 通过 my_ws1 这个dial 拨号, 如果你写direct自然就直接直连
# country 的含义请阅读 vlesss.client.toml
# 比如下面这个就是 将CN国家的ip 导向自己的grpc节点
#[[route]]
#toTag = "my_grpc"
#country = ["CN"]
# 比如下面这个就是 将CN国家的ip进行直连
#[[route]]
#toTag = "direct"
#country = ["CN"]
# 本示例为了测试节点可用性, 默认将直连的路由注释掉了, 如果你在CN国家并想直连CN的ip, 请取消注释上面三行. 并移除其它路由CN的route项
# 下面这种 toTag 传入列表的用法 非常简洁, 可以达到负载均衡的效果,
# 每次路由US国家的流量都会随机从列表中选一项
#[[route]]
#toTag = ["my_vps1","myvps2"]
#country = ["US"]
# 如果所有route均不匹配,则数据会流向 "proxy" 这个tag 的 dial,如果 没有任何dial具有 "proxy" 这个标签名,则流向第一个dial
# 如果匹配了app.mycountry, 则数据会直接被直连.
# 其它分流匹配示例:
# ip = ["0.0.0.0/8","10.0.0.0/8","fe80::/10","10.0.0.1"]
# 关于ip中使用cidr匹配ipv6,可以参考 https://www.mediawiki.org/wiki/Help:Range_blocks/IPv6
# 比如要想路由所有的ipv6地址,可用 ip = ["::/0"]
# 域名匹配完全兼容 v2ray,请参考 https://www.v2fly.org/config/routing.html#ruleobject
# 下面简单说一下:
# 不包含冒号的项会使用字符串匹配方式 (MATCH), 而如果是 domain:的话,会依次尝试匹配其子域名; 如果是full:的话则会完整匹配该域名
# 还可以用正则表达式,不过太难了我就不在这里讲了. 懂正则的人有需求就用, 不懂正则就不要用.
#
# domain = ["domain:www.google.com","full:www.twitter.com", "geosite:cn","baidu"]
# 比如这个就是 将CN国家的域名 导向自己的grpc节点
[[route]]
toTag = "my_grpc"
domain = ["geosite:cn"]
# 其它匹配:
# network = ["tcp","udp"] # 匹配 实际客户数据的 传输层协议
# fromTag = ["tag1","tag2"] # 匹配 来自哪一个 listen 的 tag
# country = ["CN"] # 匹配 geoip 以及 cn 顶级域名.