fatedier / frp

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Apache License 2.0
80.97k stars 12.78k forks source link

[Feature Request] 应对运营商Udp QoS的一个建议——集成udp2raw #2626

Closed aa51513 closed 2 years ago

aa51513 commented 2 years ago

Describe the feature request

UDP流量超过某个阈值的时候,会触发QoS限制,导致大量的丢包,严重影响体验

最近我发现了一个非常好的东西udp2raw软件: https://github.com/wangyu-/udp2raw 可以把udp流量伪装成tcp流量,从而绕过Udp QoS

经过我简单测试之后,发现效果提升非常明显!Udp不再丢包!

这个伪装要求是端到端的,正好frp也是端到端的,就非常适合了

希望能在以后的开发过程中融入此功能选择,集成在项目当中,最大优化本软件!

Describe alternatives you've considered

No response

Affected area

sklohk commented 2 years ago

分享目前使用中的方式: client side: frpc -> tinvpn -> udp2raw <=~=~=> server side: udp2raw <- tinyvpn <- frps tinyvpn 与 udp2raw 是同一开发者 效果挺好,不需要合并

zzlinwq commented 2 years ago

效果挺好是什么意思?延时变好?

zzlinwq commented 2 years ago

分享目前使用中的方式: client side: frpc -> tinvpn -> udp2raw <=~=~=> server side: udp2raw <- tinyvpn <- frps tinyvpn 与 udp2raw 是同一开发者 效果挺好,不需要合并

效果挺好是什么意思?延时变好?

sklohk commented 2 years ago

frs/c的使用,着重在稳定流畅,延迟问题,在玩游戏时比较重要,但udp2raw对玩xbox游戏有致命影响,就是其mtu太低,无法达到live party 的要求。

sklohk commented 2 years ago

client side: frpc -> tinvpn -> udp2raw <===> server side: udp2raw <- tinyvpn <- frps tinyvpn 分享另一个稳定的做法,当有双wan 时,如一是电信线路,二是移动线路,可以同时设定各自的frpc通道,一主一备,cron定时检测通道,主不通换备,主通了换回主,转换只需修改frpc中服务器的地址,也就是tinyvpn配置中的两个内部地址

zzlinwq commented 2 years ago

frs/c的使用,着重在稳定流畅,延迟问题,在玩游戏时比较重要,但udp2raw对玩xbox游戏有致命影响,就是其mtu太低,无法达到live party 的要求。

MTU你设为多少? 不能调大?

wangyu- commented 2 years ago

frs/c的使用,着重在稳定流畅,延迟问题,在玩游戏时比较重要,但udp2raw对玩xbox游戏有致命影响,就是其mtu太低,无法达到live party 的要求。

udp2raw单独用是有MTU限制,但是UDPspeeder和tinyfecVPN都有用户态分片能力(--mode 0)。udp2raw+UDPspeeder/tinyfecVPN配合用,MTU最大可以支持到3000多。

sklohk commented 2 years ago

谢谢 wangyu,终于可以解决游戏问题,用了快两年了,没学全面,羞啊。

sklohk commented 2 years ago

frs/c的使用,着重在稳定流畅,延迟问题,在玩游戏时比较重要,但udp2raw对玩xbox游戏有致命影响,就是其mtu太低,无法达到live party 的要求。

udp2raw单独用是有MTU限制,但是UDPspeeder和tinyfecVPN都有用户态分片能力(--mode 0)。udp2raw+UDPspeeder/tinyfecVPN配合用,MTU最大可以支持到3000多。

您好,Mr.Wangyu, 刚刚再阅读您的作品的说明,还不懂如何设置,我用时都是 --mode 0, 现在要解决的情景是xbox live party 的mtu要求:>=1464,上网是pppoe, mtu=1492, 使用的路线是 wiregurad(or openvpn) -> udpspeederv2 - udp2raw <==> udp2raw <- udpspeederv2 <- wireguard(or openvpn),udp2rawspeederv2 --mode 0, 当wg or opvn mtu > 1150 时,logread(我用openwrt)就会出现mtu > 1200 的警告,所以一直只能设定 mtu=1150,希望能得到指导,可以达到1464,带宽降低不影响游戏,游戏有5m带宽就足够。 期待您的指导。

wangyu- commented 2 years ago

--mode 0下,只要冗余参数 -fx:y 里面x不是1,分片是自动的。不用特殊设置。 如果确实玩不了,可能是别的地方出了问题。

sklohk commented 2 years ago

好,谢谢,我继续学习。 有个建议,也是玩游戏的,tinyfecvpn 能否发展支持tap bridge, 把远端的内网桥接到本地 sk

zzlinwq commented 2 years ago

frs/c的使用,着重在稳定流畅,延迟问题,在玩游戏时比较重要,但udp2raw对玩xbox游戏有致命影响,就是其mtu太低,无法达到live party 的要求。

udp2raw单独用是有MTU限制,但是UDPspeeder和tinyfecVPN都有用户态分片能力(--mode 0)。udp2raw+UDPspeeder/tinyfecVPN配合用,MTU最大可以支持到3000多。

您好,Mr.Wangyu, 刚刚再阅读您的作品的说明,还不懂如何设置,我用时都是 --mode 0, 现在要解决的情景是xbox live party 的mtu要求:>=1464,上网是pppoe, mtu=1492, 使用的路线是 wiregurad(or openvpn) -> udpspeederv2 - udp2raw <==> udp2raw <- udpspeederv2 <- wireguard(or openvpn),udp2rawspeederv2 --mode 0, 当wg or opvn mtu > 1150 时,logread(我用openwrt)就会出现mtu > 1200 的警告,所以一直只能设定 mtu=1150,希望能得到指导,可以达到1464,带宽降低不影响游戏,游戏有5m带宽就足够。 期待您的指导。 你不是用tinyvpn?

sklohk commented 2 years ago

tinyfecvpn使用中,用于做frps/c通道,udp2raw-udpspeederv2-wireguard or openvpn or openconnect也用。这是由于tinyfecvpn是一对一的,当要做服务器端时,如果用tinyfecvpn,就得为每个连接开一个通道;wg, opvn, oc(ocserv)就可以设定为服务器端,接受n+1连接服务。tinyfecvpn最喜欢就是 tiny, 轻,简单。

zzlinwq commented 2 years ago

wg, opvn

wg, opvn可以支持·IPV6吗? tinyfecvpn支持·IPV6

sklohk commented 2 years ago

一直没有使用ipv6, 遇到ipv6都关掉。也没学习,不懂啊。

github-actions[bot] commented 2 years ago

Issues go stale after 30d of inactivity. Stale issues rot after an additional 7d of inactivity and eventually close.