CentOS下shadowsocks-libev一键安装脚本

技术 秋水逸冰 1971517浏览 1182评论

本脚本适用环境:
系统支持:CentOS
内存要求:≥128M
日期:2018 年 06 月 01 日

关于本脚本:
一键安装 libev 版的 Shadowsocks 最新版本。该版本的特点是内存占用小(600k左右),低 CPU 消耗,甚至可以安装在基于 OpenWRT 的路由器上。
友情提示:如果你有问题,请先参考这篇《Shadowsocks Troubleshooting》后再问。

默认配置:
服务器端口:自己设定(如不设定,默认从 9000-19999 之间随机生成)
密码:自己设定(如不设定,默认为 teddysun.com)
加密方式:自己设定(如不设定,默认为 aes-256-gcm)

Shadowsocks for Windows 客户端下载:
https://github.com/shadowsocks/shadowsocks-windows/releases

使用方法:
使用root用户登录,运行以下命令:

wget --no-check-certificate -O shadowsocks-libev.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev.sh
chmod +x shadowsocks-libev.sh
./shadowsocks-libev.sh 2>&1 | tee shadowsocks-libev.log

安装完成后,脚本提示如下:

Congratulations, Shadowsocks-libev server install completed!
Your Server IP        :your_server_ip
Your Server Port      :your_server_port
Your Password         :your_password
Your Encryption Method:your_encryption_method

Welcome to visit:https://teddysun.com/357.html
Enjoy it!

卸载方法:
使用 root 用户登录,运行以下命令:

./shadowsocks-libev.sh uninstall

其他事项:
客户端配置的参考链接:https://teddysun.com/339.html

安装完成后即已后台启动 Shadowsocks-libev ,运行:

/etc/init.d/shadowsocks status

可以查看进程是否启动。
本脚本安装完成后,会将 Shadowsocks-libev 加入开机自启动。

使用命令:
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
查看状态:/etc/init.d/shadowsocks status

更多版本 Shadowsocks 安装:
ShadowsocksR 版一键安装脚本(CentOS,Debian,Ubuntu)
Shadowsocks Python 版一键安装脚本(CentOS,Debian,Ubuntu)
Debian 下 Shadowsocks-libev 一键安装脚本
Shadowsocks-go 一键安装脚本(CentOS,Debian,Ubuntu)
Shadowsocks 一键安装脚本(四合一)

更新日志

2018 年 06 月 01 日:
1、新增:配置文件新增 fast_open 字段,并根据系统的内核版本,判断大于 3.7.0 时启用,否则不启用;
2、修正:在使用 /etc/init.d/shadowsocks restart 命令重启服务端时,偶尔出现的 “bind: Address already in use” 问题;
3、修正:移除配置文件中的 local_address 字段;
4、修改:不再默认使用 root 用户启动,改为使用 nobody 用户启动服务端 ss-server;
5、升级:mbedtls 到版本 2.9.0;
6、修改:启动脚本中的 -u 参数(即同时启用 TCP 和 UDP 模式),改到配置文件里配置为 “mode”: “tcp_and_udp”;
7、修改:配置文件的内置 NameServers 为 8.8.8.8,默认是从 /etc/resolv.conf 中取得。

2018 年 02 月 07 日:
1、修改:将默认端口从 8989 改为从 9000-19999 之间随机生成。

2017 年 09 月 16 日:
1、修正:Shadowsocks-libev 版 v3.1.0 使用 libc-ares 替换 libudns 依赖包,解决了依赖问题;
2、升级:mbedtls 到版本 2.6.0。

2017 年 07 月 22 日:
1、修正:默认加密方式从 aes-256-cfb 改为 aes-256-gcm(官方原版客户端支持该加密方式);
2、新增:安装时可选 16 种加密方式的其中之一。如下所示:

aes-256-gcm
aes-192-gcm
aes-128-gcm
aes-256-ctr
aes-192-ctr
aes-128-ctr
aes-256-cfb
aes-192-cfb
aes-128-cfb
camellia-128-cfb
camellia-192-cfb
camellia-256-cfb
chacha20-ietf-poly1305
chacha20-ietf
chacha20
rc4-md5

2017 年 02 月 24 日:
1、恢复: 通过 Github API 自动获取 Shadowsocks-libev 的最新 release 版本的功能(v3.0.3)。

2017 年 02 月 13 日:
1、更新:升级版本到 3.0.2。

2017 年 02 月 12 日:
1、更新:升级版本到 3.0.1(请下载最新的脚本来安装)。

