Closed himan85 closed 3 months ago
packetEncoding: packet
在协议上目的地址只支持 IP,不支持域名,所以只能将域名解析为 IP 再发出。sing-box 自然也是不支持的,你确定 nekobox 在使用 packetaddr 时能将域名发送到远端吗?
看了下 sing-box packetaddr 是 TCP 是正常发送域名,UDP 是直接报错不支持域名。一定要用 packetaddr 的话也许也可以改成这样。或者改成不对目的地址是域名 UDP 应用 packetaddr。
测试下 12e93aa。已修改成只对目的地址是 IP 的 UDP 应用 packetaddr、不对目的地址是域名的 UDP 应用 packetaddr,并且不解析域名为 IP。由于协议限制,对于需要传递域名到服务端的场景不建议使用 packetEncoding: packet
。
测试下 12e93aa。已修改成只对目的地址是 IP 的 UDP 应用 packetaddr、不对目的地址是域名的 UDP 应用 packetaddr,并且不解析域名为 IP。由于协议限制,对于需要传递域名到服务端的场景不建议使用
packetEncoding: packet
。
再测试下0.11.4,发现packetEncoding跟fakedns也会有冲突,无论tcp还是udp服务端会显示198.18开头的地址,不过应该指向的是同一个问题。
跟踪了下v2ray的dns过程,他只在freedom的dial时候会解析域名,所以v5版的v2ray通过覆盖目标地址实现fullcone并不是一个理想的做法,会导致更多奇怪的问题,如果开启fakedns或者域名覆盖目标地址同时又启用packetEncoding: packet的时候,会造成stun或者quic这类协议无法正常工作。
但是还是建议把域名传递到服务端,用stun测试后发现v2ray只会提示‘unknown address type: 3’错误而不会导致其他问题,但某些改善这个问题的第三方vmess实现可以正常工作。
描述问题
起因是使用chatgpt的app需要开启覆盖目标地址设置才能正常访问,折腾一轮发现节点只要开启packet-encoding特性,覆盖目标地址就会失效,服务端看到的是目标ip而不是域名,目前不知道是exclave的bug还是v2ray的bug,该问题在使用singbox的nekobox不存在
如何复现
复现步骤:
只要同时打开上述两个设定就会复现
调试信息
暂无
预期行为
上述两项设定应不冲突
屏幕截图
暂无
设备信息