shadowvpn的编译

本文作者为Shira,博客为矢澤にこ

简介

  • shadowvpn是shadowsocks作者的烂尾项目,网上流传的主要是0.17版本,最后一个版本是0.20版本,0.20和0.17主要的区别就是token,但0.17网上发现一些源码也带token,目前官方分支已经删除了,github上可以找到其他人保留的分支,另外这个是一个“烂尾项目”所以不建议一般用户去使用,还有,shadowvpn没有windows客户端,网上有自编译的0.17的windows客户端,但是不支持token并且有一些毛病。
  • 本次编译安装使用了ubuntu16.04 x64, centos的话可能需要编译安装autoconf,这里只是记录下安装过程,有问题自己解决,谢谢!

安装

  • 更新软件源并安装依赖
    apt update
    apt install screen wget git gcc autoconf -y
    apt install build-essential automake libtool git -y

安装

安装

安装

  • 获取代码和相关依赖
    git clone https://github.com/shirakun/ShadowVPN-1.git
    cd ShadowVPN-1
    git submodule update --init
    ./autoge.sh

获取依赖

这里使用的是我仓库里保存的一份,此版本支持token

  • 配置/检查依赖,编译,安装
    ./configure  --enable-static --sysconfdir=/etc
    make && make install

编译
编译
编译

  • 修改配置文件和运行
    如果运行configure时传递参数和我的一样,配置文件是/etc/shadowvpn/server.conf
    其中需要修改mtu部分,passwd部分,还有虚拟网卡部分,虚拟网卡名字以tun[X]命名,但不能为tun0,要不然会出错
    然后是mtu部分,mtu需要根据实际情况自己修改,过大丢包,过小影响速度,下面是一张说明图。

修改和运行

然而这张图并没什么卵用,你不用懂,只需要根据我的说明自己找到合适的mtu

cmd执行 ping -f -l 1452 www.baidu.com 逐步加大或者减少该值(1452),直到恰好不会出现DF拆包的提示(比如1452)。
然后mtu就是1452-20-8-24=1400,如果你监听的是ipv6那么需要再减20,这里减去的值在配置文件里有说明,不同版本可能不一样。
然后一些说明,shadowvpn使用udp协议传输,锐速和bbr对其无效,在不启用token的时候只能一个用户使用,多用户需要开启并配置token,或者再启用一个服务端监听另一个端口,将token配置文件里的token部分注释去掉即开启token,并发设置多少都一样,shadowvpn需要iptables的支持,请尽量不要改动iptables的规则。
对了,启用token多人使用的话没人都测试一次mtu,采用其中的最小值。

下载