juicity / juicity

juicity is a quic-based proxy protocol implementation.
GNU Affero General Public License v3.0
822 stars 84 forks source link

[Bug Report] 关于通过域名代理UDP流量的问题 #140

Open maskedeken opened 9 months ago

maskedeken commented 9 months ago

Checks

Current Behavior

跟踪代码可以看出,UDP流量如果是域名的话,需要在本地做ResolveUDPAddr,这样一来如果遇到被污染的域名,被污染的IP结果就会传到服务端

Expected Behavior

UDP流量不会被污染

Steps to Reproduce

No response

Environment

Anything else?

No response

juicity-bot[bot] commented 9 months ago

Thanks for opening this issue!

mzz2017 commented 9 months ago

@maskedeken udp 传域名有问题,google 服务器不支持

mzz2017 commented 9 months ago

@maskedeken 主要是 http3 的问题,具体原因不详

maskedeken commented 9 months ago

@maskedeken udp 传域名有问题,google 服务器不支持

怎么解决域名污染问题?

maskedeken commented 9 months ago

@maskedeken 主要是 http3 的问题,具体原因不详

具体什么服务?我试一下

mzz2017 commented 9 months ago

image

mzz2017 commented 9 months ago

@maskedeken udp 传域名有问题,google 服务器不支持

怎么解决域名污染问题?

用mosdns之类的方案

maskedeken commented 9 months ago

hysteria2的UDP也是传域名的,方便试一下支持http3吗?

maskedeken commented 9 months ago

hysteria2的UDP也是传域名的,方便试一下支持http3吗?

经测试,hysteria2通过http3访问i.ytimg.com是没问题的

mzz2017 commented 9 months ago

@maskedeken 是传的域名吗,怎么确定的

maskedeken commented 9 months ago

@maskedeken 是传的域名吗,怎么确定的

从这个udpServer里可以看出来,客户端与服务端两边都是互传socks.Addr https://github.com/apernet/hysteria/blob/405572dc6e335c29ab28011bcfa9e0db2c45a4b4/app/internal/socks5/server.go#L223

maskedeken commented 9 months ago

我目前在改NekoBox的Juicity安卓插件,这个udp问题困扰我很久,如果NekoBox开了fake ip,udp就不能访问成功,因为本地解释域名得到的是fake ip

mzz2017 commented 9 months ago

@maskedeken 如果是 socks5 的话,udp 都是传 ip 的

mzz2017 commented 9 months ago

@maskedeken 不过我没有细看,我觉得可以从服务端抓 log 看看