首先是注册DigitalOcean VPS服务器的详细说明

缺点是它比搬瓦工的费用贵,最便宜的是5美元一个月,它是充值后按天扣费。
注册地址 https://www.digitalocean.com/?refcode=311b9df948ee (使用本链接注册的账户会立即到账10美元,可使用两个月)
新用户注册通过推荐连接注册会送10美元,可以使用两个月,但需要自己再充5美元激活账户或者绑定你的美元币种信用卡0元激活,这里推荐PAYPAL来支付,当然你也可以通过双币信用卡用美元支付。
下面说说注册方法,
点击连接 https://www.digitalocean.com/?refcode=311b9df948ee 进入页面,下拉到最下面,点击 GET STARTED NOW ,之后输入你的邮箱和密码(注意:邮箱需要来接收ROOT密码),点击SIGN UP,之后进入DigitalOcean控制面板,点击左上脚 Create Droplet,你看到已经到帐10美元,但需要再充值5美元激活或者绑定你的美元币种信用卡0元激活。
打开刚才你注册的邮箱会收到验证邮件,点击里面的连接之后输入你的邮箱和密码登陆,进去是添加信用卡界面,如果你有双币信用卡,请按信用卡上面的信息如实 填写,账单地址,如果是在中国,就写英文地址。这里推荐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。
接着到http://www.putty.org/下载PUTTY,来管理你的VPS。(进去之后页面最上方点here,之后下载你需要的版本)
打开PUTTY,输入你的VPS的IP,端口号。点击下面的OPEN。 连接到你的VPS了,用户打root回车,会让你输入密码,就是邮件收到的密码,注意大小写(这里输入密码时,是不可见的,你按着输入就行)之后回车。第 一次登陆后会让你改密码,你再输一次原密码后回车,输入新密码,回车,再次输入新密码回车,之后就命令操作了。
下面是Shadowsocks服务的布置
请一行行输入下面的命令后回车,执行完一行后再执行下一行。(可以复制后在putty中点击鼠标右键黏贴,键盘回车执行。如询问(Y/N),请Y回车。)
yum install epel-release
yum update
yum install python-setuptools
easy_install pip
pip install shadowsocks
以上命令执行完之后,shadowsocks已安装到你的VPS中,但还没有运行。
接着我们执行命令来配置SS服务。
vi /etc/shadowsocks.json
按键盘i建进入编辑模式,复制以下内容文件中。(请改“端口号”为你需要的端口号 范围 1 - 65535,改“你的密码”为你自己的密码。)
————————————————复制以下内容————————
{
"server":"0.0.0.0",
"server_port":端口号,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"你的密码",
"timeout":500,
"method":"aes-256-cfb",
"fast_open": true
}
————————————————复制以上内容————————
复制完成后,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
附上面代码的说明
server 服务端监听的地址,服务端可填写 0.0.0.0
server_port 服务端的端口
local_address 本地端监听的地址
local_port 本地端的端口
password 用于加密的密码
timeout 超时时间,单位秒
method 默认 “aes-256-cfb”
fast_open 是否使用 TCP_FASTOPEN, true / false(后面优化部分会打开系统的TCP_FASTOPEN,所以这里填true,否则填false)
我们需要后台自启动服务
再一行行运行以下命令,执行完一行后再执行下一行。(可以复制后在putty中点击鼠标右键黏贴,键
盘回车执行。如询问(Y/N),请Y回车。)
yum install python-setuptools supervisor
easy_install pip
pip install shadowsocks
以上命令执行完之后,需要编辑/etc/supervisord.conf文件
vi /etc/supervisord.conf
按键盘i建进入编辑模式,光标移到底部空行处,如没空行就在末尾回车加入空行。复制以下内容。
————————————————复制以下内容————————
[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json
autostart=true
autorestart=true
user=root
————————————————复制以上内容————————
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
再一行行运行以下命令,执行完一行后再执行下一行。(可以复制后在putty中点击鼠标右键黏贴,键盘回车执行。如询问(Y/N),请Y回车。)
sudo chkconfig --add supervisord
sudo chkconfig supervisord on
service supervisord start
supervisorctl reload
到此Shadowsocks已经在CentOS 7 x64下安装配置成功,再运行命令
reboot
重启服务器使服务生效。
结束以上部分,已经可以使用正常Shadowsocks服务。
下面是优化部分,优化的前提是内核版本是需要3.7以上,查看内核版本,执行命令
uname -a
会返回你的内核信息。
接着我们要进行一些优化,这才是选择CentOS 7 x64系统的主要原因。
重启之后,我们用PUTTY重新登陆服务器。
首先我们要在系统中启用TCP Fast Open
运行命令
echo 3 > /proc/sys/net/ipv4/tcp_fastopen
需要重启后也生效TCP Fast Open ,要编辑sysctl.conf
运行
vi /etc/sysctl.conf
按键盘i建进入编辑模式,光标移到底部空行处,复制以下内容。
————————————————复制以下内容————————
net.ipv4.tcp_fastopen = 3
————————————————复制以上内容————————
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
增加tcp连接数量
运行命令
vi /etc/security/limits.conf
按键盘i建进入编辑模式,光标移到底部# End of file上面一行空白处
,复制以下内容。
————————————————复制以下内容————————
* soft nofile 51200
* hard nofile 51200
————————————————复制以上内容————————
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
运行命令
ulimit -n 51200
接着我们要调整TCP拥塞控制算法为hybla
首先科普下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参数。
运行
sysctl net.ipv4.tcp_available_congestion_control
会得到 net.ipv4.tcp_available_congestion_control = cubic reno
表示我们系统的TCP拥塞控制算法只能选择cubic或者reno算发,hybla算法并没有启用,我们就要启用hybla算法。
运行
/sbin/modprobe tcp_hybla
sysctl net.ipv4.tcp_available_congestion_control
得到net.ipv4.tcp_available_congestion_control = cubic reno hybla
这时表明hybla已经可以使用了。
运行
cp /etc/sysctl.conf /root/
这个是复制sysctl.conf文件,作个备份
修改sysctl.conf文件,优化TCP参数
vi /etc/sysctl.conf
按键盘i建进入编辑模式,光标移到刚才复制的net.ipv4.tcp_fastopen = 3的下面一行,复制以下内容。
————————————————复制以下内容————————
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
————————————————复制以上内容————————
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。
运行
sysctl -p
使上面的配置生效。
至此,优化也完成了。你可以尽情使用。
注:如需要检查TCP Fast Open有没有生效运行
sysctl net.ipv4.tcp_fastopen
得到 net.ipv4.tcp_fastopen = 3,表示已经成功生效了。
来自https://plus.google.com/u/0/+BoluoKING/posts/dLyYhBf3mwp