2016 年 11 月 05 日:
1、新增:判断是否已安装,若已安装,则获取版本号与最新版比较,然后可以升级覆盖安装;
2、修正:未安装时获取最新版本号的问题。

2016 年 09 月 23 日:
1、修正:偶尔自动获取版本号失败的问题;
2、新增:自动判断如果 VPS 存在 IPv6 地址,则在配置文件里添加监听 IPv6 地址。

2016 年 09 月 17 日:
1、重构代码,自动获取 Github 上最新版来安装,不再手动修改版本号;
2、自动检测本机是否已经安装,若已安装则正常退出(若要安装新版,则需先卸载);
3、改为下载 tar.gz 包来安装,不用依赖 unzip 命令。

2016 年 09 月 12 日:
1、更新:升级版本到 2.5.2。

2016 年 09 月 11 日:
1、更新:升级版本到 2.5.1。

2016 年 08 月 29 日:
1、更新:升级版本到 2.5.0;
2、修正:由于安装时文件名的更新,卸载时文件名改为一致。

2016 年 07 月 14 日:
1、更新:升级版本到 2.4.7。

2016 年 07 月 05 日:
1、修正:新增的依赖 xmlto、asciidoc;
2、修正:由于安装时文件名的更新,卸载时文件名改为一致。

2016 年 05 月 12 日:
1、新增:在 CentOS 7 下的防火墙规则设置。

2015 年 08 月 01 日:
1、新增:自定义服务器端口功能(如不设定,默认为 8989)。

2015 年 04 月 30 日:
1、修正:配置文件 /etc/shadowsocks-libev/config.json 同时启用 IPv4 与 IPv6 支持:

{
    "server":["[::0]","0.0.0.0"],
    "server_port":your_server_port,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"your_password",
    "timeout":600,
    "method":"aes-256-cfb"
}

2、Shadowsocks libev 版不能通过修改配置文件来多端口(只能开启多进程),如果你需要多端口请安装 Python 或 Go 版;

特别说明:
1、已安装旧版本的 shadowsocks 需要升级的话,需下载本脚本的最新版,直接运行即可自动升级

./shadowsocks-libev.sh

参考链接:
https://github.com/shadowsocks/shadowsocks-libev

转载请注明:秋水逸冰 » CentOS下shadowsocks-libev一键安装脚本

发表我的评论
取消评论

