MatsuriDayo / NekoBoxForAndroid

NekoBox for Android / sing-box / universal proxy toolchain for Android
https://matsuridayo.github.io/
Other
11.8k stars 990 forks source link

VLESS + XUDP 将导致 UDPBlocked #114

Closed mclovin-2k closed 1 year ago

mclovin-2k commented 1 year ago

描述问题 Server: XRay 1.8.1 Client: Nekobox 1.0.4

Nekobox 配置为 VLESS + xtls-rprx-vision + tls。 测试了 packet_encoding = none 和 packet_encoding = xudp。 前者结果为 fake fullcone(预期结果),后者结果为 UDP Blocked(预期为 fullcone),并会导致 Google Voice 无法使用。

可能是Singbox的问题,参见 SagerNet/sing-box#382 SagerNet/sing-box#540 。 那边的开发已经提交了 fix,但是这边更新了 Singbox 1.2.6 之后依然有这个问题。

预期行为: VLESS + xtls-rprx-vision + tls + xudp 时,udp nat 应为 fullcone。

实际行为: VLESS + xtls-rprx-vision + tls + xudp 时,udp nat 为 UDP Blocked。

如何复现 Server: XRay 1.8.1 Client: Nekobox 1.0.4 配置 VLESS + xtls-rprx-vision + tls + xudp,然后使用客户端的NAT测试。

提供有帮助的截图,录像,文字说明,订阅链接等。

日志

如果有日志,请上传。请在文档内查看导出日志的详细步骤。

arm64v8a commented 1 year ago

你在电脑上看看哪个 sing-box 版本通 xudp ?

mclovin-2k commented 1 year ago

我从Nekobox导出配置,稍加修改,然后在PC上分别试了 singbox 1.2.6 和 singbox 1.3-beta9,UDP 均为正常的 Fullcone。 测试工具为 NatTypeTester 6.2.0,服务端为 XRay 1.8.1。

singbox 1.2.6 singbox_1 2 6

singbox 1.3-beta9 singbox_1 3

这是客户端 Config(已删除服务端域名): config.txt

arm64v8a commented 1 year ago

XUDP 代码应该是一样的,再试试 https://github.com/MatsuriDayo/nekoray/releases/tag/2.27 这里的 nekobox_core 另外还需要nb4a出问题的日志(debug等级)

mclovin-2k commented 1 year ago

Nekoray 2.27 测试 UDP 不通。下面是截图: nekoray nekoray2 nekoray3

日志(已脱敏,UDP 测试大概从30行开始): log.txt

mclovin-2k commented 1 year ago

Nekobox 1.0.4 测试 UDP 失败的日志,使用的是 Nekobox 自带的 NAT 工具:

NB4A 4728065006762453342.txt

arm64v8a commented 1 year ago
  1. 若 sing-box 1.2.6 二进制文件 与其 version 中的 commit https://github.com/SagerNet/sing-box/commit/4e0742dbb372c89f596a8b1602ee2e9e22898e2b 一致,则运行 nekobox_core 2.27 效果应该与 sing-box 1.2.6 一致。
  2. 上游 issue 提到的修复 commit https://github.com/SagerNet/sing-box/commit/dab680326180bd5fcc15e3b403e6e03965d274c5 只存在于 1.3.x 版本中。1.2.6 应该是不通的。

或者等 1.3.x 正式发布,nekobox 这边会跟上。

mclovin-2k commented 1 year ago
  1. 若 sing-box 1.2.6 二进制文件 与其 version 中的 commit SagerNet/sing-box@4e0742d 一致,则运行 nekobox_core 2.27 效果应该与 sing-box 1.2.6 一致。
  2. 上游 issue 提到的修复 commit SagerNet/sing-box@dab6803 只存在于 1.3.x 版本中。1.2.6 应该是不通的。

或者等 1.3.x 正式发布,nekobox 这边会跟上。

重新测试了 Singbox 1.2.6。确实不通。(不知道第一次测试问题出在哪里) 等Nekobox 更新 Singbox 1.3 之后,我会再测试。 谢谢开发者。

mclovin-2k commented 1 year ago

Fixed in https://github.com/MatsuriDayo/NekoBoxForAndroid/actions/runs/4986830134