Shadowsocks 一键安装脚本(四合一)

技术 秋水逸冰 3796339浏览 1374评论

本脚本适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
内存要求:≥128M
日期  :2019 年 01 月 11 日

关于本脚本

1、一键安装 Shadowsocks-Python, ShadowsocksR, Shadowsocks-Go, Shadowsocks-libev 版(四选一)服务端;
2、各版本的启动脚本及配置文件名不再重合;
3、每次运行可安装一种版本;
4、支持以多次运行来安装多个版本,且各个版本可以共存(注意端口号需设成不同);
5、若已安装多个版本,则卸载时也需多次运行(每次卸载一种);

友情提示:如果你有问题,请先阅读这篇《Shadowsocks Troubleshooting》之后再询问。

默认配置

服务器端口:自己设定(如不设定,默认从 9000-19999 之间随机生成)
密码:自己设定(如不设定,默认为 teddysun.com)
加密方式:自己设定(如不设定,Python 和 libev 版默认为 aes-256-gcm,R 和 Go 版默认为 aes-256-cfb)
协议(protocol):自己设定(如不设定,默认为 origin)(仅限 ShadowsocksR 版)
混淆(obfs):自己设定(如不设定,默认为 plain)(仅限 ShadowsocksR 版)
备注:脚本默认创建单用户配置文件,如需配置多用户,请手动修改相应的配置文件后重启即可。

客户端下载

常规版 Windows 客户端
https://github.com/shadowsocks/shadowsocks-windows/releases

ShadowsocksR 版 Windows 客户端
https://github.com/shadowsocksrr/shadowsocksr-csharp/releases

使用方法

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

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

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

Congratulations, your_shadowsocks_version install completed!
Your Server IP        :your_server_ip
Your Server Port      :your_server_port
Your Password         :your_password
Your Encryption Method:your_encryption_method

Your QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)
 ss://your_encryption_method:your_password@your_server_ip:your_server_port
Your QR Code has been saved as a PNG file path:
 your_path.png

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

卸载方法

若已安装多个版本,则卸载时也需多次运行(每次卸载一种)

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

./shadowsocks-all.sh uninstall

启动脚本

启动脚本后面的参数含义,从左至右依次为:启动,停止,重启,查看状态。

Shadowsocks-Python 版:
/etc/init.d/shadowsocks-python start | stop | restart | status

ShadowsocksR 版:
/etc/init.d/shadowsocks-r start | stop | restart | status

Shadowsocks-Go 版:
/etc/init.d/shadowsocks-go start | stop | restart | status

Shadowsocks-libev 版:
/etc/init.d/shadowsocks-libev start | stop | restart | status

各版本默认配置文件

Shadowsocks-Python 版:
/etc/shadowsocks-python/config.json

ShadowsocksR 版:
/etc/shadowsocks-r/config.json

Shadowsocks-Go 版:
/etc/shadowsocks-go/config.json

Shadowsocks-libev 版:
/etc/shadowsocks-libev/config.json

更新日志

2019 年 01 月 11 日:
1、升级:libsodium 到最新版本 1.0.17;
2、升级:mbedtls 到最新版本 2.16.0;

2018 年 11 月 05 日:
1、升级:使用 Github 上最新代码编译出 Go 版二进制可执行文件,版本号 1.2.2。

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

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

2018 年 02 月 06 日:
1、修改:ShadowsocksR 版为 ShadowsocksRR 最新版;
2、新增:ShadowsocksR 版的协议(protocol)增加了 4 个,分别为:

auth_chain_c
auth_chain_d
auth_chain_e
auth_chain_f

2017 年 12 月 29 日:
1、升级:libsodium 到 1.0.16。

2017 年 11 月 25 日:
1、如果 Linux 内核版本大于 3.7.0,则配置文件默认支持 TCP fast open;
2、新增:libev 版启动时支持 verbose mode,也就是默认写 log 到 /var/log/messages 方便查看。

