Kitsunebi
A fully-featured V2Ray client for Android.
下载
<a href="https://play.google.com/store/apps/details?id=fun.kitsunebi.kitsunebi4android"><img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png" height="100"></a>
URI、二维码
Kitsunebi 安卓版所生成的 URI 和二维码格式为 FOV001 中所提出的 面向协议格式(Protocol Oriented Serialization),并支持该格式的导入。
负载均衡策略
Kitsunebi 使用的 Core 扩展了 v2ray-core 的功能,新增根据节点延迟值来选择最快速节点的策略,图形界面上可以添加节点组来开启,使用自定义配置的话,有以下配置项,除 tolerance 为毫秒外,其它所有时间数值单位为秒:
{
"tag": "proxy",
"selector": [
"primary_proxy",
"backup_proxy"
],
"strategy": "latency",
"interval": 60, // 每次测速之间的最少时间间隔
"totalMeasures": 3, // 每次测速中对每个 outbound 所做的请求次数
"delay": 1, // 每个测速请求之间的时间间隔
"timeout": 4, // 测速请求的超时时间
"tolerance": 300, // 可接受的延迟波动范围,切换最佳节点会将此波动范围考虑进去
"probeTarget": "tls:www.google.com:443", // 测速请求发送的目的地
"probeContent": "HEAD / HTTP/1.1\r\n\r\n" // 测速请求内容
}
probeTarget 中的协议部分可以是 tcp/udp/tls, tls 表示 TLS over TCP,上面配置表示向 www.google.com 发起一个 HTTPS 的 HEAD 请求,相当于这条命令:
curl -I 'https://www.google.com'
如果 probeTarget 是 "tcp:www.google.com:80",则相当于这条命令:
curl -I 'http://www.google.com'
延迟测试
延迟测试并非 ICMP Ping 或 TCP Ping,所用的方法跟负载均衡中的 latency 策略所用的方法大致一样,实际向 outbound 发送一个代理请求,记录返回非空数据所使用的时间。
延迟测试也相当于可用性或连通性测试,只要能测出延迟,就代表节点可用,如果测不出或超时,则可用性未知。
需要注意的是 延迟 跟 速度 并不是同一个概念,比如说同一个服务器上使用 QUIC 的 outbound 和一个使用 TCP 的 outbound,QUIC outbound 一般会有较低的延迟,但实际速度有可能比 TCP 慢。
规则集
规则集目前支持以下配置项:
- RoutingRule(等同于 Rule,路由规则配置)
- DOMAIN-KEYWORD(路由中的
纯字符串) - DOMAIN-SUFFIX(路由中的
子域名) - DOMAIN-FULL(路由中的
完整匹配) - DOMAIN(同上,等效)
- IP-CIDR(路由中的 IP 或 CIDR 规则)
- DOMAIN-KEYWORD(路由中的