wangyu- / UDPspeeder

A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction, possible for All Traffics(TCP/UDP/ICMP)
MIT License
4.74k stars 833 forks source link

实际应用 #29

Closed QiXianPu closed 7 years ago

QiXianPu commented 7 years ago

今天早上没有更新v2时,我搭建环境玩游戏(守望先锋),方式如下:

$$ client 1--'TCP'---> $$ Server
$$ client 2--'UDP'---> udpspeeder cient ---'UDP'---> udpspeeder Server ---'UDP'---> $$ Server

延迟有点高(180ms),游戏卡顿。

晚上我重新搭建搭建了环境,并加入了udp2raw-tunnel,也使用的udpspeederv2

但现在效果没有早上的那个效果好,更卡顿了。

我觉得实际应用并没有缓解网络状况啊。 或者我有什么设置错误?

wangyu- commented 7 years ago

玩游戏建议用多倍发包,效果更好,不要用FEC,FEC主要是照顾到看视频和下载。用v1版的就可以,配置起来简单。

看起来没什么问题。你用speederv1 +udp2raw试试,把发包倍数调高一些,比如用-d3

不过,延迟变高也是有可能的。可能连到守望先锋服务器的路由策略比较好,是直连。而连到linode日本的连接绕路了。路由策略决定的,你没办法改。

游戏变得卡顿不正常,游戏卡顿一般说明是丢包了,发了冗余数据后丢包不应该变高,至少不会比原来差。

你的udpspeeder client和udp2raw client运行在什么机器上?虚拟机?

wangyu- commented 7 years ago

$$ client 1--'TCP'---> $$ Server $$ client 2--'UDP'---> udpspeeder cient ---'UDP'---> udpspeeder Server ---'UDP'---> $$ Server

我查了以下,守望先锋不止要用UDP,还要用TCP。

你这个连法相当于TCP没有加速,反而先连到日本再连到韩国守望先锋服务器,绕了路。卡顿有可能是TCP连接造成的。

加速游戏建议用udp2raw+udpspeederv1+openvpn。如果不是特别能折腾,建议不要用udpspeeder+$$。

wangyu- commented 7 years ago

1.那个udpspeederv2是不是没有-d的选项?

v2版和v1版‘-d’相对应的选项是 -f,如果不会用,建议就用v1版的吧。

2.对于openvpn,iptables可不可以控制通过openvpn的流量?

用iptables和tc命令配合可以,具体的你得自己研究下了。

wangyu- commented 7 years ago

看使用场景。

你提供一下具体的部署方式。openvpn udpseeder client server 都运行在什么机器上,游戏运行在什么机器上。

wangyu- commented 7 years ago

OpenVPN client 运行在虚拟机里的话,不需要Push DNS Changes to Redirect All Traffic Through the VPN,不过你要在Openwrt里配置路由规则。还有,在windows上让openvpn的网卡成为默认网卡。

如果OpenVPN client 运行在windows上比较简单(speeder仍然运行在虚拟机里),用Push DNS Changes to Redirect All Traffic Through the VPN应该就可以了。

具体细节你得自己goolge一下了。

wangyu- commented 7 years ago

我自己的使用方式是,udpspeeder和openvpn client都运行在路由器上。

我有两个路由器,一个是刷了openwrt的tplink,另一个是树莓派3b当路由器用,都可以。

wangyu- commented 7 years ago

对了,我再使用udp2raw client时没用-a参数,而是直接自己输入的iptables规则: iptables -I INPUT -p tcp -s X.X.X.X --sport 80 -j DROP 这样也行吧,就这一个规则吧?还有其他的吗?

你用udp2raw -g命令生成一下规则,然后自己手动加入这个规则,对udp2raw来说,只需要加这个一个规则,不需要其他。

wangyu- commented 7 years ago

目前openwrt提供的openvpn (openvpn-openssl_2.3.6-5_x86.ipk)版本低于官网的最新版本(2.4.4),不同版本的客户端和服务端可以连接吗?

应该是没问题的。

