Magisk-Modules-Repo / v2ray

v2ray core
336 stars 86 forks source link

udp没有代理 #79

Closed Jaivv closed 4 years ago

Jaivv commented 4 years ago

游戏玩不了

whalechoi commented 4 years ago

曾尝试在PREROUTING链使用TPROXY并标记流量,然后在OUTPUT链对本机产生的udp流量进行标记,触发netfilter的重路由机制,结果流量并非按照预设路由表进行透明代理,相反,流量似乎没有流出本机,导致udp不通。

安卓通过流量标记,来控制流量流向(使用WiFi还是卡1,卡2上网),因此人为的在mangle表对流量进行标记,将导致流量无法流出本机,表现为无法上网。

而针对tcp流量的透明代理由于可以使用REDIRECT,无需进行流量标记,所以不会遇到此问题。

为了避免udp不通,这个模块并没有对udp进行操作。

whyou commented 4 years ago

曾尝试在PREROUTING链使用TPROXY并标记流量,然后在OUTPUT链对本机产生的udp流量进行标记,触发netfilter的重路由机制,结果流量并非按照预设路由表进行透明代理,相反,流量似乎没有流出本机,导致udp不通。

安卓通过流量标记,来控制流量流向(使用WiFi还是卡1,卡2上网),因此人为的在mangle表对流量进行标记,将导致流量无法流出本机,表现为无法上网。

而针对tcp流量的透明代理由于可以使用REDIRECT,无需进行流量标记,所以不会遇到此问题。

为了避免udp不通,这个模块并没有对udp进行操作。

仰望大神,我测试过同样的操作结果和你的描述完全一样,然而原因今天才明白。

Jaivv commented 4 years ago

不是很懂,使用tun2sockS可以解决这个问题吗?

whyou commented 4 years ago

不是很懂,使用tun2sockS可以解决这个问题吗?

原理上可以,不过这样做还不如直接使用基于系统VPN进行转发操作的软件吧?

Jaivv commented 4 years ago

不是很懂,使用tun2sockS可以解决这个问题吗?

原理上可以,不过这样做还不如直接使用基于系统VPN进行转发操作的软件吧?

有些手机没有tproxy,应该可以通过tun2sockS进行udp代理吧