VPS 上Shadowsocks 的安装与优化

shadowsocks

之前一直使用的是PPTP,前几天突然链接变的不是很稳定,于是想试一下科学上网神器shadowsocks,刚架设成功后发现出了链接方便一些没什么其他优势,但是经过一些优化后发现速度非常快,确实比PPTP要强很多,只不过手下设置不是很方便,不过手机下可以继续使用PPTP,也就没什么了。

准备工作

首先你需要有一台自己的海外VPS,便宜的有搬瓦工,贵的有mediatemple,我手上的是香港VPS和DO的三藩节点,事实证明还是香港的线路要好一些。

执行

yum update

安装setuptools

yum install -y python-setuptools

安装pip

easy_install pip

安装Python-Gevent

为了提高性能Python-Gevent还是必须要安装的。

由于gevent需要用到libevent和python-devel,所以我们需要现在这个。

在CentOS下可以用yum install libevent python-devel来安装

如果你的ubuntu的话可以用 apt-get来安装

yum install libevent
yum install python-devel
pip install gevent

安装M2Crypto

M2Crypto是用于加密的第三库、由于众所周知的一些原因我们还是需要进行加密的。否则你的梯子可能不几天就被墙了。

首先需要先安装M2Crypto的一些依赖库

yum install openssl-devel
yum install swig
pip install M2Crypto

安装Shadowsocks服务端

yum install python-setuptools && easy_install pip
pip install shadowsocks

配置服务端

输入下列命令建立配置文件

vi  /etc/shadowsocks.json

在空白配置文件里按i进入编辑模式,输入下列配置

{
    "server":"ip_adress",
    "server_port":8033,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"password",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

完成后,按esc退出编辑模式。输入:wq(有冒号)以保存并退出。再输入:

ssserver -c /etc/shadowsocks.json

自此,服务端已经在主机上运行了。如果设置为可以后台运行,则

nohup ssserver -c /home/config.json &

重启服务

 ssserver -c /etc/shadowsocks.json -d restart

多用户设置

{
    "server":"your_server_ip",
    "local_address": "127.0.0.1",
    "local_port":1080,
    "port_password":{
         "8989":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

注意不要端口冲突。

优化

修改limits.conf

vi /etc/security/limits.conf

添加下面2行

* soft nofile 51200
* hard nofile 51200

然后在启动shadowsocks之前执行

ulimit -n 51200

修改/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 = 4096

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_mem = 25600 51200 102400
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

修改后执行sysctl -p使配置生效。

Comments : 5

  1. ssserver -c /etc/shadowsocks.json -d restart
    重启服务之后putty就再没反应了…

    1. @Captain

      重启命令不至于终端都死掉吧。。

  2. 受用,最近AWS免费云主机,搭了个shadowsocks,就不上你的了~哈哈

    1. @Farshes

      这个无所谓的。。 :oops:

发表留言

Smilies powered by wp-alu

Post Comment

欢迎关注我的公众号