具体的OpenVPN配置你自己google一下吧,以前我配过但是已经忘了。我现在UDPspeeder和VPN是运行在路由器上的,虚拟机的你自己研究下。

另外,你可以参考下这个文章:http://blog.csdn.net/wolfid/article/details/77937488

leepoi commented 7 years ago

linode jp2 、vultr、conoha延迟和丢包率都很高,线路类似,中日线路晚高峰流量都被我国下片的绅士们占满了,个人感觉优化的余地不是很大。日本现在能用的就是linode jp1、Sakura、再就是软银机房里面的vps,即使如此,高峰期100ms也是家常便饭。韩国也有vps卖,你可以搜一下,中国北方从青岛出口通过海底光缆直连韩国,延迟和丢包率都很好

wangyu- commented 7 years ago

但是测试访问网站时直接显示无法解析DNS这类的信息。

可能是你的服务器没开启ipforward. 执行这条命令开启ip forward:

echo 1 > /proc/sys/net/ipv4/ip_forward

既然你都ping通了,那剩下的问题就是纯OpenVPN相关的了,去网上自己找一些OpenVPN教程看一下吧。

wangyu- commented 7 years ago

-A POSTROUTING -s 10.222.0.0/16 -o eth0 -j MASQUERADE

你服务器的网卡是不是不叫 eth0?

-A POSTROUTING -s 192.168.144.0/24 -o tun+ -j MASQUERADE

这个tun+是什么意思,我看不懂

还有,虚拟机是不是桥接的

wangyu- commented 7 years ago

我建议你如果不是特别能折腾的话,还是把OpenVPN运行在windows上吧,让windows上的OpenVPN连虚拟机里的UDPspeeder。

就像这个issue里的一样:

https://github.com/wangyu-/UDPspeeder/issues/38

wangyu- commented 7 years ago

你也不是用的虚拟机,估计你也不知道该怎么解决。

确实我也不知道。不过有人报告把VPN运行在虚拟机里也成功了,可以看一下:

http://blog.csdn.net/wolfid/article/details/77937488

他用的是l2tp,不过和OpenVPN没有本质区别。

我有个疑惑,为什么我使用ss-redir时没有任何问题,只是使用iptables把tcp和udp流量转发到ss-redir监听的端口后就可以正常访问所有网站了。而使用OpenVPN会出现无法解析DNS的情况?

s和VPN的工作原理不一样。s是socks5,工作在应用层;VPN工作在IP层。配置VPN不能套用原来s***的经验。

可能的原因太多了:

也许你在server端没配好OpenVPN的流量重定向规则。

也许你在本机没配置好让流量走OpenVPN。具体的原因可能是你没让虚拟机的IP成为你的默认网关,或者你没把DNS改成8.8.8.8而你先前配置的DNS又拒绝对国外IP服务。

也许你本来配对了,但是被你配的其他iptables规则搞坏了。尤其是你以前配过s**-redir的规则。我建议把iptables全都清空了再配置。

之所以没在windows上使用openvpn,是因为直接装在openwrt里使用时更方便。

如果你基础知识不好的话,暂时先把openvpn运行在windows上调试通。先把简单情况搞明白,再玩难度高的。

raphael008 commented 7 years ago

@QiXianPu 我和你遇到了一样的症状😂,加个QQ交流一下?base64: ODA3MzE0MDcx

wangyu- commented 7 years ago

有些运营商为了让ping值好看,会让ping走更快的路由路径。

比如我本地的移动就是,ping的延迟经常比tcp/udp要低几十毫秒。

这种情况用udp2raw_tunnel的icmp模式可以降低延迟。不过要小心,大流量ICMP可能会让VPS运营商以为你在DDOS攻击。根据我个人经验,vultr日本没问题,我经常用ICMP,从来没被封或被警告过。

wangyu- commented 7 years ago

@raphael008

可以看一下这个issue,我贴出了OpenVPN的完整配置,和虚拟机的网卡设置截图。

https://github.com/wangyu-/UDPspeeder/issues/55