各平台VPS快速搭建SHADOWSOCKS及优化总结
本文主要列举了几种vps(OpenVZ、Xen、KVM)一键搭建shadowsocks服务端,优化TCP,优化内核中的拥塞算法以提升shadowsocks效率和速度的方法.
一键安装脚本这里参照的是”秋水逸冰”的博文及脚本,出于低内存占用考虑,均为shadowsocks-libev.这里以操作系统的版本为分类进行阐述:
Debian或Ubuntu下:
安装方法:
脚本备份(点击展开):
卸载方法:
配置文件路径:
/etc/shadowsocks/config.json
启动(安装完成后已设置开机自启动):
停止:
上面的命令获得一个数字(pid),然后再使用kill+空格+这个数字 即可.
CentOS下:
安装方法:
脚本备份(点击展开):
卸载方法:
配置文件路径:
常用指令:
这里参照北落师门的方案,由于实际在vps上操作时发现,OpenVZ对内核限制比较多,所以需要多一个步骤,故这里将按VPS的技术类型对Xen、KVM和OpenVZ分开阐述:
Xen、KVM:
修改/etc/sysctl.conf文件,增加以下项目:
保存并退出该文件,然后使用以下指令使配置生效:
如果显示出了生效信息且没有显示出错信息,则优化完成.
OpenVZ:
对于OpenVZ,如果直接使用以上方法修改,当sysctl -p会发现一堆的permission denied出错信息.
谷歌了下,有说是因为OpenVZ模版的限制比较多直接修改sysctl会被拒绝的,也有说是因为openvz模版的问题要进行修复操作的.虽然网上搜索的结果表示OpenVZ这块的限制是由母机实现的,但是本人也搜索到了一个解决方法,在bandwagon上实验通过,至于其他vps能不能成功解除限制,还有待实验.
解决方法如下:
修复modprobe:
修复sysctl:
执行完以上两步,再重复上面Xen、KVM的方法进行优化,就不会报错了.
这部分参照了V2EX上的tcp_hybla 编译内核模块的教程.
这一步本人在Linode上实验成功.(Linode是Xen的),系统为Ubuntu,其他系统没有尝试.当然据说Digital Ocean (DO是KVM模板)上的ubuntu官方内核自带了,可略去编译部分,直接调用hybla算法.(补充:经本人测试,Digital Ocan上,直接在/etc/sysctl.conf文件中加入hybla参数就可以直接调用了.如果你是Digital Ocan的话,恭喜你,直接跳到下面方法的第九步)
由于本人对此部分了解有限,完全是照着原文操作成功的,现转载此部分内容,以作备用:
1. 查看你的机器内核版本:
显示结果如: 3.11.6-x86_64-linode35
2. 去 https://www.kernel.org/pub/linux/kernel/v3.0/ 下载相同版本的源码到任意目录,解压
3. 安装内核编译工具
4. 复制Linode原来的内核编译配置文件到源码根目录,在CONFIG_TCP_CONG_CUBIC=y下面增加一行 CONFIG_TCP_CONG_HYBLA=y,再生成编译模块需要的内核
查找CONFIG_TCP_CONG_CUBIC=y,在下面增加一行 CONFIG_TCP_CONG_HYBLA=y,保存
5. 耐心等待编译内核完成,单核编译大约需15分钟,完成后,进入模块所在的目录,编写Makefile
以下是Makefle的内容,注意要把KDIR修改为你自己的源码路径,其他则照抄就可以了
6.进入源码根目录,编译模块
7.进入到模块所在目录,复制生成的 tcp_hybla.ko 到加载目录,测试加载模块
加载前
加载后
设置hybal为优先
8.设置开机自动加载模块,把tcp_hybla.ko 复制到 /lib/modules/3.11.6-x86_64-linode35/kernel/net/ipv4
9.修改/etc/sysctl.conf 开机自动设置hybal为优先
保存并退出该文件,然后使用以下指令使配置生效:
参考链接:
Debian下shadowsocks-libev一键安装脚本