Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2389086浏览 1333评论

本脚本适用环境:
系统支持:CentOS 6,7,Debian,Ubuntu
内存要求:≥128M
日期:2018 年 02 月 07 日

关于本脚本:
一键安装 Python 版 Shadowsocks 的最新版。
友情提示:如果你有问题,请先参考这篇《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.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh
chmod +x shadowsocks.sh
./shadowsocks.sh 2>&1 | tee shadowsocks.log

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

Congratulations, Shadowsocks-python 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/342.html
Enjoy it!

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

./shadowsocks.sh uninstall

单用户配置文件示例(2015 年 08 月 28 日修正):
配置文件路径:/etc/shadowsocks.json

{
    "server":"0.0.0.0",
    "server_port":your_server_port,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"your_password",
    "timeout":300,
    "method":"your_encryption_method",
    "fast_open": false
}

多用户多端口配置文件示例(2015 年 08 月 28 日修正):
配置文件路径:/etc/shadowsocks.json

{
    "server":"0.0.0.0",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
         "8989":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"your_encryption_method",
    "fast_open": false
}

使用命令(2015 年 08 月 28 日修正):
启动:/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)
CentOS 下 Shadowsocks-libev 一键安装脚本
Debian 下 Shadowsocks-libev 一键安装脚本
Shadowsocks-go 一键安装脚本(CentOS,Debian,Ubuntu)
Shadowsocks 一键安装脚本(四合一)

参考链接:
https://teddysun.com/339.html

更新日志

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

(2017 年 07 月 21 日)
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

(2016 年 08 月 18 日)
1、修正:默认安装 Github 上 master 分支最新版本(目前为 2.9.0)。
2、修正:由于原作者已经不再更新 pip 下的源代码,故不再使用 pip 安装 Shadowsocks,而是改为下载 Github 的 master 分支来安装。如果在一段时间后,版本升级了,则先卸载,并再次执行本脚本就可以升级为最新版。

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

(2015 年 08 月 28 日)
1、修正控制脚本 /etc/init.d/shadowsocks 在 CentOS 7 无法查看 status 的问题。

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

(2015 年 03 月 10 日)
1、新增在 Debian、Ubuntu 下的一键安装;

(2015 年 01 月 21 日)
1、修正配置文件,与官方给出的 Sample 一致;
2、修改启动脚本,使用官方给出的后台启动和停止命令。

(2014 年 10 月 10 日)
跟作者反馈了多用户多端口问题,作者已更新 Wiki 页面。本教程新增多用户多端口配置文件的 sample 。

(2014 年 09 月 24 日)
如何配置多用户?详见:这里
备注:Shadowsocks 已经支持多用户,在配置文件中增加不同的端口,对应不同的密码即可。

(2014 年 07 月 12 日)
1、修正获取公网 IP 时的一个问题。建议不要使用共享公网 IP 的 VPS 来搭建 Shadowsocks 服务。

(2014 年 05 月 29 日)
1、增加 chkconfig 配置,实现 service 命令。
2、配置文件名从 /etc/config.json 改为 /etc/shadowsocks.json(与官方的命名一致)。
3、配置文件中新增 workers ,值默认为 1(与官方配置同步)。

(2014 年 05 月 27 日)
1、修正开机自启动失效的问题。
2、优化是否后台启动成功的判断逻辑。

(2014 年 05 月 04 日)
1、修正对增加防火墙端口逻辑的判断bug,对于已经放行 8989 端口的情况下,则无需再次增加。
2、修正获取服务器 IP 的判断bug,对于多 IP 的 VPS 或服务器,默认只取第一个公网 IP 写到配置文件(/etc/config.json)里。
3、加入开机自启动。

转载请注明:秋水逸冰 » Shadowsocks Python版一键安装脚本

发表我的评论
取消评论

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

表情

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

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