2017 年 11 月 12 日:
1、新增生成 ss:// 或 ssr:// 链接,以及其二维码图片。
※ 脚本会根据当前安装的版本以及输入的各项配置,自动生成 ss:// 或 ssr:// 的链接并在安装成功后显示,直接复制即可被客户端识别。同时生成其二维码图片,并保存在当前目录下,下载后用看图软件打开,也能被客户端识别。

复制二维码链接后 Shadowsocks 客户端识别示例:

复制二维码链接后 ShadowsocksR 客户端识别示例:

二维码(QR Code)参考链接:
https://github.com/shadowsocks/shadowsocks/wiki/Generate-QR-Code-for-Android-or-iOS-Clients
https://github.com/shadowsocksr-backup/shadowsocks-rss/wiki/SSR-QRcode-scheme

2017 年 10 月 22 日:
1、升级:libsodium 到 1.0.15。

2017 年 10 月 14 日:
1、新增:在安装 Shadowsocks-libev 版时可选安装 simple-obfs 服务端。
※ 脚本通过判断 autoconf 版本是否大于或等于 2.67 来一键安装 simple-obfs 服务端。并且,支持在安装过程中选择 obfs 为 http 或 tls。
※ 使用方法参考:https://teddysun.com/511.html

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

2017 年 07 月 27 日:
1、新增:ShadowsocksR 版可选协议(protocol)auth_chain_b 。使用该协议需更新到最新(4.7.0) ShadowsocksR 版客户端
2、修改:更新 ShadowsocksR 源码下载地址。

2017 年 07 月 23 日:
1、修正:卸载时可自行选择某个版本卸载,若该版本不存在则报错退出。

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

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

3、新增:安装时可选 9 种加密方式的其中之一(Go 版)。如下所示:

aes-256-cfb
aes-192-cfb
aes-128-cfb
aes-256-ctr
aes-192-ctr
aes-128-ctr
chacha20-ietf
chacha20
rc4-md5

4、新增:安装时可选 15 种加密方式的其中之一(none 是不加密,ShadowsocksR 版)。如下所示:

none
aes-256-cfb
aes-192-cfb
aes-128-cfb
aes-256-cfb8
aes-192-cfb8
aes-128-cfb8
aes-256-ctr
aes-192-ctr
aes-128-ctr
chacha20-ietf
chacha20
salsa20
xchacha20
xsalsa20
rc4-md5

5、新增:安装时可选 7 种协议(protocol)的其中之一(仅限 ShadowsocksR 版)。如下所示:

origin
verify_deflate
auth_sha1_v4
auth_sha1_v4_compatible
auth_aes128_md5
auth_aes128_sha1
auth_chain_a
auth_chain_b

6、新增:安装时可选 9 种混淆(obfs)的其中之一(仅限 ShadowsocksR 版)。如下所示:

plain
http_simple
http_simple_compatible
http_post
http_post_compatible
tls1.2_ticket_auth
tls1.2_ticket_auth_compatible
tls1.2_ticket_fastauth
tls1.2_ticket_fastauth_compatible

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

2017 年 02 月 13 日:
1、升级: Shadowsocks-libev 版到版本 3.0.2;
2、升级: Shadowsocks-go 版到版本 1.2.1(基于 Github 最新代码,用 go 1.8 编译完成的 x86 和 x86_64 二进制文件);
3、修复:在 Debian 7 下默认没有 libudns-dev 依赖包的问题。

2017 年 02 月 12 日:
1、升级: Shadowsocks-libev 版到版本 3.0.1。

2017 年 01 月 27 日:
1、升级: Shadowsocks-go 版到版本 1.2.1 (仅适用于 x86_64 系统)

更多单版本 Shadowsocks 服务端一键安装脚本

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

注意:以上单版本不可与该四合一版本混用。

转载请注明:秋水逸冰 » Shadowsocks 一键安装脚本(四合一)

发表我的评论
取消评论

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

表情

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

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

