首先你在浏览本文的时候,务必先去了解一下udp2raw-tunnel这个项目,这个项目的主要目的是为了解决各大宽带运营商对用户进行UDP协议的屏蔽或者是QoS限速。
udp2raw-tunnel的工作原理图:
对于我们普通宽带用户而言,可以利用的场景就是:
你此时有一台VPS服务器部署了SS服务并且部署了FinalSpeed双边加速软件,你此时使用FinalSpeed加速过的SS访问网页或者什么的,速度已经比裸连SS快很多了,但由于你的本地宽带运营商对你的UDP协议进行了QoS导致不能将带宽跑满。那么此时使用udp2raw-tunnel即可解决这个问题。
当然还有更悲剧一点的场景就是你的宽带运营商干脆屏蔽了UDP协议,导致你根本无法使用FinalSpeed的UDP模式,使用udp2raw-tunnel能让你成功使用上FinalSpeed双边加速软件。
LALA今天的文章就是来详细教大家去如何使用udp2raw-tunnel结合finalspeed来加速shadowsocks,以及简单对比测试一下在使用udp2raw-tunnel前后的速度差异。先预告一下:最后的测试结果反正是让我觉得菊花一紧的=。=
进入正题,首先准备一台VPS,系统选择CentOS6X64,使用Xshell登录你的机器。
那么这台机器就当是你的服务端了,你需要先在这台机器上安装好SS服务,有关SS的安装我想大家都不陌生,也应该不会出现不会安装这种问题吧,这里不在介绍如何安装SS。
接着我们来安装FinalSpeed,由于这款双边加速软件作者已经停止维护,所以LALA这里只能选择安装第三方的一键包:
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/finalspeed/master/install_fs.sh && bash install_fs.sh
安装完成后可以输入如下命令查看一下当前运行的状态:
/etc/init.d/finalspeed status
注意:如果你的VPS系统架构是基于OpenVZ的是不能使用TCP协议的,只能使用UDP协议,所以这里会提示:Select Network Interface failed,can’t use TCP protocal!
同时我们输入这个命令如果回显有150端口也能说明FinalSpeed是在正常运行的:
netstat -nlp|grep java
如图:
此时我们打开udp2raw-tunnel的项目地址,来下载项目所需的文件:
https://github.com/wangyu-/udp2raw-tunnel/releases
务必下载如图中箭头所指的两个压缩包:
此时我们解压udp2raw_binaries.tar.gz可以得到如图文件:
使用FlashFXP连接到你的VPS内,在root目录下新建一个目录命名为:udp2raw。进入这个目录上传这些文件:
全选这些文件,将这些文件的权限更改为:777
回到Xshell中,进入到udp2raw目录:
cd udp2raw
运行udp2raw服务端:
./udp2raw_amd64 -s -l0.0.0.0:8855 -r 127.0.0.1:150 -a -k "passwd" --raw-mode faketcp
注意:8855这个端口号可自行修改,只要你填写的端口不被占用即可,另外passwd这里要修改一个较为复杂的密码。
不出意外可以看到运行的相关信息:
至此服务端的配置就完成了,此时我们来配置客户端。
首先我们要来下载Oracle VM VirtualBox虚拟机:
点击Windows hosts即可开始下载:
在安装虚拟机的过程中,这里不要做任何改动,直接点击Next:
以及在安装过程中出现这个界面后要点击Yes:
以及在弹出这个窗口的时候要勾选信任和点击安装:
安装完毕后即可点击桌面上的图标打开你的虚拟机软件了,但LALA这里由于使用的操作系统是Windows764位,碰到了无法打开提示错误的情况,一般的解决办法是右键软件图标-属性-兼容性,以兼容模式运行这个程序:
成功打开虚拟机后点击管理-导入虚拟电脑:
解压我们之前下载的lede-17.01.2-x86_virtual_machine_image_with_udp2raw_pre_installed.zip得到lede-17.01.2-x86.ova文件,将这个文件导入到Oracle VM VirtualBox中:
不要做任何更改,点击导入即可完成:
选择我们刚导入进去的系统,点击启动:
看到如图界面后敲一下键盘上的回车键:
成功进入到这台虚拟机的系统中了:
ls命令或者ll命令查看一下这个虚拟机下的udp2raw文件名是什么:
那么得知文件名后就可以在这台虚拟机内启动udp2raw了:
./udp2raw_x86_asm_aes -c -r233.233.233.233:8855 -l0.0.0.0:150 --raw-mode faketcp -a -k"passwd"
注意:这里我是假设你的服务器IP为233.233.233.233,所以这里要改成你自己的服务器IP。另外注意端口要对应,其次passwd也要对应。
此时可以看到虚拟机中的运行信息,我们一定要记住source ip后面的这个地址,待会会用到,如图:
此时在服务端也能看到客户端虚拟机中发送过来的连接信息:
这就说明我们的客户端与服务端所配置的都是正常的!
接下来就是下载并安装FinalSpeed的客户端,可到我这篇文章中下载:
这个客户端的安装很简单,一直下一步即可,不多做说明。
打开FinalSpeed的客户端,我们先配置让SS直接通过FinalSpeed来加速。
服务器地址填写你的VPS公网IP,并将传输协议改成:UDP。接着修改你的实际宽带的速度,如果你不知道你的实际带宽是多少,可以先设置一个较小的值,这个可以往后自己调整。如图:
点击添加按钮,在新界面随便输入一个名称,加速端口这里填写你SS服务的端口,本地端口随意填写一个,只要不被占用即可:
打开你的SS客户端,添加一个新SS,服务器IP填写:127.0.0.1,服务器端口填写FinalSpeed上面的本地端口,密码加密什么的就和原本的SS一样即可:
此时连接你的SS,你现在的SS流量就是通过FinalSpeed加速过的了,但不经过udp2raw的伪装。
那么我们现在接着配置udp2raw,让FinalSpeed的流量经过udp2raw的伪装来绕过宽带运营商的UDPQoS。
我们打开FinalSpeed的客户端还是点击添加按钮,名称随便写一个,端口依旧是填写你要加速的SS服务的端口,本地端口我们在另外随意填写一个:
此时将FinalSpeed客户端中的服务器IP修改为我们之前在虚拟机中记录下来的source ip:
重新在SS客户端上添加一个新的SS服务,服务器IP还是填写127.0.0.1,服务器端口改成在FinalSpeed客户端中的本地端口,加密协议什么的依旧不变:
此时连接你的SS,那么流量就是经过udp2raw伪装的了,并且同时还被FinalSpeed加速。
那么到这里udp2raw-tunnel的配置与使用方法就基本讲的差不多了。
下面是我本人基于我的辣鸡宽带做的一些简单的测试:
裸连SS下载文件的速度:
裸连SS观看Youtube视频的速度:
使用FinalSpeed加速过的文件下载速度:
使用FinalSpeed加速过的观看Youtube视频速度:
(多次测试Youtube能稳定跑到4000KBPS左右,下载速度也基本稳定在500KB/S左右)
使用udp2raw-tunnel进行伪装后并用FinalSpeed加速过的下载文件速度:
使用udp2raw-tunnel进行伪装后并用FinalSpeed加速过的观看Youtube视频速度:
(多次测试Youtube和直接用FinalSpeed加速后的速度没多大区别,但速度极其不稳定,经常掉到1000-2000KBPS。另外下载速度也普遍比直接用FinalSpeed加速后的慢,而且连接极其不稳定,经常下载几MB就断掉,或者下载速度很慢。)
LALA基于三种不同的测试最后给出一个结论就是:
用了udp2raw-tunnel后不如不用,用了反而速度变慢,而且连接非常不稳定。当然我这里不是在黑作者的这个项目哈,这个测试我也说过了,仅仅只是基于我这辣鸡宽带而言的,可能应用到你的宽带上用起来效果就完全不同。我只是觉得比较蛋疼的是为什么用了速度反而还变慢,连接还变的非常不稳定,即我的宽带没有QoS我的UDP,那么也应该和直接使用FinalSpeed加速后的速度和稳定性差不多才对。
当然如果你的宽带运营商本身就很良心没有对你的UDP协议做任何手脚,那么这个udp2raw-tunnel也体现不出来任何效果。只有在我文中开头所说的那两种环境下,udp2raw-tunnel才能起到至关重要的作用,所以我非常希望能够有多个宽带用户使用udp2raw-tunnel试试,期待能遇到真正被QoS的用户在使用udp2raw-tunnel后在速度上得到质的提升~
我是这个软件的作者。不论最终评价是正面或负面的,感谢你发教程和测试
>用了udp2raw-tunnel后不如不用,用了反而速度变慢,而且连接非常不稳定。
1.你这个带宽目测至少有60mbps,你用的udp2raw_amd64不是带硬件加速版的。你的udp2raw和ssr都开启了加密,这样要耗双倍的CPU。60mbps的网速,加上双重加密,很可能你的CPU被打满了,那速度下降和不稳定都是正常的了。你可以把udp2raw的加密关了再测,或者用带硬件加速的版本(udp2raw_amd64_hw_aes)。你的VPS多少内存,什么配置,希望在测试的同时能说一下。另外,建议在测试的同时,发一下CPU占用记录。
2.多套一层tunnel会引入额外的包头,如果你的运营商本身没有Qos,速度轻微下降是正常的,不稳定和断线是不正常的,很可能是1中说的CPU被打满了。
3.用YOUTUBE测带宽是不可靠的方法,建议你用iperf3来测。
>所以我非常希望能够有多个宽带用户使用udp2raw-tunnel试试,期待能遇到真正被QoS的用户在使用udp2raw-tunnel后在速度上得到质的提升~
要找正面反馈的话,github的issue里有很多。也不乏数倍甚至10倍的速度提升。
>只有在我文中开头所说的那两种环境下,udp2raw-tunnel才能起到至关重要的作用,所以我非常希望能够有多个宽带用户使用udp2raw-tunnel试试,期待能遇到真正被QoS的用户在使用udp2raw-tunnel后在速度上得到质的提升~
如果要找正面的反馈,去github上的issue里看吧,很多。也不乏速度提升了几倍甚至十倍的例子。是不是只有在那两种情况下有用,希望不要只做了一个测试就下结论。
https://github.com/wangyu-/udp2raw-tunnel
非常感谢作者能够来到我这小站评论这么多,我的一篇无意而写的文章,希望你不要因为文中某些言论而感到不适,并且我已经特地说明了,我的这个测试仅仅只代表我个人宽带而言,也并没有否定你的这款软件的作用或者是功能,更没有负面的去评价你的这款软件。同时我也非常希望能够看到有更多的人在使用你的这款软件而得到好的效果,在看到你给我发的这个github链接中的反馈后,也更加能够证实你的软件是有卓越效果的。
但我还是仅以我个人的宽带而言来说,我按照你在上面所说的,将udp2raw用带硬件加速的版本使用后,和我之前用不带硬件加速的版本,速度上没有太大的差别,你可以看看这张截图(非常抱歉我的辣鸡博客评论不支持插图,你需要手动复制一下地址):
http://wx2.sinaimg.cn/large/0062WjpGly1fjo53mns0dj30in06bjrg.jpg
另外这是我按照你要求的,在连接并使用udp2raw时,VPS当前的CPU使用率和内存使用率等等信息:
http://wx1.sinaimg.cn/large/0062WjpGly1fjo53n4eqqj30gw04pgls.jpg
我怕评论的内容过长,所以这里我先写到这里,我会新回复一条,请你接着往下看。
接着我还是按照你说的将udp2raw的加密关掉,并且依旧使用udp2raw_amd64_hw_aes这个硬件加速版本。测试的下载速度大概是这样的:
http://wx4.sinaimg.cn/large/0062WjpGly1fjo53nlvjtj30j706dmx8.jpg
此时VPS的CPU、内存等使用信息:
http://wx4.sinaimg.cn/large/0062WjpGly1fjo53pa5gej30gv04kgls.jpg
并且连接依旧不是很稳定,非常不幸的是,我在测试第二次的时候,出现了断开的情况:
http://wx2.sinaimg.cn/large/0062WjpGly1fjo53psyufj30iv06saa3.jpg
所以我在这里想对作者说的是,真的不要对我这篇文章的内容产生什么不好的印象,我也不是在刻意的去说你的软件不好或者是什么其他的。我能够对这一切做出最客观的评价就是:是因为我个人的宽带有问题,我也知道我自己这宽带是什么尿性。我的宽带是真的挺辣鸡的,它能够免疫一切黑科技。
并且我一而再再而三的说明我的这个测试仅仅只是针对我个人。可能因为我文章中部分语句用词有点不当,对你造成了一些影响,这里我也对你说一声抱歉。
之前我看错了,我把那个6.3m和5.9m看成了下载速度,带宽并没有60mbps这么高.
我看了你的回复,用硬件加速版的效果也没什么区别。那可能不是CPU的问题吧。类似的问题之前见到过,https://github.com/wangyu-/udp2raw-tunnel/issues/42
这个楼主他在电信网络上用udp2raw速度只有原来的四分之一,但是在联通网络上速度提高了30多倍。速度变慢,有可能是你的运营商对tcp和udp有不同的路由策略,而tcp走的线路比udp拥堵,而udp又没有qos,这样把udp变成tcp可能会有相反效果,可能是线路本身的特点决定的。
抱歉,在我这边的浏览器上没法点到你那个回复下面的回复按钮,所以只能单独再发个评论了。
>所以我在这里想对作者说的是,真的不要对我这篇文章的内容产生什么不好的印象,我也不是在刻意的去说你的软件不好或者是什么其他的。我能够对这一切做出最客观的评价就是:是因为我个人的宽带有问题,我也知道我自己这宽带是什么尿性。我的宽带是真的挺辣鸡的,它能够免疫一切黑科技。
并且我一而再再而三的说明我的这个测试仅仅只是针对我个人。可能因为我文章中部分语句用词有点不当,对你造成了一些影响,这里我也对你说一声抱歉。
没事。另外你这个文章,教程部分写的不错。
谢谢作者再次回复我,看了你说的这些后,确实也非常有可能造成我这个问题的根本原因就是你说的这些,所以咱们也就不多纠结了,我这宽带就这样了,只是比较遗憾没有能够使用上作者的这款软件。改天等本辣鸡有钱了,换个好点的宽带再来试试你的软件,说不定效果就拔群了呢~
能认识像你这样的技术大佬是我的荣幸,能做个朋友当然更好,时间不早了,祝好梦~