Kira|(<ゝω・)☆

一个逗逼的自言自语

CentOS6零基础配置shadowsocks服务端完整教程

注意事项

由于软件更新、完善,安装不需要如此复杂的方法。
已更新「Debian8零基础安装ShadowsocksR服务端教程」,建议参照该教程部署服务端。

shadowsocks 是一个轻量级隧道 socks5 代理,可加密网络通道。
项目主页:https://github.com/clowwindy/shadowsocks
官方wiki:https://github.com/clowwindy/shadowsocks/wiki/Shadowsocks

博主说明:
此教程为官方wiki补充,并附带M2Crypto、gevent 安装的详细说明,以便于零基础用户配置 shadowsocks 服务端。
此处以bandwagonhost的廉价VPS举例…
系统 CentOS6.5 x86,内建Python版本2.6.6(可使用 python -V 命令查看)

准备工作:安装所需组件

yum install wget tar gcc gcc-c++ openssl openssl-devel pcre-devel python-devel libevent -y

一、升级python
1、按以下步骤执行

cd /root
wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
tar zxvf Python-2.7.6.tgz
cd Python-2.7.6
./configure
make & make install

2、设置python2.7.6为默认版本,此处python2.6.6为系统内建版本,不知道当前版本的可以使用 python -V 命令查看

mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
修改完毕后可以 python -V 查看一下是否成功

3、由于yum依赖内建python,所以需要修改一下yum依赖

vi /usr/bin/yum
说明:按 i 进入编辑模式,将第一行#!/usr/bin/python 改为 #!/usr/bin/python2.6.6,后者为内建python版本,然后按esc退出编辑模式,按shift+: ,输入wq保存文件即可~

二、安装pip
1、安装setuptools(pip需要这个),依次执行

cd /root
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg –no-check-certificate
sh setuptools-0.6c11-py2.7.egg

如果提示 zipimport.ZipImportError: can’t decompress data; zlib not available ,说明需要安装zlib库

cd /root/Python-2.7.6/Modules/zlib
./configure
make & make install

重新编译一下python

cd /root/Python-2.7.6
make & make install

安装setuptools

cd /root
sh setuptools-0.6c11-py2.7.egg

2、安装pip

cd /root
wget http://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz –no-check-certificate
tar zxvf pip-1.5.4.tar.gz
cd pip-1.5.4
python setup.py install

三、安装shadowsocks
由于安装了pip所以很简单了,一行命令的事

pip install shadowsocks

此时不推荐运行shadowsocks

四、安装M2Crypto
shadowsocks支持以下加密方式:

aes-128-cfb、aes-192-cfb、aes-256-cfb、bf-cfb、camellia-128-cfb、camellia-192-cfb、camellia-256-cfb、cast5-cfb、des-cfb、idea-cfb、rc2-cfb、rc4、seed-cfb、table

默认加密方法 table 速度很快,但很不安全,推荐使用 “aes-256-cfb” 或者 “bf-cfb”,使用加密必须安装M2Crypto。

1、安装swig
yum里swig版本太旧,如果使用yum安装基本上都是被坑的,如果系统集成大多也会有同样的问题
首先查看swig版本,如果是1.x版的先卸载掉

swig -version

执行以下命令

cd /root
wget http://jaist.dl.sourceforge.net/project/swig/swig/swig-3.0.0/swig-3.0.0.tar.gz
tar zxvf swig-3.0.0.tar.gz
cd swig-3.0.0
./configure
make & make install

安装完成后可以查看一下版本

swig -version

2、安装M2Crypto

cd /root
wget https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz –no-check-certificate
tar zxvf M2Crypto-0.22.3.tar.gz
cd M2Crypto-0.22.3
python setup.py build
python setup.py install

五、安装Gevent
安装Gevent可以获得更好的性能,不管效果怎样,还是装个吧…
1、安装easy_install并安装greenlet

cd /root
wget -q http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
easy_install greenlet

2、安装Gevent(小内存VPS上可能无法通过)