网友最新评论 (1333)

  1. 你好博主,想反馈个问题,就是上述配置文件/etc/shadowsocks.json的多用户格式好像在CentOS系统的VPS中是错的,我换成了以下格式后SS才能连接上,这是什么原因呢? { "server":"0.0.0.0", "port_password":{ "port":"password", "port":"password", "port":"password", "port":"password" }, "timeout":300, "method":"aes-256-cfb" "one_time_auth": true }
    bitfish8年前(2016-08-23)回复
    • 你的端口号呢?这个配置明显是有问题的,甚至都不符合 json 格式
      秋水逸冰8年前(2016-08-23)回复
  2. 您好,我想问下,安装的时候很顺利并且可以使用,但是我后来又安装了WDCP的时候,SS就无法使用了,是因为端口问题吗?小白不懂linux,烦请秋水大哥指教 INFO: loading config from /etc/shadowsocks.json 2016-08-23 11:56:20 INFO loading libcrypto from libcrypto.so.10 2016-08-23 11:56:20 ERROR already started at pid 27547 shadowsocks start failed
    大木8年前(2016-08-23)回复
    • 没有测试与 WDCP 的兼容性。你这个提示信息是说,已经启动了。 个人猜测连接不上应该是跟你的防火墙配置有关。
      秋水逸冰8年前(2016-08-23)回复
  3. 在VirMach的Debian 7.0.0 x86上,执行脚本,会卡在这里不动。 The following packages will be upgraded: cpio libc-bin libc6 libc6-i686 libexpat1 libssl1.0.0 perl-base wget
    Nexus8年前(2016-08-23)回复
  4. 发现这个脚本按双倍流量计算呢?请秋水兄指点下?
    jackys8年前(2016-08-22)回复
    • 这关脚本什么事,脚本只是安装和配置 Shadowsocks 罢了。 你是不是装了锐速或者其他的什么类似的加速软件?
      秋水逸冰8年前(2016-08-22)回复
  5. 博主你好,反馈一个可能不是问题的问题,使用你的最新一键安装脚本,在digitalocean上测试安装了centos 7.2和debian 7两个版本,但是都发现有一个问题,时不时会断流,或则说短暂无响应,需要稍等一会儿才有速度,而利用pip安装的版本则无此问题,当然这个其实不是你的脚本问题,应该是官方维护更新导致的可能bug,只是反馈一下,也许只是个例,感谢博主的脚本。还有一个就是,你的最新的l2tp脚本在digitalocean上debian 7安装失败。。。主要是编译 libreswan 失败,文中提到的临时解决办法好像不能完全解决,不知道是否有最新的解决办法。感谢博主的无私奉献
    小楼8年前(2016-08-22)回复
    • 不行就换 SSR 版本,加混淆。 Debian 7 下安装 L2TP 确实有时候会不成功。换 Debian 8 就好了。
      秋水逸冰8年前(2016-08-22)回复
  6. 秋水大大,现在脚本是不是自动设置密码了?我安装完了显示 lease input password for shadowsocks-python:
    ted8年前(2016-08-20)回复
  7. 2.9是最新版,这个脚本装的是2.8。等更新。
    Nexus8年前(2016-08-18)回复
    • 2016 年 08 月 18 日已更新脚本。
      秋水逸冰8年前(2016-08-18)回复
      • 多谢!
        Nexus8年前(2016-08-19)回复
  8. Ubuntu 16.04 x86_64安装报错 Traceback (most recent call last): File "/usr/bin/pip", line 11, in sys.exit(main()) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib/python2.7/locale.py", line 581, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting Traceback (most recent call last): File "/usr/bin/pip", line 11, in sys.exit(main()) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib/python2.7/locale.py", line 581, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting Traceback (most recent call last): File "/usr/bin/pip", line 11, in sys.exit(main()) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib/python2.7/locale.py", line 581, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting Traceback (most recent call last): File "/usr/bin/pip", line 11, in sys.exit(main()) File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib/python2.7/locale.py", line 581, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting
    Xxx8年前(2016-08-18)回复
  9. 理论上应该可以把ShadowSocks进一步改造成P2P分享的去中心化应用?如果我的朋友圈有人在国外,只要他在线上并开着ShadowSocks服务,我就可以通过他做代理上网,他也可以通过我获得国内代理(玩国内服务器上的游戏或者看一些国内视频网站上只对国内IP开放的视频)。这样的去中心化应用就很难被墙了。秋水觉得这是可行的么?
    Xda8年前(2016-08-13)回复
    • 你这个想法不叫去中心化,还是点对点,只不过是互相都有服务端和客户端罢了。
      秋水逸冰8年前(2016-08-13)回复
      • 叫什么不要紧,关键是每台电脑上同时运行ShadowSocks服务和客户端,像迅雷或BitTorrent一样。这样不是更难被墙,速度更快么?
        Xda8年前(2016-08-13)回复
        • 首先你得有个国外的朋友(逃 其次你们的网络都得有固定的公网 IP,否则用目前的 Shadowsocks 很难实现。
          秋水逸冰8年前(2016-08-13)回复
  10. 秋水大大,,我知道可以多端口的,我想要多个用户共用一个端口。可以实现不、
    骚可8年前(2016-08-08)回复
    • 多个用户同时使用一个端口,是不行的。
      秋水逸冰8年前(2016-08-08)回复
      • 手机新版本SS客户端支持KCP协议,不知道秋大是否有兴趣加入该插件到脚本中呢?
        Mike8年前(2016-08-11)回复
        • 不是我有没有兴趣的问题,脚本能做的只是安装和配置,实际的功能添加是需要改 Shadowsocks 的代码的。
          秋水逸冰8年前(2016-08-12)回复
  11. 配置了多端口多密码,为什么除了最初的端口,新增的端口都不行?
    哈哈ss8年前(2016-08-08)回复
    • 你配置完了新的端口,还要改相应的 iptables 或 firewalld 设置,对相应的端口放行才可以的
      秋水逸冰8年前(2016-08-08)回复
  12. 秋大,你好。新建多用户是可以没问题的。 但多用户的话 我想 137端口使用chacha20协议,138端口使用aes-256-cfe 行么?
    haha8年前(2016-08-08)回复
    • 单个配置文件里是不可以的。除非你开不同的进程并使用不同的配置文件来实现。 具体你可以参考这篇文章《Shadowsocks如何设置多IP》中关于配置文件的描述。
      秋水逸冰8年前(2016-08-08)回复
  13. 博主我按这个方法操作了但是没法启动信息是 [root@rsjy etc]# /etc/init.d/shadowsocks start INFO: loading config from /etc/shadowsocks.json /usr/lib/python2.6/site-packages/shadowsocks/shell.py:154: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 e.message) ERROR: found an error in config.json: Expecting , delimiter: line 7 column 10 (char 130) shadowsocks start failed 我没有找到所谓的config.json,只是自己改了一下shadowsocks.json这个文件,用的是vultr的服务器,centos6
    rsjy8年前(2016-08-07)回复
    • 你好好看文章啊,配置文件是 /etc/shadowsocks.json 你要的改的话,也是改 /etc/shadowsocks.json 这个文件。 不同版本所对应的配置文件是不一样的。
      秋水逸冰8年前(2016-08-07)回复
      • 我点回复没有反应,这是bug吗? 我改的就是 /etc/shadowsocks.json,但是报错里面说什么config.json有问题,我没有乱改,这要怎么办?
        rsjy8年前(2016-08-07)回复
        • 按照本文的例子照抄即可。 如若还不行,你换成 go 版好了~
          秋水逸冰8年前(2016-08-07)回复
  14. 怎么多个用户共用一个端口。为什么我的不可以共用。怎么解决 ,,,,还有反馈一个事,你的评论的这个滑块验证解锁,,,很多时候滑动了不提示成功解锁,,,还有手机版滑动不了
    骚可8年前(2016-08-07)回复
    • 反正是支持开多端口的,你多开几个端口就好了。 这个滑动解锁确实在手机上无法使用,没辙,要是不开这个垃圾评论那就满天飞了。
      秋水逸冰8年前(2016-08-07)回复
  15. 多台移动设备连接会冲突吗? 同端口同密码可以吗
    s7s7p78年前(2016-08-02)回复