网友最新评论 (1374)

  1. 小白第一次配置这种高端的东东,一步一步来还真的给弄好 了。可惜上次买的VPN Unlimited 500终身版的浪费了。还要学习中。在终端执行/etc/shadowsocks-python/config.json提示说没权限怎么回事啊
    ycl201401117年前(2017-10-22)回复
  2. 请问一键脚本中的TCP FAST OPEN和obfs是否冲突?
    Crow7年前(2017-10-22)回复
  3. centos7.3中编译报/root/shadowsocks-libev/src/aead.c:219: undefined reference to `crypto_aead_xchacha20poly1305_ietf_decrypt' ss_tunnel-aead.o: In function `aead_cipher_encrypt': /root/shadowsocks-libev/src/aead.c:180: undefined reference to `crypto_aead_xchacha20poly1305_ietf_encrypt' collect2: error: ld returned 1 exit status make[2]: *** [ss-tunnel] Error 1 make[2]: Leaving directory `/root/shadowsocks-libev/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/shadowsocks-libev' make: *** [all] Error 2 ./configure --with-sodium-include=/usr/include/ --with-sodium-lib=/usr/lib/ --with-mbedtls-include=/usr/include/ --with-mbedtls-lib=/usr/lib/指定下路径才能编译通过
    wuyan7年前(2017-10-22)回复
    • 我在 CentOS 7 下测试过,编译安装没问题的。你说的这个问题,也许能给后来者带来帮助,谢谢!
      秋水逸冰7年前(2017-10-22)回复
      • 使用脚本安装的时候报错: ss_local-crypto.o: In function `crypto_md5': /root/shadowsocks-libev/shadowsocks-libev-3.2.0/src/crypto.c:110: undefined reference to `mbedtls_md5' collect2: error: ld returned 1 exit status make[2]: *** [ss-local] Error 1 make[2]: Leaving directory `/root/shadowsocks-libev/shadowsocks-libev-3.2.0/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/root/shadowsocks-libev/shadowsocks-libev-3.2.0' make: *** [all] Error 2 根据评论里面的说明将脚本的550行修改为 ./configure --disable-documentation --with-sodium-include=/usr/include --with-sodium-lib=/usr/lib --with-mbedtls-include=/usr/include/ --with-mbedtls-lib=/usr/lib/ 就能正常安装 系统版本为CentOS7
        BlackL6年前(2018-06-01)回复
  4. 大佬请问一下 阿里云的香港服务器连接正常但是看统计中超时比较多是啥情况 有啥办法可以解决么 谢谢
    64010487年前(2017-10-22)回复
    • 十有八九是网络线路,以及运营商 QoS 的问题啦。
      秋水逸冰7年前(2017-10-22)回复
  5. 请问,我用四合一版本的python,然后用4.0.6的win客户端(还有mac上是最新的x ng客户端),都是谷歌不能上(500 internal proxy error),fb可以打开。。。然后win上我换用了2.3版本的ss客户端就都可以使用。。。这是什么原因?谢谢指教~
    yunk7年前(2017-10-22)回复
    • 个人猜测是客户端的原因
      秋水逸冰7年前(2017-10-22)回复
      • 感谢回复~~我在防火墙里把端口开了,就没问题了,可能是高版本的安全策略更高一点儿~ 多谢多谢
        yunk7年前(2017-10-23)回复
  6. 四合一版本可以自动升级吗?
    awakoi7年前(2017-10-21)回复
  7. 小白弄了一上午,执行 wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh 的时候 出现404 not found 该咋办。 一个月前安装都正常。
    Beibei7年前(2017-10-21)回复
    • 我用复制出来的试了一下,下载正常的。
      秋水逸冰7年前(2017-10-21)回复
      • 在我电脑上也是正常打开的,但在bwg上执行就404 秋大有什么办法吗,我小白不太会弄。
        Beibei7年前(2017-10-21)回复
      • (raw.githubusercontent.com)| ip地址|:443...connected http request sent, awaiting response... 404 not found
        Beibei7年前(2017-10-21)回复
        • 我尝试一下修改vps的dns试一试吧
          Beibei7年前(2017-10-21)回复
          • 修改dns成功,里面多了一行dns不知道为什么。两行都是谷歌dns。把多余的哪一行dns删除就好了。以后有遇到的可以参考下 。
            Beibei7年前(2017-10-21)回复
        • 我在 bwg 上再次试过,不存在这样的问题。
          秋水逸冰7年前(2017-10-22)回复
  8. SSR支持改配置文件多端口吗?
    1237年前(2017-10-21)回复
  9. libev版本怎么搞多端口?
    1237年前(2017-10-21)回复
  10. 大佬,听说有人用旧版的SS服务器被喝茶了,请问一下你这个脚本是多少的,安全吗??
    Test7年前(2017-10-20)回复
  11. 秋水大人我按照你的4合一代码安装好ssr可客户端无法连上怎么回事
    chutiger7年前(2017-10-20)回复
  12. 这个四合一的SSR版本是什么啊? 刚刚t上传有人用旧版被请喝茶,我自己一个小白也不知道怎么看版本,试了很多命令都不行。。
    mcmc7年前(2017-10-20)回复
    • 这个就是原作者 breakwa11 最后更新的版本。
      秋水逸冰7年前(2017-10-20)回复
  13. 秋水大哥,请教一下,我用您的四合一脚本安装了Shadowsocks-Go 版,默认的单用户版都是非常好用的,但是修改了多用户多端口就没法用了,是按照下面文本修改的,您看对不对,是不是还需要关闭防火墙呀。 { "port_password":{ "8989":"password0", "9001":"password1", "9002":"password2", "9003":"password3", "9004":"password4" }, "method":"your_encryption_method", "timeout":600 }
    小土豆7年前(2017-10-19)回复
    • 对,最好是关了防火墙了吧。或者你自行设置对相应的端口放行也行。
      秋水逸冰7年前(2017-10-20)回复
  14. ShadowsocksR版本的客户端已经更新了,当前版本是4.8.1了:https://github.com/shadowsocksrr/shadowsocksr-csharp/releases 增加了一些东西,请楼主也把服务端更新一下啊,不然有些东西使用不了!
    An7年前(2017-10-19)回复
    • 你说的这是 RR 版,多了个 R ,不是一回事。
      秋水逸冰7年前(2017-10-19)回复
      • 您好! 1.ShadowsocksR版本的协议:auth_chain_c, auth_chain_d,auth_chain_e,auth_chain_f, 都出来了啊,但您的安装脚本里面还没有呢! 2.较好的一些加密方式: chacha20-ietf-poly1305 aes-256-gcm aes-192-gcm aes-128-gcm 这些在shadowsocksR版本的安装脚本里面也没有呢?楼主能加上吗? 谢谢!
        An7年前(2017-10-20)回复
        • 你说的那个不是 ShadowsocksR,而是shadowsocksrr,又一个分支,并非脚本中安装的那个。
          秋水逸冰7年前(2017-10-20)回复
          • 楼主, 您好,我知道您的意思,我是想问:ShadowsocksR 版本是否也能加上上述的(或者部分)加密和协议呢?这样就更加全面了 谢谢!
            An7年前(2017-10-23)回复
  15. 1、新增:在安装 Shadowsocks-libev 版时可选安装 simple-obfs 服务端。 ※ 脚本通过判断 autoconf 版本是否大于或等于 2.67 来一键安装 simple-obfs 服务端。并且,支持在安装过程中选择 obfs 为 http 或 tls =》 安装的时候选择 obfs 为 http 或 tls,那么在客户端对应的如何设置呢? 谢谢!
    An7年前(2017-10-19)回复
    • 客户端与服务端一致。
      秋水逸冰7年前(2017-10-19)回复
      • 您好,客户端有参数填写的选项的,这个能说明如何填写吗?
        An7年前(2017-10-20)回复
        • 那个对应的参考文章里有截图的,你看一下就会填了。
          秋水逸冰7年前(2017-10-20)回复
          • 楼主, 您好! 服务器端选择http或者tls的两种情况下,最好在您的博客文章上加点篇幅说明两种情况下分别如何填写和注意事项,因为这个处理算是一个节点了,很重要的是吧?服务器端选择简单,但客户端使用者填写错了那不是糟糕, 谢谢!
            An7年前(2017-10-23)回复