Files
v2ray_simple/examples/multi.client.toml
2022-12-27 19:47:14 +08:00

187 lines
7.4 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 注意本作示例文件的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记录 (先查4后查6)
# strategy = 60
# strategy 为 dns查询时 针对ipv4 和 v6 到底先查谁 的一个策略配置。
# 0表示默认, 4表示先查ip4后查ip6, 6表示先查6后查4; 40表示只查ipv4, 60 表示只查ipv6。
# 在只查 ipv6时 有可能查无结果, 此时将依然会把域名原封不动发送到节点, 而不是断开连接.
# ttl_strategy = 1
# ttl_strategy 为缓存过期时间的配置,小白暂时可以不管. 0表示默认(记录永不过期), 1表示严格按照dns查询到的TTL, 其他值则为自定义的秒数,然后程序会按这个时间周期性清理缓存。 (不可为负)
# listen = "udp://127.0.0.1:8053" # 如果listen给出, 则会开启一个dns监听, 你可以配置系统dns指向这里.
# 如果没有listen则 vs的dns模块只用于 代理中传来域名信息的解析, 与外部无关
# listen与 下面配置的dokodemo方法有所不同, dokodemo只是全转发, 不参照我们配置的dns解析, 而listen则完全走 servers 和 hosts 的配置。
servers = [
"udp://114.114.114.114:53", # 如果把该url指向我们dokodemo监听的端口就可以达到通过节点请求dns的目的.
#"udp://127.0.0.1:63782", # 如这一行 就是通过下面配置的dokodemo端口, 经过我们节点请求dns
#{ addr = "udp://8.8.8.8:53", domain = [ "google.com" ] }, # 还可以为特定域名指定特定服务器
#{ addr = "tls://223.5.5.5:853", domain = [ "twitter.com" ] } # 还可以 用 dns over tls
]
# servers 列表中的 第一项 将被作为 默认 dns 服务器, 必须保证能连上所以建议填写确实能连上的dns服务器否则可能出问题
[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
#fullcone = true
[[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
tls_type = "utls"
[[dial]]
tag = "my_ws1"
protocol = "vlesss"
host = "127.0.0.1"
port = 4434
insecure = true
tls_type = "utls"
adv = "ws"
path = "/ohmygod_verysimple_is_very_simple"
#sendThrough = "63.77.15.11:0" # dial可以设置 sendThrough为自己的某一个ip地址来达到选择特定的ip来拨号的目的。常用与 服务器有ipv4和ipv6双栈而因为某些原因需要单独使用 v4 或者v6 的情况。 这里给出的示例ip是假的请改为你自己的ip地址
[[dial]]
tag = "my_grpc"
protocol = "vlesss"
host = "127.0.0.1"
port = 4435
version = 0
insecure = true
tls_type = "utls"
adv = "grpc"
path = "ohmygod_verysimple_is_very_simple"
[[dial]]
tag = "my_direct"
protocol = "direct"
#fullcone = true
[[dial]]
tag = "my_reject"
protocol = "reject" # reject 和 v2ray的 blackhole 等价.
# extra = { type = "http" } #当 type 为 "http"时, reject 会发回一个简单的 HTTP 403 数据包,然后关闭连接。
# route就是分流规则分流规则从上到下匹配匹配到哪一个就用哪一个.
# 如果没匹配到任何 一个route项那就会流向默认的 dial即第一个 给出的 dial
# 下面这个route中我们只给了tag, 没给其它限定条件,这个是无效的,永远匹配不到。
#[[route]]
#toTag = "my_vless1"
# 关于 [[route]] 的 toTag:
# direct并不需要 在dial中实际给出。 "proxy" 代表首个dial, 也不需要实际赋值该tag
[[route]]
country = ["US"]
toTag = "my_ws1"
# 上面这个规则的 意思就是所有向US国家的ip请求的数据 全都 通过 my_ws1 这个dial 拨号, 如果你写direct自然就直接直连
# country 的含义请阅读 vlesss.client.toml
# 比如下面这个就是 将CN国家的ip 导向自己的grpc节点
#[[route]]
#country = ["CN"]
#toTag = "my_grpc"
# 比如下面这个就是 将CN国家的ip进行直连
#[[route]]
#country = ["CN"]
#toTag = "direct"
# 本示例为了测试节点可用性, 默认将直连的路由注释掉了, 如果你在CN国家并想直连CN的ip, 请取消注释上面三行. 并移除其它路由CN的route项
# 下面这种 toTag 传入列表的用法 非常简洁, 可以达到负载均衡的效果,
# 每次路由US国家的流量都会随机从列表中选一项
#[[route]]
#country = ["US"]
#toTag = ["my_vps1","myvps2"]
# 如果所有route均不匹配则数据会流向 "proxy" 这个tag 的 dial如果 没有任何dial具有 "proxy" 这个标签名则流向第一个dial
# 如果匹配了app.mycountry, 则数据会直接被直连.
# 其它分流匹配示例:
# 绕过局域网
#[[route]]
#ip = ["0.0.0.0/8","10.0.0.0/8","fe80::/10","172.16.0.0/12","192.168.0.0/16"]
#toTag = "direct"
# 关于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]]
domain = ["geosite:cn"]
toTag = "my_grpc"
# 其它匹配:
# network = ["tcp","udp"] # 匹配 实际客户数据的 传输层协议
# fromTag = ["tag1","tag2"] # 匹配 来自哪一个 listen 的 tag
# country = ["CN"] # 匹配 geoip 以及 cn 顶级域名.