首先你在浏览本文的时候,务必先去了解一下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后在速度上得到质的提升~
最新评论
5211314
能不能教我 一点不会