cd /root
wget http://pypi.python.org/packages/source/g/gevent/gevent-0.13.8.tar.gz
tar zxvf gevent-0.13.8.tar.gz
cd gevent-0.13.8
python setup.py build
python setup.py install

六、运行shadowsocks
1、任意目录下建立一个名为“config.json”的文件,并编辑文本

touch config.json
vi config.json

2、设置shadowsocks服务端,按i进入编辑,将以下内容输入到文本中,编辑完成后按Esc退出编辑,然后Shift+:,输入wq保存

{
“server”:”my_server_ip”,
“server_port”:1024,
“local_port”:1989,
“password”:”lolicon”,
“timeout”:600,
“method”:”aes-256-cfb”
}

各字段的含义:

server 服务器 IP (IPv4/IPv6),注意这也将是服务端监听的 IP 地址
server_port 服务器端口
local_port 本地端端口
password 用来加密的密码
timeout 超时时间(秒)
method 加密方法,可选择 “bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4”, 等等。默认是一种不安全的加密,推荐用 “aes-256-cfb”

3、在config.json文件所在目录执行

ssserver (前台运行)
nohup ssserver > log & (后台一直运行)

4、如果成功运行,但是无法连接,可能是iptables设置问题,可以选择添加当前端口到白名单或关闭iptables解决

请将“1024”改为你所设置的服务器端口
iptables -I INPUT -p tcp -m tcp –dport 1024 -j ACCEPT
service iptables save (建议)
或者关闭iptables(不建议)
/etc/rc.d/init.d/iptables stop

5、客户端设置网上一搜一大把,就不赘述了…
Windows客户端:https://github.com/clowwindy/shadowsocks-csharp
Android客户端:https://play.google.com/store/apps/details?id=com.github.shadowsocks

 

—————————————————–

转载随意,修改随意,但请注明来源链接

