为什么这次选择CentOS 7 x64,因为CentOS 6.5的默认系统内核版本太低2.6.32.能搭建SS服务,但能做的优化很的限,而自己编译升级内核会碰到些不明原因的错误,不如直接选择CentOS 7 x64的系统。有它的默认内核3.10的支持,足够优化了。
48N免费翻墙网
48N免费翻墙网
48N免费翻墙网
首先是注册DigitalOcean VPS服务器的详细说明
48N免费翻墙网
最近发现搬瓦工不太稳定,尝试了一下DigitalOcean提供的VPS服务器,发现稳定性比搬瓦工好很多,而且它是独立架构,不会受同物理主机下别的VPS的影响,而且可修改内核。
48N免费翻墙网
缺点是它比搬瓦工的费用贵,最便宜的是5美元一个月,它是充值后按天扣费。
48N免费翻墙网
注册地址 https://www.digitalocean.com/?refcode=311b9df948ee (使用本链接注册的账户会立即到账10美元,可使用两个月)
48N免费翻墙网
新用户注册通过推荐连接注册会送10美元,可以使用两个月,但需要自己再充5美元激活账户或者绑定你的美元币种信用卡0元激活,这里推荐PAYPAL来支付,当然你也可以通过双币信用卡用美元支付。
48N免费翻墙网
48N免费翻墙网
下面说说注册方法,
48N免费翻墙网
点击连接 https://www.digitalocean.com/?refcode=311b9df948ee 进入页面,下拉到最下面,点击 GET STARTED NOW ,之后输入你的邮箱和密码(注意:邮箱需要来接收ROOT密码),点击SIGN UP,之后进入DigitalOcean控制面板,点击左上脚 Create Droplet,你看到已经到帐10美元,但需要再充值5美元激活或者绑定你的美元币种信用卡0元激活。
48N免费翻墙网
打开刚才你注册的邮箱会收到验证邮件,点击里面的连接之后输入你的邮箱和密码登陆,进去是添加信用卡界面,如果你有双币信用卡,请按信用卡上面的信息如实 填写,账单地址,如果是在中国,就写英文地址。这里推荐PAYPAL来支付,当然你需要PAYPAL来绑定你的信用卡,PAYPAL支付的话,下拉到 PayPal Payment,就可以用PAYPAL支付5美元(PAYPAL注册地址 https://www.paypal.com )。支付之后,你的DigitalOcean账户就激活了。(或者绑定你的美元币种信用卡0元激活。) 之后输入你VPS主机的“Droplet Hostname”主机名(英文),然后“Select Size”选择你的付费套餐,选5美元的就可以了(512内存,20SSD硬盘,1000GB流量),”Select Region“节点推荐“San Francisco”,美国的西海岸,国内访问是最稳定的。”Select Image“这个是系统,选择CentOS 7 x64(点击CENTOS)。别的选项保持默认,最后点击最下方的“Create Droplet”到此,你的VPS创建成功,你的注册EMAIL会收到VPS的IP,和ROOT密码,默认SSH端口是22。
48N免费翻墙网
48N免费翻墙网
接着到http://www.putty.org/下载PUTTY,来管理你的VPS。(进去之后页面最上方点here,之后下载你需要的版本)
48N免费翻墙网
48N免费翻墙网
打开PUTTY,输入你的VPS的IP,端口号。点击下面的OPEN。 连接到你的VPS了,用户打root回车,会让你输入密码,就是邮件收到的密码,注意大小写(这里输入密码时,是不可见的,你按着输入就行)之后回车。第 一次登陆后会让你改密码,你再输一次原密码后回车,输入新密码,回车,再次输入新密码回车,之后就命令操作了。
48N免费翻墙网
48N免费翻墙网
48N免费翻墙网
48N免费翻墙网
下面是Shadowsocks服务的布置
48N免费翻墙网
请一行行输入下面的命令后回车,执行完一行后再执行下一行。(可以复制后在putty中点击鼠标右键黏贴,键盘回车执行。如询问(Y/N),请Y回车。)
48N免费翻墙网
48N免费翻墙网
yum install epel-release
48N免费翻墙网
48N免费翻墙网
yum update
48N免费翻墙网
48N免费翻墙网
yum install python-setuptools
48N免费翻墙网
48N免费翻墙网
easy_install pip
48N免费翻墙网
48N免费翻墙网
pip install shadowsocks
48N免费翻墙网
48N免费翻墙网
以上命令执行完之后,shadowsocks已安装到你的VPS中,但还没有运行。
48N免费翻墙网
接着我们执行命令来配置SS服务。
48N免费翻墙网
48N免费翻墙网
vi /etc/shadowsocks.json
48N免费翻墙网
48N免费翻墙网
按键盘i建进入编辑模式,复制以下内容文件中。(请改“端口号”为你需要的端口号 范围 1 - 65535,改“你的密码”为你自己的密码。)
48N免费翻墙网
————————————————复制以下内容————————
48N免费翻墙网
{
48N免费翻墙网
"server":"0.0.0.0",
48N免费翻墙网
"server_port":端口号,
48N免费翻墙网
"local_address": "127.0.0.1",
48N免费翻墙网
"local_port":1080,
48N免费翻墙网
"password":"你的密码",
48N免费翻墙网
"timeout":500,
48N免费翻墙网
"method":"aes-256-cfb",
48N免费翻墙网
"fast_open": true
48N免费翻墙网
}
48N免费翻墙网
————————————————复制以上内容————————
48N免费翻墙网
复制完成后,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
48N免费翻墙网
48N免费翻墙网
附上面代码的说明
48N免费翻墙网
48N免费翻墙网
server
服务端监听的地址,服务端可填写 0.0.0.0
48N免费翻墙网
server_port
服务端的端口
48N免费翻墙网
local_address
本地端监听的地址
48N免费翻墙网
local_port
本地端的端口
48N免费翻墙网
password
用于加密的密码
48N免费翻墙网
timeout
超时时间,单位秒
48N免费翻墙网
method
默认 “aes-256-cfb”
48N免费翻墙网
fast_open
是否使用 TCP_FASTOPEN, true / false(后面优化部分会打开系统的TCP_FASTOPEN,所以这里填true,否则填false)
48N免费翻墙网
48N免费翻墙网
48N免费翻墙网
我们需要后台自启动服务
48N免费翻墙网
再一行行运行以下命令,执行完一行后再执行下一行。(可以复制后在putty中点击鼠标右键黏贴,键
48N免费翻墙网
48N免费翻墙网
盘回车执行。如询问(Y/N),请Y回车。)
48N免费翻墙网
48N免费翻墙网
yum install python-setuptools supervisor
48N免费翻墙网
48N免费翻墙网
easy_install pip
48N免费翻墙网
48N免费翻墙网
pip install shadowsocks
48N免费翻墙网
48N免费翻墙网
以上命令执行完之后,需要编辑/etc/supervisord.conf文件
48N免费翻墙网
48N免费翻墙网
vi /etc/supervisord.conf
48N免费翻墙网
按键盘i建进入编辑模式,光标移到底部空行处,如没空行就在末尾回车加入空行。复制以下内容。
48N免费翻墙网
————————————————复制以下内容————————
48N免费翻墙网
[program:shadowsocks]
48N免费翻墙网
command=ssserver -c /etc/shadowsocks.json
48N免费翻墙网
autostart=true
48N免费翻墙网
autorestart=true
48N免费翻墙网
user=root
48N免费翻墙网
————————————————复制以上内容————————
48N免费翻墙网
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
48N免费翻墙网
48N免费翻墙网
再一行行运行以下命令,执行完一行后再执行下一行。(可以复制后在putty中点击鼠标右键黏贴,键盘回车执行。如询问(Y/N),请Y回车。)
48N免费翻墙网
48N免费翻墙网
sudo chkconfig --add supervisord
48N免费翻墙网
48N免费翻墙网
sudo chkconfig supervisord on
48N免费翻墙网
48N免费翻墙网
service supervisord start
48N免费翻墙网
48N免费翻墙网
supervisorctl reload
48N免费翻墙网
48N免费翻墙网
到此Shadowsocks已经在CentOS 7 x64下安装配置成功,再运行命令
48N免费翻墙网
48N免费翻墙网
reboot
48N免费翻墙网
48N免费翻墙网
重启服务器使服务生效。
48N免费翻墙网
48N免费翻墙网
结束以上部分,已经可以使用正常Shadowsocks服务。
48N免费翻墙网
48N免费翻墙网
下面是优化部分,优化的前提是内核版本是需要3.7以上,查看内核版本,执行命令
48N免费翻墙网
uname -a
48N免费翻墙网
会返回你的内核信息。
48N免费翻墙网
48N免费翻墙网
48N免费翻墙网
接着我们要进行一些优化,这才是选择CentOS 7 x64系统的主要原因。
48N免费翻墙网
48N免费翻墙网
重启之后,我们用PUTTY重新登陆服务器。
48N免费翻墙网
48N免费翻墙网
首先我们要在系统中启用TCP Fast Open
48N免费翻墙网
运行命令
48N免费翻墙网
48N免费翻墙网
echo 3 > /proc/sys/net/ipv4/tcp_fastopen
48N免费翻墙网
48N免费翻墙网
需要重启后也生效TCP Fast Open ,要编辑sysctl.conf
48N免费翻墙网
运行
48N免费翻墙网
48N免费翻墙网
vi /etc/sysctl.conf
48N免费翻墙网
48N免费翻墙网
按键盘i建进入编辑模式,光标移到底部空行处,复制以下内容。
48N免费翻墙网
————————————————复制以下内容————————
48N免费翻墙网
net.ipv4.tcp_fastopen = 3
48N免费翻墙网
————————————————复制以上内容————————
48N免费翻墙网
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
48N免费翻墙网
48N免费翻墙网
增加tcp连接数量
48N免费翻墙网
运行命令
48N免费翻墙网
vi /etc/security/limits.conf
48N免费翻墙网
按键盘i建进入编辑模式,光标移到底部# End of file上面一行空白处
48N免费翻墙网
,复制以下内容。
48N免费翻墙网
————————————————复制以下内容————————
48N免费翻墙网
* soft nofile 51200
48N免费翻墙网
* hard nofile 51200
48N免费翻墙网
————————————————复制以上内容————————
48N免费翻墙网
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
48N免费翻墙网
48N免费翻墙网
运行命令
48N免费翻墙网
ulimit -n 51200
48N免费翻墙网
48N免费翻墙网
48N免费翻墙网
接着我们要调整TCP拥塞控制算法为hybla
48N免费翻墙网
48N免费翻墙网
首先科普下TCP拥塞控制算法:
48N免费翻墙网
中美之间的线路质量不是很好,rtt较长且时常丢包。TCP的设计目的是解决不可靠线路上可靠传输的问题,即为了解决丢包,但丢包却使TCP传输速度大幅 下降。HTTP协议在传输层使用的是TCP协议,所以网页下载的速度就取决于TCP单线程下载的速度(因为网页就是单线程下载的)。丢包使得TCP传输速 度大幅下降的主要原因是丢包重传机制,控制这一机制的就是TCP拥塞控制算法。
48N免费翻墙网
Linux内核中提供了若干套TCP拥塞控制算法,这些算法各自适用于不同的环境。
48N免费翻墙网
1)reno是最基本的拥塞控制算法,也是TCP协议的实验原型。
48N免费翻墙网
2)bic适用于rtt较高但丢包极为罕见的情况,比如北美和欧洲之间的线路,这是2.6.8到2.6.18之间的Linux内核的默认算法。
48N免费翻墙网
3)cubic是修改版的bic,适用环境比bic广泛一点,它是2.6.19之后的linux内核的默认算法。
48N免费翻墙网
4)hybla适用于高延时、高丢包率的网络,比如卫星链路——同样适用于中美之间的链路。
48N免费翻墙网
我们需要做的工作就是将TCP拥塞控制算法改为hybla算法,并且优化TCP参数。
48N免费翻墙网
48N免费翻墙网
48N免费翻墙网
运行
48N免费翻墙网
sysctl net.ipv4.tcp_available_congestion_control
48N免费翻墙网
48N免费翻墙网
会得到 net.ipv4.tcp_available_congestion_control = cubic reno
48N免费翻墙网
表示我们系统的TCP拥塞控制算法只能选择cubic或者reno算发,hybla算法并没有启用,我们就要启用hybla算法。
48N免费翻墙网
48N免费翻墙网
运行
48N免费翻墙网
/sbin/modprobe tcp_hybla
48N免费翻墙网
48N免费翻墙网
sysctl net.ipv4.tcp_available_congestion_control
48N免费翻墙网
得到net.ipv4.tcp_available_congestion_control = cubic reno hybla
48N免费翻墙网
这时表明hybla已经可以使用了。
48N免费翻墙网
48N免费翻墙网
运行
48N免费翻墙网
cp /etc/sysctl.conf /root/
48N免费翻墙网
这个是复制sysctl.conf文件,作个备份
48N免费翻墙网
48N免费翻墙网
48N免费翻墙网
修改sysctl.conf文件,优化TCP参数
48N免费翻墙网
vi /etc/sysctl.conf
48N免费翻墙网
按键盘i建进入编辑模式,光标移到刚才复制的net.ipv4.tcp_fastopen = 3的下面一行,复制以下内容。
48N免费翻墙网
————————————————复制以下内容————————
48N免费翻墙网
fs.file-max = 51200
48N免费翻墙网
#提高整个系统的文件限制
48N免费翻墙网
net.core.rmem_max = 67108864
48N免费翻墙网
net.core.wmem_max = 67108864
48N免费翻墙网
net.core.netdev_max_backlog = 250000
48N免费翻墙网
net.core.somaxconn = 3240000
48N免费翻墙网
48N免费翻墙网
net.ipv4.tcp_syncookies = 1
48N免费翻墙网
net.ipv4.tcp_tw_reuse = 1
48N免费翻墙网
net.ipv4.tcp_tw_recycle = 0
48N免费翻墙网
net.ipv4.tcp_fin_timeout = 30
48N免费翻墙网
net.ipv4.tcp_keepalive_time = 1200
48N免费翻墙网
net.ipv4.ip_local_port_range = 10000 65000
48N免费翻墙网
net.ipv4.tcp_max_syn_backlog = 8192
48N免费翻墙网
net.ipv4.tcp_max_tw_buckets = 5000
48N免费翻墙网
net.ipv4.tcp_fastopen = 3
48N免费翻墙网
net.ipv4.tcp_rmem = 4096 87380 67108864
48N免费翻墙网
net.ipv4.tcp_wmem = 4096 65536 67108864
48N免费翻墙网
net.ipv4.tcp_mtu_probing = 1
48N免费翻墙网
net.ipv4.tcp_congestion_control = hybla
48N免费翻墙网
————————————————复制以上内容————————
48N免费翻墙网
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
48N免费翻墙网
48N免费翻墙网
运行
48N免费翻墙网
48N免费翻墙网
sysctl -p
48N免费翻墙网
48N免费翻墙网
使上面的配置生效。
48N免费翻墙网
48N免费翻墙网
至此,优化也完成了。你可以尽情使用。
48N免费翻墙网
48N免费翻墙网
注:如需要检查TCP Fast Open有没有生效运行
48N免费翻墙网
sysctl net.ipv4.tcp_fastopen
48N免费翻墙网
得到 net.ipv4.tcp_fastopen = 3,表示已经成功生效了。
48N免费翻墙网
48N免费翻墙网
来自https://plus.google.com/u/0/+BoluoKING/posts/dLyYhBf3mwp