请输入正确答案后提交评论 *超出时限。 请再次填写验证码。

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1182)

  1. 一个小建议,按照https://github.com/shadowsocks/shadowsocks-android/issues/876这里的说法,shadowsocks-libev加入-d参数可以防止DNS投毒,可以考虑在脚本里增加一个可选项。
    dfdragon8年前(2016-09-17)回复
    • -d 参数只对服务端起作用而已。一般情况下,VPS 所有的 DNS 解析都是走 /etc/resolv.conf 文件里定义的 nameserver。
      秋水逸冰8年前(2016-09-19)回复
  2. 楼主,装了最新的版本仍然出现以下错误,如何解决啊 [H[2J############################################################# # Install Shadowsocks-libev server for CentOS 6 or 7 # # Intro: https://teddysun.com/357.html # # Author: Teddysun # # Github: https://github.com/shadowsocks/shadowsocks-libev # ############################################################# Get the latest version: shadowsocks-libev-2.5.2 /usr/bin/xmlto: line 576: 6973 Killed "$XSLTPROC_PATH" $XSLTOPTS -o "$XSLT_PROCESSED" "$STYLESHEET" "$INPUT_FILE" make[2]: *** [ss-redir.1] Error 1 rm ss-redir.xml ss-nat.xml ss-manager.xml make[2]: Leaving directory `/root/shadowsocks-libev-2.5.2/doc' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/shadowsocks-libev-2.5.2' make: *** [all] Error 2
    Nix8年前(2016-09-17)回复
    • 应该是内存过小,在 xmlto 编译的过程中进程被系统杀掉了。
      秋水逸冰8年前(2016-09-19)回复
  3. 什么支持多端口。。 不想换 go 版本
    coderjin8年前(2016-09-14)回复
  4. 安装的时候出现错误了。。这个怎么弄啊 make[2]: Leaving directory `/root/shadowsocks-libev-master/src' Making all in doc make[2]: Entering directory `/root/shadowsocks-libev-master/doc' GEN shadowsocks-libev.xml /bin/sh: asciidoc: command not found make[2]: *** [shadowsocks-libev.xml] Error 127 make[2]: Leaving directory `/root/shadowsocks-libev-master/doc' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/shadowsocks-libev-master' make: *** [all] Error 2
    Blue8年前(2016-09-12)回复
    • 请下载最新版的脚本来安装。目前已更新到 2.5.2 版。
      秋水逸冰8年前(2016-09-12)回复
      • 谢谢咯,我之前的版本太古老了,很久没升级过,重置了VPS之后就直接装好了!
        Blue8年前(2016-09-13)回复
  5. (Default password: teddysun.com):qwerty^H^H^H^H^H^H 没有检查backspace
    特级菜鸟8年前(2016-09-11)回复
  6. ++ grep -oE '[0-9.]+' /etc/issue + local version= + local main_ver= + '[' == 5 ']' shadowsocks-libev.sh: line 47: [: ==: unary operator expected 清空 /etc/issue就玩完了
    特级菜鸟8年前(2016-09-11)回复
  7. 老大,是我搞错了,刚才那台是debian,我用成了centos的脚本,所以报错,换成debian之后,就正常了,所以请不用理会,谢谢!
    小新8年前(2016-09-11)回复
  8. make[2]: Leaving directory '/root/shadowsocks-libev-2.5.1/src' Making all in doc make[2]: Entering directory '/root/shadowsocks-libev-2.5.1/doc' GEN shadowsocks-libev.xml /bin/bash: asciidoc: command not found Makefile:624: recipe for target 'shadowsocks-libev.xml' failed make[2]: *** [shadowsocks-libev.xml] Error 127 make[2]: Leaving directory '/root/shadowsocks-libev-2.5.1/doc' Makefile:469: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/root/shadowsocks-libev-2.5.1' Makefile:377: recipe for target 'all' failed make: *** [all] Error 2 我是先删的旧版,再安装新版,但有报错提示
    小新8年前(2016-09-11)回复
  9. 博主你好,谢谢你的一直维护更新,今天您更新的版本我这里出现了一个错误,之前的编译都是成功了,看到日记您是更新了2.5.1。靠后面打印出来的日志如下,环境centos6 32位 checking for sysroot... no checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking for shl_load... no checking for shl_load in -ldld... no checking for dlopen... no checking for dlopen in -ldl... yes checking whether a program can dlopen itself... yes checking whether a statically linked program can dlopen itself... yes checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes checking for pcre-config... no checking for pcre location... not found configure: error: Cannot find pcre library. Configure --with-pcre=DIR make: *** No targets specified and no makefile found. Stop. Shadowsocks-libev install failed! Please visit https://teddysun.com/357.html and contact.
    路过群众8年前(2016-09-11)回复
    • 该问题已经修复,请下载最新版脚本进行安装。
      秋水逸冰8年前(2016-09-11)回复
      • 好的,谢谢博主
        路过群众8年前(2016-09-11)回复
        • 你的问题解决了吗?
          miaosha8年前(2016-09-25)回复
  10. --2016-09-10 13:37:34-- (try: 2) https://github.com/shadowsocks/shadowsocks-libev/archive/master.zip Connecting to github.com|192.30.253.113|:443... 在这一步停下了,为什么?
    ssocks8年前(2016-09-10)回复
    • 请下载最新版的脚本来安装。 libev 版现在是下载 2.5.1 版本来安装。
      秋水逸冰8年前(2016-09-11)回复
      • 卡到https://github.com/shadowsocks/shadowsocks-libev/archive/v2.5.1.zip Connecting to github.com|192.30.253.112|:443... 这步
        jack8年前(2016-09-11)回复
  11. 您好。现在Github已不能上了,我替换了hosts才可以;在安装您的脚本时会一直trying to connect to Github,麻烦您给解决下。能否将资料包放在一个可以国内能connect到的网站上,以便我们小白安装。谢谢,谢谢。
    YnkyTung8年前(2016-09-10)回复
    • 一般拿来安装 SS 的都是国外的 VPS,所以为什么连接不上 Github 应该找找 VPS 的原因吧。
      秋水逸冰8年前(2016-09-11)回复
  12. 博主大大,请问为什么安装了新版后测试UDP转发成功,测试TCP显示连接ss失败呢,卸载后再次安装依然是这样
    Hanhan8年前(2016-09-04)回复
  13. 博主好,为什么我输入 /etc/shadowsocks-libev/config.json的时候,显示我没有权限呢?我是root用户登录的!!!!!!
    正宗大熊猫8年前(2016-09-03)回复
  14. 现在已经默认开启OTA?和UDp转发了吗
    okz8年前(2016-09-01)回复
  15. 2.4.7能用的话 请问有必要保持一直更新吗?
    shiika8年前(2016-09-01)回复