点赞
  1. Nin说道:

    还是在Debian下装SS简单无脑暴力啊。。。

  2. 大猫说道:

    教程非常详尽啊

  3. choco说道:

    比较详细了,回头实践下看看效果……

  4. iptables -I INPUT -p tcp -m tcp –dport 1024 -j ACCEPT
    要改为
    iptables -I INPUT -p tcp -m tcp --dport 1024 -j ACCEPT
    wget https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz –no-check-certificate
    改为
    wget https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz -–no-check-certificate
    非常详细 只是若干小错误 少打了- 或者英文的"写成了中文“
    感谢分享!照着操作成功了

  5. iptables -I INPUT -p tcp -m tcp –dport 1024 -j ACCEPT
    要改为
    iptables -I INPUT -p tcp -m tcp –-dport 1024 -j ACCEPT

    是 --dport

  6. 你的插件貌似会自动把两个-删除一个。。无语

  7. 小白说道:

    小白表示真看不懂啊,步骤太多了。网上不是有号称一键安装的吗?

    1. 轻飏说道:

      那是别人写的脚本,我这是补充一下官方教程

  8. Hardrain说道:

    看完感觉还是Ubuntu/Debian上装SSserver和Supervisor让它保持后台运行容易...
    第一次选的CentOS5不知为什么supervisord一直无法加载配置文件...

    1. 轻飏说道:

      有时间的话我把这部分补上~ :-)

  9. jhui说道:

    执行到安装M2Crypto的时候出现了error: command 'swig' failed with exit status 1
    running build
    running build_py
    running build_ext
    building 'M2Crypto.__m2crypto' extension
    swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c
    swig -python -I/usr/local/include/python2.7 -I/usr/include -I/usr/include/openssl -includeall -modern -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
    /usr/include/openssl/opensslconf.h:31: Error: CPP #error ""This openssl-devel package does not work your architecture?"". Use the -cpperraswarn option to continue swig processing.
    error: command 'swig' failed with exit status 1
    这个要怎么解决呢?

  10. jhui说道:

    呃,最后通过这个,改安装了M2Crypto-0.21.1解决了,http://webcache.googleusercontent.com/search?q=cache:PkBOtR88Pq0J:opensiglud.blogspot.com/2013/07/centos-6m2crypto.html+&cd=1&hl=zh-CN&ct=clnk&gl=cn

  11. CharlAnders说道:

    想问一下,shadowsocks服务端可以限制每个IP的连接数量吗?

  12. 匿名说道:

    1024~lolicon~233~无法直视~

  13. 在意说道:

    百度下 账号大王
    每日赠送2枚 shadowsocks注册码!
    永久免费。

  14. 老张说道:

    首先感谢 轻飏和jhui,解决了问题
    我的问题个jhui一样,如下
    执行到安装M2Crypto的时候出现了error
    This openssl-devel package does not work your architecture?””. Use the -cpperraswarn option to continue swig processing.
    靠以下方法解决:

    在CentOS 6下安装M2Crypto
    为了让shadowsocks能够支持更多的加密方式,必须要安装M2Crypto,不得不说,这个东西很麻烦

    首先,需要安装依赖包

    yum install gcc libgcc swig openssl openssl-devel python-devel

    然后开始安装M2Crypto,这个东西也绝对不可以用pip装,基本上都是被坑的节奏

    wget https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.21.1.tar.gz --no-check-certificate

    tar zxvf M2Crypto-0.21.1.tar.gz

    cd M2Crypto-0.21.1

    如果这个时候直接安装

    python setup.py build

    基本上就会报告那个”This openssl-devel package does not work your architecture?“了

    其实它有提供fedora系统的专用安装包的,运行一下

    ./fedora_setup.sh build
    ./fedora_setup.sh install

    就可以了

  15. 老张说道:

    安装gevent又出现问题,如下
    gevent-0.13.8]# python setup.py build
    running build
    running build_py
    running build_ext
    building 'gevent.core' extension
    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include/python2.7 -c gevent/core.c -o build/temp.linux-x86_64-2.7/gevent/core.o
    In file included from gevent/core.c:253:0:
    gevent/libevent.h:9:19: fatal error: event.h: No such file or directory
    #include "event.h"
    ^
    compilation terminated.
    error: command 'gcc' failed with exit status 1
    然后,是这样解决的
    大多数问题其实是出在easy_install 上的,

    遇到此类问题,最好能去下个源包,比如这个:http://pypi.python.org/packages/source/g/gevent/gevent-0.13.1.tar.gz#md5=5c1b03d9ce39fee4cfe5ea8befb1d4c4

    解压后,要先运行下其中的
    Java代码 收藏代码
    python fetch_libevent.py

    然后:
    Java代码 收藏代码
    python setup.py build
    python setup.py install
    还是装了不同的版本,该方法在博主的版本上也不行,不知道不同的版本为啥差异这么大

  16. dspsharc说道:

    http://www.centoscn.com/image-text/install/2015/0510/5399.html
    1、查看系统
    [root@localhost ~]# cat /etc/issue
    CentOS release 6.6 (Final)
    [root@localhost ~]# uname -a
    Linux localhost.localdomain 2.6.32-042stab106.6 #1 SMP Mon Apr 20 14:48:47 MSK 2015 x86_64 x86_64 x86_64 GNU/Linux

    2、安装ShadowSocks
    # yum install python-setuptools && easy_install pip
    # pip install shadowsocks

    3、创建配置文件/etc/shadowsocks.json
    [root@localhost /]# touch /etc/shadowsocks.json
    [root@localhost /]# vi /etc/shadowsocks.json
    {
    "server":"138.128.208.158",
    "server_port":443,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"MyPass",
    "timeout":600,
    "method":"rc4-md5"
    }

    备注:加密方式官方默认使用aes-256-cfb,推荐使用rc4-md5,因为 RC4比AES速度快好几倍。

  17. w88127说道:

    您好,叨教小编能够让我转载这篇文章内容吗?我会备注原文来由链接的和作者.

  18. w88171说道:

    来晚了啊 看不到了 看不到了

发表评论

电子邮件地址不会被公开。 必填项已用*标注