2015年7月26日星期日

用shadowsocks-manyusery和ss-panel搭建ss站及优化全过程(CentOs)

前言

翻墙翻来翻去好多年,终于发现ss好像用起来比较舒服,于是开始折腾,从搬瓦工到路由器刷openwrt一路慢慢搞过来,终于某天闲的蛋疼想搭个ss站,找了很多教程,也走了不少弯路,毕竟自己是个半吊子,有些大神写教程的时候觉得基础的东西就一笔带过了,没办法,只能自己慢慢摸索。折腾来折腾去,想着,干脆写一个建站过程算了,方便像我一样的菜鸟使用。写的不好,大家轻拍...

第一步,申请一个vps

其实是废话了,没vps,谁还搭ss站啊。试了很多家的vps,搬瓦工、Digitalocean、Vultr、Conoha、亚马逊云等等,其实都差不多,Digitalocean、Vultr、Conoha这三家都有免费的试用时间或者优惠码之类的,大家可以试试,看谁家的服务器比较适合自己。我试了几个月下来,Vultr、Conoha这两家的日本服务器对联通非常好,可以u2b 1080p流畅播放,不过Vultr限制流量,Conoha不限流量且支持支付宝,我想大家都知道怎么选择了吧...
反正我最后选择了conoha,因为我是联通,付个我的推广链接,用这个注册,充值500日元可以获得1000日元的优惠券(充1000可以得到2000的优惠券,再多没试过了)

链接:www.conoha.jp
电信用户就比较苦逼了,新加坡kt据说很好,可惜也很贵,linode日本一直缺货,建议选一下小众的日本服务器,樱花、能网什么的,网上都说樱花要日本信用卡,不过有人说他用国内卡申请一次成功的,大家可以试试。我测试的结果是 电信 选择走kddi线路的日本vps,优化下,基本可以到500K 600K左右,至少1080p的u2b可以看了。

---------------------------------------废话完了的分割线--------------------------------------

第二步,装mysql、Apache 等,让ss-panel可以运行起来

我用的是centOS,以下全是centOS的命令,用其他系统的,请自行修改命令,我是个半吊子,不会了....
这一步建议装一键包就好,推荐下秋大的lamp一键包,http://teddysun.com/lamp,很多人都是用的秋大的ss一键包吧,秋大的lamp一键包也很好用...以下复制自秋大lamp教程,对了记得下载winwcp和putty...
用putty登录vps,一条一条的执行以下命令

1、事前准备(安装 wget、screen、unzip,创建 screen 会话):

yum -y install wget screen unzip
screen -S lamp

2、下载、解压、赋予执行权限:

wget --no-check-certificate -O lamp.zip https://github.com/teddysun/lamp/archive/master.zip
unzip lamp.zip
cd lamp-master/
chmod +x *.sh

3、安装 LAMP 一键安装包,终端中输入以下命令:

./lamp.sh 2>&1 | tee lamp.log
选择sql版本
选择sql版本.png
输入数据库密码
输入mysql数据库密码.png
选择位置
选择数据库位置(默认就好).png
选择php版本
选择php版本.png
安装完成
lamp安装完成.png
因为ss-panel需要5.4以上的php,所以装的时候php版本和mysql版本都选择5.5就好,然后等15到30分钟,秋大的lamp一键包就装好了。

---------------------------------------废话完了的分割线--------------------------------------

第三步,装ss-panel,新建数据库

现在,安装ss-panel,SS-Panel的安装很简单,下载这个ZIP包然后解压放到网站根目录,点击这里下载,秋大的一键包网站默认目录是/data/www/default,把sspanel的压缩包解压后,用winwcp把所有文件都上传到网站根目录。这时候可以访问下你的vps的IP地址,能打开一个ss-panel的界面了,不过邀请码啊、登录啊、注册啊之类的链接点不开。
sspanel解压后
sspanel解压后.png
上传到网站根目录/data/www/default
上传到网站根目录.png
然后,新建一个数据库,打开浏览器,输入你的vps IP/phpmyadmin,点击左上角的NEW,新建一个名为shadowsocks的数据库(名字叫什么都行,叫这个是为了后面可以不用修改数据库名字)。
点new
左上角 点new.png
新建数据库
新建数据库.png
再,点击shadowsocks,中间靠上的地方,选择导入,浏览本地计算机,选择刚才解压的ss-panel目录,里面有个sql的文件夹,把这个文件夹里面的5个文件都导入到shadowsocks数据库下面(浏览-选择文件-点击执行)。
点击新建的数据库名字
点击新建的数据库.png
选择从计算机中上传,导入本机解压的ss-panel目录下的sql文件夹中的5个文件
导入sspanel下的sql文件夹中的文件.png
导入完成,一共5个文件
导入完成.png
这时,用winwcp编辑lib/config-sample.php,修改数据库名称和密码,然后保存。把 lib/config-sample.php 重命名为 config.php 。
修改sspanel配置文件
修改sspanel配置文件.png
好了,在浏览器输入你的vps的IP,应该能打开网站了,默认管理帐号: first@blood.com ,密码 1993,登陆进去可以修改密码,修改用户名需要进入phpmyadmin,在shadowsocks数据库下面,user里面改了就好了。
ss-panel还有后台管理员不能修改用户的bug,Orvice大神说修复了,我试了还是不能修改,不过好在其他功能正常,这个没啥影响。

