Total Pageviews

Sunday 5 January 2020

在VPS服务器上安装KCPTUN,解决vps被‘TCP阻断’的问题

TCP阻断的表现形式:
  • 可以正常ping通(ICMP协议正常)。
  • 不能正常SSH连接,换端口也不行。
  • 不能正常使用SS/SSR服务,换端口也不行。
  • 不能打开服务器上架设的网站。
  • 在国外连接以上各项服务,一切正常。

解决TCP阻断的思路

在TCP阻断的封禁模式下,国外服务器上的所有TCP流量,都无法在国内正常连接。而SSH、HTTP流量、SS/SSR流量,走的恰好就是TCP流量。
在TCP流量被阻断的同时,其它协议,比如ICMP、UDP等流量,是可以正常连接的。
根据以上情况,我们可以将服务器上的Shadowsocks/ShadowsocksR使用的TCP流量,在服务器内部转化为UDP流量发出来。经过这样转化后,就可以正常在国内连接了。
KCPTUN是一款服务器网络加速工具,加速效果极为明显,开发的本意并不是用来解决IP被墙、服务器被TCP阻断的问题。
但是KCPTUN的一大特点,就是将服务器某个端口的TCP流量,转变为KCPTUN协议的UDP流量发出,所以正好可以用来解决TCP阻断问题
KCPTUN的运行,需要分别使用服务器端和客户端,连接成功后,就可以突破TCP阻断,顺便享受网络加速效果。
提示:KCPTUN在服务器上安装比较简单,并且不挑架构(OVZ/KVM),不挑系统(CentOS/Debian/Ubuntu)。
----------------------
KCPTUN服务器端一键安装

关于KCPTUN

KCPTUN是一款服务器双边加速工具,可以将服务器的TCP流量,比如Shadowsokcs/Shadowsocksr的流量,转化为KCP协议的UDP流量发出。
作为一款暴力发包工具,KCPTUN可以有效解决丢包问题,明显提升传输速度,是站长目前用过的效果最为突出的加速工具。

KCPTUN的优点:
1.不挑服务器平台,OpenVZ、KVM、Xen等虚拟化架构都支持。
2.基本不挑系统,Linxu下的CentOS、Debian、Ubuntu等都可以安装。
3.加速效果明显,可以避开TCP流量的QOS限速,减少拥堵。
4.经站长测试,使用KCPTUN对SSR流量加速后,访问Google/Youtube等网站时,可以达到接近秒开的效果,这一点表现比BBR/锐速更好一些。
KCPTUN的缺点:
1.需要KCPTUN服务器端和客户端配合使用。
2.参数配置项较多,可能需要多次尝试不同的参数搭配,从而获得最佳效果。下文会提供一些常用搭配。
3.由于是暴力发包,KCPTUN可能会耗费成倍的服务器流量,还会影响到服务器上的邻居。
4.只能加速单一端口的TCP流量,对其余端口的TCP流量无加速效果,所以常用于SS/SSR加速。
总结:
虽然存在缺点,但KCPTUN的优点更为明显,使用效果非常不错,可能会拯救你的超售严重、垃圾线路的VPS服务器,值得尝试一下。
注意:并不建议大家从超售严重商家购买VPS服务器,极大影响使用体验。
垃圾OpenVZ的VPS垃圾线路,原本无法正常使用、普通网页加载缓慢的网络。
使用KCPTUN加速后,可以实现白天看4K视频,晚上看1440P视频的效果,加速效果在百倍以上,基本可以算起死回生了。

KCPTUN一键安装脚本

下面我们介绍下KCPTUN服务器端的安装,本一键脚本来自kuoruan。
适用平台:OpenVZ、KVM、Xen等。
适用系统:CentOS、Debian、Ubuntu等Linux发行版。 
1.登录VPS服务器,分别运行如下三条命令:
wget --no-check-certificate https://github.com/kuoruan/shell-scripts/raw/master/kcptun/kcptun.sh
chmod +x ./kcptun.sh
./kcptun.sh

2.第三条命令运行后,会出现一系列参数设置项供选择,大部分选项回车默认即可,少部分需要自己设置。具体如下:
以下设置项中:
  • 端口:默认29900,即为KCPTUN与其客户端连接使用的端口,默认即可。
  • 要加速的地址:默认127.0.0.1。
  • 要加速的端口:设置为你的SS/SSR使用的端口。
  • 密码:自己设置,用于KCPTUN客户端连接使用,不要使用默认密码。
  • 加密方式选择:较强的加密方式会影响网速,建议默认aes或不加密。
