分类: Shadowsocks 发表时间: 2019年10月17日

标题: Shadowsocks服务配置udp加速与转发

摘要: Shadowsocks服务除了配置v2ray-plugin插件伪装为http协议之外,还可以通过kcptun服务进行代理转发,从而利用udp协议的加速和规避封锁

shadowsocks利用kcptun转发加速的优势与不足

优点:

  • 由于udp协议的性质,使用udp协议传输数据相比于tcp协议来说更快
  • 同样由于udp协议的特点,相比于tcp协议来说,使用udp协议不容易被封锁

缺点:

  • 由于各大网络运营商对于udp数据包的支持程度不一致,在非联通网络内很多地区可能无法使用udp协议传输数据

环境说明

  • 服务器:debian 9.9
  • 客户端: ShadowsocksX-NG 1.9.2

服务器需要开放udp协议的1234端口

安装shadowsocks-libev

首先安装shadowsocks服务,github:https://github.com/shadowsocks/shadowsocks-libev,或者使用系统包管理器安装apt install shadowsocks-libev一路回车即可

建议安装前先进行默认源更换以及update

安装kcptun

之后安装kcptun服务,github:https://github.com/xtaci/kcptun,下载最新版本即可,注意要根据系统硬件选择对应版本,一般情况下,linux服务器选择kcptun-linux-amd64-xxxxxxxx.tar.gz这个包

在服务器运行命令wget https://github.com/xtaci/kcptun/releases/download/v20190924/kcptun-linux-amd64-20190924.tar.gz,下载完成后解压tar -zxf kcptun-linux-amd64-20190924.tar.gz,将解压出来的server_linux_amd64可执行文件移动到/usr/local/bin目录下名重命名mv server_linux_amd64 /usr/local/bin/kcptun-server

启动shadowsocks服务并配置为系统服务模块

在测试启动时我们可以手动运行ss-server命令手动启动服务以验证服务是否可以正常启动,命令/usr/bin/ss-server -s 127.0.0.1 -k your_pass -p 4123 -m aes-256-cfb -a nobody会在终端启动shadowsocks服务,出现如下图所示就表示成功启动

现在用ctrl+c快捷键停掉这个进程,我们需要将这个服务配置到系统的服务模块,来让它在后台运行并且加入开机启动,编辑文件vim /etc/systemd/system/local-ss.service,将如下内容粘贴进去

  1. [Unit]
  2. Description=local ss server
  3. After=network.target
  4. [Service]
  5. Type=simple
  6. ExecStart=/usr/bin/ss-server -s 127.0.0.1 -k your_pass -p 4123 -m aes-256-cfb -a nobody
  7. [Install]
  8. WantedBy=multi-user.target

保存退出,通过命令systemctl start local-ss启动服务,通过命令systemctl status local-ss查看服务状态,显示为如图所示表示启动成功

最后通过命令systemctl enable local-ss将其加入开机启动

其他可用管理命令

  • systemctl stop local-ss 停止local-ss服务
  • systemctl disable local-ss 禁用开机启动
  • systemctl restart local-ss 重新启动服务

启动kcptun服务并配置为系统服务模块

测试kcptun-server是否正常运行,命令kcptun-server -l 0.0.0.0:1234 -t 127.0.0.1:4123 --mode fast2 --key your_kcptun_key,运行后显示如图所示表示服务正常启动

停掉服务,我们将它配置到系统服务模块,编辑文件vim /etc/systemd/system/kcptun.service,将如下内容粘贴进去

  1. [Unit]
  2. Description=kcptun server
  3. After=network.target
  4. [Service]
  5. Type=simple
  6. ExecStart=/usr/local/bin/kcptun-server -l 0.0.0.0:1234 -t 127.0.0.1:4123 --mode fast2 --key your_kcptun_key
  7. [Install]
  8. WantedBy=multi-user.target

保存退出,通过命令systemctl start kcptun启动服务,验证过程同上边的local-ss服务

配置本地客户端

ShadowsocksX-NG默认集成了kcptun客户端插件,但是1.9.2这个版本的kcptun插件存在问题,其启动时的ip地址拼写错误导致无法启动,我们需要手动替换掉它,有效的版本可以从这里下载,github:https://github.com/shadowsocks/kcptun,下载最新版本即可,最新的版本号是20170718,此版本号比服务端的版本号低没关系,可以正常使用,根据操作系统下载对应平台的版本,解压后放到ShadowsocksX-NG的插件目录并替换掉默认的kcptun,如图


替换完成后,客户端配置按照上边第一个图去配置即可,插件选项的完整内容为mode=fast2;key=your_kcptun_key