Closed 2dust closed 1 year ago
之前的测试issue https://github.com/2dust/v2rayN/issues/3753
日志级别 warning 应该对应 warn,现在是debug。其它几个级别选项测试了正常。
选VLESS协议添加一个节点信息
1 此时跳过证书验证我选 true,生成的配置也是"insecure": true, 正常。
2 我编辑这个节点,把tls换成 reality,此时界面变了后,跳过证书验证是维持的true的值,并生成在了singbox配置中。
它应该是当用户选REALITY的时候,这个 "insecure": 要么不生成,要么生成出来就只能是false。用REALITY是不支持自签证书的(我认为是不支持)
路由设置中的 singbox域名解析策略 排序上要不要把空白放到最下方,以方便诱导用户要选的话,选ipv4_only。
我记得解压后用户第一次运行程序,它默认是空白状态没错吧。
路由设置中用户填域名时,我看你用的是
domain 匹配完整域名。
domain_suffix 匹配域名后缀。
我习惯是填的
domain_keyword 匹配域名关键字。
效果我想了下应该没区别。看你怎么想了吧。
路由规则中小优化建议
比如下图用户填了2行,但是他不知道要用,结尾,如图
他确定后实际变成了这样,你能不能设计成检查到用户是换了行的,忘记最后加,给他自动加一个,了?
比如我发现第2个用户多输入了,实际你程序中是把这个,自动去掉了。
路由设置里 设为活动选集 现在是先点右键,再点左键选,键盘回车的作用现在是把灰色选框向下移动一行直到最底一行。
建议回车的作用要不默认 同 设为活动选集效果(我推荐这行为符合直觉)
或是改成 现在的双击鼠标左键进入编辑详细的界面
这里补充一个建议,如果用户在s ing-box DNS设置里不填内容,你干脆不要生成整个 DNS 字段 ,不然你生成有 server字段,没有 rule字段,DNS过程会变得奇怪的慢。
不生成整个 DNS 部分字段 是用系统DNS,反正用户不懂,DNS泄露也没几个人注意到。
~sing-boxDNS不填现在默认给的是 tls 8.8.8.8。我看路由器插件上都是默认用 tcp 8.8.8.8查。~
~就算不想用UDP查,就tcp查也够了嘛 tls得又多点延时?建议优化下了。~
忽略这个建议。原因是我发现 DNS里只填 server字段。在访问网站是 DNS解析速度会莫名变慢许多。
我自己做模板没写 整个 DNS 字段 ,自己用 tun 模式又是写好了的,刚测试才发现了这莫名现象。
~sing-boxDNS设置我只想填 dns里面的server字段,保存会提示不行。~
~我猜你做的校验逻辑是还要必须有rule字段。建议改下只要有server字段也让保存。~
这个参数,我在TUN里面 DNS 设置中,我看 sing-box文件是用在比如去广告反回成功的信号。
正常的DNS解决,还是把 这个关闭cache不开 false好吧
sing-box点击导入默认DNS,这样改的原因
流程 用户用了 "domain_strategy": "ipv4_only" 参数,DNS RULE只有geosite cn用 dns_local(223.5.5.5)解析。没命中的走第1个 远程 tcp 1.1.1.1,去DNS泄露网站查不会露
DNS字段的 strategy
https://sing-box.sagernet.org/zh/configuration/dns/#strategy
拨号字段的 domain_strategy
https://sing-box.sagernet.org/zh/configuration/shared/dial/#domain_strategy
让我想起*ray里面类似的。我没仔细研究sing-box上面2个都写1个值或不同值有什么结果。
*ray里是
DNS里
queryStrategy: "UseIP" | "UseIPv4" | "UseIPv6"
UseIPv4 只查询 A 记录;UseIPv6 只查询 AAAA 记录。默认值为 UseIP,即查询 A 和 AAAA 记录。
出站里的
domainStrategy: "AsIs" | "UseIP" | "UseIPv4" | "UseIPv6"
在目标地址为域名时, 配置相应的值, Freedom 的行为模式如下:
"AsIs": Freedom 通过系统 DNS 服务器解析获取 IP, 向此域名发出连接.
"UseIP"、"UseIPv4" 和 "UseIPv6": Xray 使用 [内置 DNS 服务器](https://xtls.github.io/Xray-docs-next/config/dns.html) 解析获取 IP, 向此域名发出连接. 默认值为 "AsIs"。
我先建议你不写 DNS字段的 strategy。反正你做了 拨号字段的 domain_strategy,这个值做了选项菜单的。
配置示例
几个级别选项测试了正常。
额,这个写反了,
路由设置中用户填域名时,我看你用的是
domain 匹配完整域名。
domain_suffix 匹配域名后缀。
我习惯是填的
domain_keyword 匹配域名关键字。
效果我想了下应该没区别。看你怎么想了吧。
这个部分是抄的v2box,暂时按这个来
忘记最后加,给他自动加一个,了?
去掉逗号然后,加入就比较难了,尝试下
忽略这个建议。原因是我发现 DNS里只填 server字段。在访问网站是 DNS解析速度会莫名变慢许多。
我自己做模板没写 整个 DNS 字段 ,自己用 tun 模式又是写好了的,刚测试才发现了这莫名现象。
~sing-boxDNS设置我只想填 dns里面的server字段,保存会提示不行。~
~我猜你做的校验逻辑是还要必须有rule字段。建议改下只要有server字段也让保存。
现在只检查了server,刚刚测试了只有server可以过
这个参数,我在TUN里面 DNS 设置中,我看 sing-box文件是用在比如去广告反回成功的信号。
正常的DNS解决,还是把 这个关闭cache不开 false好吧
直接把这个属性去掉了,不要了,按core默认值
前面提到的基本都调整了 disable_cache这个属性直接去掉了
建议在 路由设置窗口——移除设置规则,新增按键盘 DEL 为快捷键
路由设置——二级菜单 “规则集设置” 里面,少做了 sing-box域名解析策略 选框
在路由设置本级菜单中是有。我试了下这2级的逻辑,理解了你做在 二级菜单 “规则集设置” 里面 的 域名解析策略 优先于 下图的这本级菜单。
你看有不有必要在二级菜单 “规则集设置” 里面,也按逻辑把 sing-box域名解析策略 选框 做了?
现在只检查了server,刚刚测试了只有server可以过
已测试,无问题
额,这个写反了,
已测试,日志等级对应的,全无问题
忘记最后加,给他自动加一个,了?
去掉逗号然后,加入就比较难了,尝试下
测试了,用户每行不打半角英文逗号,和最后一行多打半角英文逗号, 都能自动检测修复!厉害。
关于用户输入成中文,逗号的测试
下图2行结尾是中文状态的,逗号
确定后查看自动更改情况是,中文状态的,逗号没自动去,把第1行结尾自动加了英文,逗号。
如果能随带修复了,可增加用户体验
选VLESS协议添加一个节点信息
1 此时跳过证书验证我选 true,生成的配置也是"insecure": true, 正常。
2 我编辑这个节点,把tls换成 reality,此时界面变了后,跳过证书验证是维持的true的值,并生成在了singbox配置中。
它应该是当用户选REALITY的时候,这个 "insecure": 要么不生成,要么生成出来就只能是false。用REALITY是不支持自签证书的(我认为是不支持)
已测试,修复了。
这个参数,我在TUN里面 DNS 设置中,我看 sing-box文件是用在比如去广告反回成功的信号。 正常的DNS解决,还是把 这个关闭cache不开 false好吧
直接把这个属性去掉了,不要了,按core默认值
哈哈我本来想建议你,这参数我是看sing-box给的示例,是只在 block 广告分类用,你直接不写了,看你自己嘛。我自己用tun模式时的配置,我抄的singbox官方示例
我现在选的(激活状态)的配置是用sing-box核心,我点更新 geo file 测试,它是更新到了 v2rayN\bin 文件夹的 geoip.dat,geosite.dat 。
你要不要考虑加个逻辑判断,当前选的节点(配置)是哪个核心,更新对应的 geo 文件?
PS 我以前问过一回。 更新geo后你是取消了自动重启 xray/sing-box 一次,能不能考虑加上了?我想应该是下载了新的geo文件,要重新载入(重启) xray/sing-box 才是马上生效。
检查 更新 sing-box core,现在是没做判断,如果已是最新版本,没判断,还是弹框让下载(不过这功能不急着加,空了做吧)
xray我试了现在是1.8.1,点更新会提示已是最新版本 1.8.1
想建议下既然这次加了对生成Sing-box配置支持,sing-box里面的 https://sing-box.sagernet.org/zh/examples/shadowtls/ shadowtls 挺好用的。我刚看了你的添加 shadowsocks 菜单里面,还没做这功能,你要不要考虑这回一起做了?
我选上 开启Mux多路复用。测试了添加 VMESS ss trojan 3种,我看到你做了 trojan 对应sing-box的配置了
生成的配置如下。我不知道你怎么规划Mux这个对于Sing-box里的选项,我自己用测试了 Mux搭shadowtls 和 trojan 2种组合。
你现在是只给的 smux 和官方文档推荐的 4 4 的默认值。sing-box最新1.3 beta9 版本又加了padding这个参数
http://sing-box.sagernet.org/configuration/shared/multiplex/
"multiplex": {
"enabled": true,
"protocol": "smux",
"max_connections": 4,
"min_streams": 4,
"max_streams": 0
}
我觉得 max_connections min_streams 这2个参数你默认就给4,不给用户自己填的菜单。
我现在想到的是你可以在这儿,做2个选项框。当用户把 开启Mux多路复用 选中后出现,第1个框做 protocol 值的选项 http://sing-box.sagernet.org/zh/configuration/shared/multiplex/#protocol
第2个框做 http://sing-box.sagernet.org/configuration/shared/multiplex/#padding padding的true 和 false 选项。
补充出现这2个框后,不给空白选项,你给默认值吧,比如默认是h2mux padding true
比如我测试的 trojan REALITY h2mux padding 配置
{
"type": "trojan",
"tag": "proxy",
"server": "", // 服务端的 IP
"server_port": 443,
"password": "chika",
"tls": {
"enabled": true,
"server_name": "", // 与服务端一致
"utls": {
"enabled": true,
"fingerprint": "chrome" // 使用 uTLS 库模拟客户端 TLS 指纹
},
"reality": {
"enabled": true,
"public_key": "", // 服务端执行 ./sing-box generate reality-keypair 生成,私钥对应的公钥,填 "PublicKey" 的值
"short_id": "" // 与服务端一致
}
},
"multiplex": {
"enabled": true,
"protocol": "h2mux",
"max_connections": 4,
"min_streams": 4,
"padding": true
}
},
发现了你的细心设置,地址填域名时,在sing-box配置的dns部分你细心的这样生成了配置。吐槽下 能不能把 tag local_local 改下比如叫 local_dns
发现了你的细心设置,地址填域名时,在sing-box配置的dns部分你细心的这样生成了配置。吐槽下 能不能把 tag local_local 改下比如叫 local_dns
tag 用local_local 是为了防止和用户填入的tag重复 我发下是远程是域名时,如果有dns配置时,一定要把这个域名用本地解析,不然就无法解析
我选上 开启Mux多路复用。测试了添加 VMESS ss trojan 3种,我看到你做了 trojan 对应sing-box的配置了
生成的配置如下。我不知道你怎么规划Mux这个对于Sing-box里的选项,我自己用测试了 Mux搭shadowtls 和 trojan 2种组合。
你现在是只给的 smux 和官方文档推荐的 4 4 的默认值。sing-box最新1.3 beta9 版本又加了padding这个参数
http://sing-box.sagernet.org/configuration/shared/multiplex/
"multiplex": { "enabled": true, "protocol": "smux", "max_connections": 4, "min_streams": 4, "max_streams": 0 }
我觉得 max_connections min_streams 这2个参数你默认就给4,不给用户自己填的菜单。
我现在想到的是你可以在这儿,做2个选项框。当用户把 开启Mux多路复用 选中后出现,第1个框做 protocol 值的选项 http://sing-box.sagernet.org/zh/configuration/shared/multiplex/#protocol
第2个框做 http://sing-box.sagernet.org/configuration/shared/multiplex/#padding padding的true 和 false 选项。
补充出现这2个框后,不给空白选项,你给默认值吧,比如默认是h2mux padding true
比如我测试的 trojan REALITY h2mux padding 配置
{ "type": "trojan", "tag": "proxy", "server": "", // 服务端的 IP "server_port": 443, "password": "chika", "tls": { "enabled": true, "server_name": "", // 与服务端一致 "utls": { "enabled": true, "fingerprint": "chrome" // 使用 uTLS 库模拟客户端 TLS 指纹 }, "reality": { "enabled": true, "public_key": "", // 服务端执行 ./sing-box generate reality-keypair 生成,私钥对应的公钥,填 "PublicKey" 的值 "short_id": "" // 与服务端一致 } }, "multiplex": { "enabled": true, "protocol": "h2mux", "max_connections": 4, "min_streams": 4, "padding": true } },
mux 这个不影响使用,并且大佬们还在争论,暂时不处理
想建议下既然这次加了对生成Sing-box配置支持,sing-box里面的 https://sing-box.sagernet.org/zh/examples/shadowtls/ shadowtls 挺好用的。我刚看了你的添加 shadowsocks 菜单里面,还没做这功能,你要不要考虑这回一起做了?
shadowtls 这个版本不做,先把基础搞好,后面要加时再处理。 shadowtls 这个是不是和reality差不多?
dns cache
dns在各个级别都有缓存,情况比较复杂,所以在sing-box里面就把这个是否缓存属性直接去掉了 实测并没有太多影响,开关都没有什么感觉
shadowtls 作者的blog的文章 https://www.ihcblog.com/a-better-tls-obfs-proxy/
我不是很懂,了解了下,它表演了tls握手,同时客户端到服务端不是用目标网站的TLS加密,用的ss里面的ss2022加密方式,在sing-box当客户端,能原生UDP也可在客户端配UoT。还能用上sing-box的mux。
和REALITY比较的话最近在Xray的TG频道有文章介绍。你去看看我不帖了23333。但是我试了下还是挺流畅(我感觉是因为用到了mux)
算得上用的人少,小众,不做也好,我看到就想起提了句,你先减少工作量。
dns cache
dns在各个级别都有缓存,情况比较复杂,所以在sing-box里面就把这个是否缓存属性直接去掉了 实测并没有太多影响,开关都没有什么感觉
学习到了。
Trojan + REALITY + h2mux padding 这组合如果你没时间先不做也可以的。(我想真没什么人这么配着用23333)
处理下这些
点 导入置默认配置,画线处是没格式化的
点确定后,再进来看已被格式化好了,细心的功能。
能不能把点击 导入的配置,默认就格式化好(强迫症)23333
我发下是远程是域名时,如果有dns配置时,一定要把这个域名用本地解析,不然就无法解析
学到了。我平时地址是填的IP。我在用tun模式时也发现了这现象。
mux 这个不影响使用,并且大佬们还在争论,暂时不处理
iss和群消息下午都看了2333,现在不做也好。
我看到你给gRPC生成的配置默认加了健康检查,sing-box里面H2也能用 "idle_timeout": "60s", "ping_timeout": "20s", 你给用H2生成的配置也一起加下嘛。 文档链接
"transport": {
"type": "grpc",
"service_name": "grpc",
"idle_timeout": "60s",
"ping_timeout": "20s",
"permit_without_stream": false
}
"idle_timeout": "60s",
"ping_timeout": "20s",
它文档2个都给的是15s,你要不要改成15s?
测试了Trojan+REALITY 用xray-core和sing-box生成的配置都OK。
请问:我记得你说过有计划新增hysteria配置生成(sing-box core),这个计划目前要做,还是暂时延后做了?
我对用hy的能配置,这功能也比较期待。平时用的频率多吧。
我看到你给gRPC生成的配置默认加了健康检查,sing-box里面H2也能用 "idle_timeout": "60s", "ping_timeout": "20s", 你给用H2生成的配置也一起加下嘛。 文档链接
"transport": { "type": "grpc", "service_name": "grpc", "idle_timeout": "60s", "ping_timeout": "20s", "permit_without_stream": false }
"idle_timeout": "60s", "ping_timeout": "20s",
它文档2个都给的是15s,你要不要改成15s?
sing-box的已经加了,默认值现在是用的xray的默认值
请问:我记得你说过有计划新增hysteria配置生成(sing-box core),这个计划目前要做,还是暂时延后做了?
我对用hy的能配置,这功能也比较期待。平时用的频率多吧。
有计划做,你有配置好的客户端例子吗?
有计划做,你有配置好的客户端例子吗?
singbox文档上也有,下面是自己用的配置示例
{
"type": "hysteria",
"tag": "proxy",
"server": "",
"server_port": 443,
"up_mbps": 50, // 这个参数的选框必做,建议如果用户留空给默认值30或50的上行,一般家宽50上行就到头了
"down_mbps": 150, // 这个参数的选框必做,建议如果用户留空给默认值100到200的下行,hy里客户端填目标下行速度挺重要的,你默认值千万不要给太大了。200是我测过一般geekbench5 500分的vps跑200M时 CPU占用在测speedtest.net网页版多线程,拿htop看就满了的经验。
"auth_str": "chika", // 它的验证方式你这是当“密码验证”,你还要区外做一个选框,万一有用户是使用了ofbs验证。
"recv_window_conn": 26843545, // 这参数可不生成,用singbox有默认值
"recv_window": 67108864, // 这参数可不生成,用singbox有默认值
"disable_mtu_discovery": false, // 这个 禁止MTU也可不做选项,我反正没看到有人用过也不知道什么场景用得到
"tls": {
"enabled": true, // 启用 TLS是必做选项
"server_name": "", // SNI也是
"alpn": [
"h3" // alph也必做,允许用户留空,但是sing-box里留空不知道默认用什么,hy原版留空是有默认值样。要不你考虑下不让用户留空或如何处理。另外还少一个允许不安全的链接,有些用自签的用户也要一个选项。
]
}
},
密码验证和obfs我记得逻辑关系是 互相可单独开,或同时一起开。不互斥的关系。
我习惯是只用密码,不开obfs。
https://github.com/2dust/v2rayN/issues/3770#issuecomment-1525586205
tag 用local_local 是为了防止和用户填入的tag重复 我发下是远程是域名时,如果有dns配置时,一定要把这个域名用本地解析,不然就无法解析
这个问题我看了Sing-box群聊天 终于明白了。
https://github.com/SagerNet/sing-box/releases/tag/v1.2.2 这个版本更新中提到的
在它的DNS模块的rule写下面的
{
"outbound": [
"any"
],
"server": "dns_direct" // 对应本地的那个tag
}
此时出站模块中 server 如果写的域名,就会用本地DNS解析成IP了。
我发现你现在做好了另外一种解决方法。这方法是优雅一点(也没必要改你现在的逻辑)。
刚好想到这问题时想起提到的,结果是这么用的。
或者写这个下载Geo文件时,cdn.jsdelivr.net 域名都能正常用本地DNS解析后下载文件成功。
"geoip": {
"download_url": "https://cdn.jsdelivr.net/gh/soffchen/sing-geoip@release/geoip.db",
"download_detour": "direct"
},
"geosite": {
"download_url": "https://cdn.jsdelivr.net/gh/soffchen/sing-geosite@release/geosite.db",
"download_detour": "direct"
},
所有v2ray core支持的协议,非自定义配置现在可以生成 sing-box 的配置文件了
测试方式
下载x64包 v2rayN.zip
运行,配置文件的core类型选择sing-box
测试是否可用;如有问题,请先自行查看guiConfigs/config.json是否正确的sing-box配置
发现问题请反馈
注意