加速模式:默认fast即可。随后可以手动修改为其它模式,测试加速效果。
以下三项设置中:
  • MTU:默认1350即可。
  • sndwnd:发送窗口大小,与服务器的上传带宽大小有关,这项与rcvwnd的比例会影响加速效果,可以暂时设置为默认的512。
  • rcvwnd:接收窗口大小,与服务器的下载带宽大小有关,也可以暂设置为默认的512,或者1024也可以。
  • 以下几项中,除了数据压缩外,其它保持默认参数即可。建议关闭数据压缩,可以在一定程度上提升传输效率。
  • KCPTUN安装目录:/usr/local/kcptun
    KCPTUN的参数配置文件:/usr/local/kcptun/server-config.json
    如何修改KCPTUN各项参数:打开以上参数配置文件,修改所需参数后保存,重启KCPTUN使设置生效。
  • 少部分情况下,可能会出现PiP命令已损坏的提示,可以尝试运行如下命令解决,解决后重新安装Kcptun:
  • wget -qO- --no-check-certificate https://bootstrap.pypa.io/get-pip.py | python
  • 后续步骤:KCPTUN客户端。

    KCPTUN在服务器上安装成功后,需要配置客户端与其连接,连接成功后会起到加速效果。
  • Mac OS上常用的Shadowsocks客户端为ShadowsocksX-NG,其最新版本已经集成KCPTUN功能,所以无需我们单独下载KCPTUN Mac客户端
    ShadowsocksX-NG目前的最新版本为1.8.2。
    下载地址:
  • 以上压缩包下载完成后解压安装。 

    KCPTUN Mac客户端使用教程

    准备工作:
    ShadowsocksX-NG为Mac OS平台的SS客户端,不能用于连接SSR服务器。
  • ShadowsocksX-NG配合KCPTUN加速SS流量:
    1.ShadowsocksX-NG安装完成后打开,添加服务器参数,如下图所示,参见下图解释进行参数设置:
  • 上图中区域1填写Shadowsocks连接信息,其中:
    • Address:填写服务器IP,以及Shadowsocks服务器端使用的端口。
    • Encryption:选择Shadowsocks服务器端设置的加密方式。
    • Password:填写Shadowsocks连接密码。
    • Remarks:备注,随意填写。
    • Enable over kcptun:选中后会出现区域2的KCPTUN信息。
    上图中区域2填写KCPTUN的连接信息,其中:
    • Kcptun Port:填写KCPTUN服务器端使用的端口,一般默认为29900。
    • Mode:填写服务器端设置的KCPTUN加速模式,一般默认为fast。
    • Encryption:KCPTUN服务器端设置的加密方式。
    • Disable compression:禁用压缩,与服务器端保持一致。
    • 其它各项:一般保持默认。
    2.以上各参数设置完成后保存,成功连接服务器即可实现KCPTUN对SS流量的加速了。

    KCPTUN如何为Mac OS的SSR客户端加速

    以上文章内容中,我们介绍的是使用KCPTUN为Mac OS平台的SS客户端加速。如果你使用的是SSR客户端,那么以上方案就不可行了。
    Mac OS上常用的SSR客户端为ShadowsocksX-NG-R,目前最新版本为1.4.4。
    ShadowsocksX-NG-R 1.4.4下载地址:
    由于ShadowsocksX-NG-R并没有自带KCPTUN功能,所以需要下载官方KCPTUN客户端,两者配合使用。
    KCPTUN Mac客户端下载地址:
    官方KCPTUN客户端并没有图形化界面,需要另外下载,与客户端配合使用。
    KCPTUN Mac客户端图形化界面下载地址:
    kcptun_xclient如何使用:
    该图形化界面的作者,同时发布有Windows版本,两者界面基本一致。
  • 需要注意的是:
    KCPTUN参数设置好后,记得修改ShadowsocksX-NG-R的连接参数,将服务器IP改为127.0.0.1,端口改为KCPTUN的本地监听端口。其它参数与ShadowsocksR服务器端保持一致即可。