第四步,装shadowsocks-manyuser

以下部分内容复制自厘米天空
项目地址:https://github.com/mengskysama/shadowsocks

1.先安装需要的环境依赖

yum install m2crypto python-setuptools
easy_install pip

2.安装cymysql

pip install cymysql

3、安装shadowsocks-manyuser

先安装git
yum -y install git
然后下载ss多用户版,安装
git clone -b manyuser https://github.com/mengskysama/shadowsocks.git

4、配置数据库连接

用winwcp进入,/root/shadowsocks/shadowsocks
编辑Config.py文件:修改对应的端口、密码等等操作。如下格式
#Config
MYSQL_HOST = '127.0.0.1' --这里一定要改,这一行是服务器IP,127.0.0.1表示本机
MYSQL_PORT = 3306
MYSQL_USER = 'ss' --这里写你的数据库用户名,一般是root
MYSQL_PASS = 'ss' --这里写你装lamp时候设置的密码
MYSQL_DB = 'shadowsocks' --写你用phpmyadmin建立的数据库名称
这个往下不用修改
MANAGE_PASS = 'ss233333333'
#if you want manage in other server you should set this value to global ip
MANAGE_BIND_IP = '127.0.0.1'
#make sure this port is idle
MANAGE_PORT = 23333

5、开启服务

打开putty,输入
cd /root/shadowsocks/shadowsocks
进入shadowsocks目录,
执行
python server.py
成功启动ss多用户版.png
如上图所示就算安装成功了。
可以用screen进程守护。我是用的screen,方法如下:
打开putty,输入
cd /root/shadowsocks/shadowsocks
进入shadowsocks目录,先不要执行python server.py,
输入
screen -S ss
回车
再输入
python server.py
回车
等一分钟左右
按住Ctrl+a,不要放,再按d退出就可以了。
查看screen运行任务可以screen -ls可以看到刚才创建的ss任务在运行。
至此多用户SS后端安装完毕。
最后,IP/admin 登录进ss-panle,选择节点列表,配置节点信息,地址填写你的vps地址,加密方式RC4-md5(shadowsocks-manyusery默认的加密是RC4-md5,默认网站管理帐号: first@blood.com ,密码 1993)

---------------------------------------废话完了的分割线--------------------------------------

第五步,Shadowsocks服务器TCP优化配置

以下部分内容复制自TENNFY WU

1、编辑limits.conf,增加连接数

用winwcp登录,打开/etc/security/limits.conf
增加以下两行
* soft nofile 51200
* hard nofile 51200
增加tcp连接数.png
保存。
开启shadowsocks服务之前,先设置一下ulimit,用putty登录,输入以下命令
ulimit -n 51200

2、调整内核参数

首先科普下TCP拥塞控制算法:
中美之间的线路质量不是很好,rtt较长且时常丢包。TCP的设计目的是解决不可靠线路上可靠传输的问题,即为了解决丢包,但丢包却使TCP传输速度大幅下降。HTTP协议在传输层使用的是TCP协议,所以网页下载的速度就取决于TCP单线程下载的速度(因为网页就是单线程下载的)。丢包使得TCP传输速度大幅下降的主要原因是丢包重传机制,控制这一机制的就是TCP拥塞控制算法。
Linux内核中提供了若干套TCP拥塞控制算法,这些算法各自适用于不同的环境。
1)reno是最基本的拥塞控制算法,也是TCP协议的实验原型。
2)bic适用于rtt较高但丢包极为罕见的情况,比如北美和欧洲之间的线路,这是2.6.8到2.6.18之间的Linux内核的默认算法。
3)cubic是修改版的bic,适用环境比bic广泛一点,它是2.6.19之后的linux内核的默认算法。
4)hybla适用于高延时、高丢包率的网络,比如卫星链路——同样适用于中美之间的链路。
我们需要做的工作就是将TCP拥塞控制算法改为hybla算法,并且优化TCP参数。
(1)、修改sysctl.conf配置文件,优化TCP参数
用winwcp登录,打开/etc/sysctl.conf
添加以下代码
fs.file-max = 51200
#提高整个系统的文件限制
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 3240000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla
保存。
换内核算法.png
然后用putty登录vps
(2)、加载hybla算法(不支持OpenVZ)
/sbin/modprobe tcp_hybla
查看现在的的算法。
sysctl net.ipv4.tcp_available_congestion_control
重启
用putty登录,输入
sysctl net.ipv4.tcp_available_congestion_control
看看是不是如下图,hybla在第一个,如是就ok了。
h在第一了.png
(3)、还可以安装免费版的锐速,不过好像用处不大

---------------------------------------最后结束的分割线--------------------------------------

感谢秋大
感谢Orvice
感谢厘米
感谢TENNFY WU
感谢Lazy Cat
感谢在安装过程中帮助过我的人.

本文出自:http://feifeiba.cf/default/8.html

1 条评论: