Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2185967浏览 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. 启动不了,log显示socket.error: [Errno 98] Address already in use 具体是 016-09-02 02:43:00 INFO starting server at 0.0.0.0:36745 started Traceback (most recent call last): File "/usr/bin/ssserver", line 9, in load_entry_point('shadowsocks==2.9.0', 'console_scripts', 'ssserver')() File "/usr/lib/python2.6/site-packages/shadowsocks-2.9.0-py2.6.egg/shadowsocks/server.py", line 74, in main tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) File "/usr/lib/python2.6/site-packages/shadowsocks-2.9.0-py2.6.egg/shadowsocks/tcprelay.py", line 727, in __init__ server_socket.bind(sa) File "", line 1, in bind socket.error: [Errno 98] Address already in use
    vyy8年前(2016-09-02)回复
  2. 你好,我用的搬瓦工VPS,先安装的Python3.5.2,然后安装的SS一键脚本,显示安装成功,但是无法启动。 提示信息如下: [root@localhost ~]# /etc/init.d/shadowsocks start Traceback (most recent call last): File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 635, in _build_master ws.require(__requires__) File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 943, in require needed = self.resolve(parse_requirements(requirements)) File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 834, in resolve raise VersionConflict(dist, req).with_context(dependent_req) pkg_resources.VersionConflict: (shadowsocks 2.9.0 (/usr/local/python3/lib/python3.5/sit e-packages/shadowsocks-2.9.0-py3.5.egg), Requirement.parse('shadowsocks==2.8.2')) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/bin/ssserver", line 5, in from pkg_resources import load_entry_point File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2927, in @_call_aside File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2913, in _call_aside f(*args, **kwargs) File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set working_set = WorkingSet._build_master() File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 637, in _build_master return cls._build_from_requirements(__requires__) File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements dists = ws.resolve(reqs, Environment()) File "/usr/local/python3/lib/python3.5/site-packages/pkg_resources/__init__.py", line 829, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'shadowsocks==2.8.2' distribution was not found and is required by the application shadowsocks start failed [root@localhost ~]# 是不是Python 的版本原因?
    慢慢的空8年前(2016-09-02)回复
  3. 亲 啥时候能添加个 shadowsocks-plus 的一键安装啊 听说可以让openvn有锐速的效果
    Samuel8年前(2016-09-01)回复
  4. 对命令不懂,多用户配置是不是就是改"server":"0.0.0.0",和端口密码就行了?现在没有加配置可以单用户使用。谢谢了。
    光阳忌无8年前(2016-09-01)回复
  5. SSR 和 Python的版本上,都可以做多用户吗? SSR的連接设定上还要设定 Protocol, obfs之类的,是增加安全性?比python的不容易被干扰吗? 话说现在很多人用了AES-256-cfb ,新版的SS有 AES-256-CTR之类的的加密,有推荐的吗? 谢谢~~
    okz8年前(2016-08-29)回复
    • 可以通过修改配置文件来实现多端口(也就是多用户) SSR 其实就是增加了混淆。至于加密方式,区别不大,默认即可。
      秋水逸冰8年前(2016-08-30)回复
  6. 能不能做下Amazon linux的兼容?或者修改建议,我把你的脚本改动了下让检测amazon linux当做centos运行,是能安装上,但是运行报错 shadowsocks is not running /etc/init.d/shadowsocks: line 21: /usr/bin/ssserver: No such file or directory shadowsocks start failed 我改动的位置 if [ ! -z "`cat /etc/issue | grep Amazon`" ];then OS=CentOS
    kwkwkkk8年前(2016-08-29)回复
    • 抱歉,我没有 AWS 测试环境。 暂时做不到兼容。 如果你有兴趣,可以联系我,我来做个适配。
      秋水逸冰8年前(2016-08-29)回复
      • 这个可以有,我可以吧我的key发给你
        kwkwkkk8年前(2016-08-29)回复
  7. 对了,给shadowsocks设置的端口是1080,然后我也把SS服务启动起来了,但是我用netstat看,发现1080端口是关闭的。这是不是说明SS启动失败了?
    huangmou378年前(2016-08-27)回复
    • 看你贴出来的配置文件,端口是 8989
      秋水逸冰8年前(2016-08-28)回复
      • 可能是我表达错误,的配置文件是用你的安装包里面的默认配置,就是local port是1080,server port填8989。 然后在shadowsocks的windows客户端里,“服务器端口”我填8989,“代理端口”填1080,是正确的吧? 可是代理就是不成功。是不是还有哪里是我疏忽了呢?我研究了一个周末也没什么进展。。
        huangmou378年前(2016-08-29)回复
        • 仔细检查一下你的本地客户端设置,或者浏览器插件配置
          秋水逸冰8年前(2016-08-29)回复
          • 谢谢你!果然是浏览器插件的问题。最近chrome自动同步了代理插件,里面的代理配置信息是错误的,导致google, youtube自动走一个无效的代理。难怪一直访问不了。 希望我这个愚蠢的经验对大家遇到的问题也可以有帮助。。。
            huangmou378年前(2016-08-30)回复
  8. 你好。我用你发的教程,成功跑了一段时间shadowsocks了,不过从昨天开始shadowsocks就翻墙不成功了。我重启过VPS,也看过shadowsocks的日志,看不出什么问题来。 [2016-08-27 19:41:27] Shadowsocks started [2016-08-27 19:41:49] Socket connected to ss server: 45.55.252.251:8989 [2016-08-27 19:41:49] connect to api.github.com:443 [2016-08-27 19:42:23] Shadowsocks started [2016-08-27 19:44:34] Socket connected to ss server: 45.55.252.251:8989 [2016-08-27 19:44:34] connect to safebrowsing.google.com:443 [2016-08-27 19:44:36] Socket connected to ss server: 45.55.252.251:8989 [2016-08-27 19:44:36] connect to safebrowsing-cache.google.com:443 [2016-08-27 19:50:27] Shadowsocks started 这是我的shadowsocks.json配置文件(就是默认的那个): { "server":"0.0.0.0", "server_port":8989, "local_address":"127.0.0.1", "local_port":1080, "password":"teddysun.com", "timeout":300, "method":"aes-256-cfb", "fast_open":false } 检查了防火墙,所有防火墙都处于未启用状态(inactive)。 想请问下你有没有什么建议?我现在不知道从哪里下手了。。。
    huangmou378年前(2016-08-27)回复
  9. 你好, 我主机在日本,我有放到你都shadowsocks.be介绍haproxy 中转,但是請問下,我是外国人,我要在中國国内租一个VPS比较好,还是用香港,台湾,日本临近的VPS做中转隐藏我的真实SS IP呢? 中國国内的有价格便宜,稳定的VPS吗?适合做中转的 谢啦
    okz8年前(2016-08-26)回复
    • 都可以啊。国内的 VPS 随便买喽,不过一般也就推荐阿里云吧。
      秋水逸冰8年前(2016-08-27)回复
  10. 博主,为什么在每次重启VPS后SS的进程都没在内存中,客户端都连不上。
    bitfish8年前(2016-08-26)回复
  11. 每当用个三五天就回连接不上了,用的manyuser,主账号能连接,一些子账号就连接不上了,是不是被系统进程杀掉了什么东西,每次重新安装就有好了,不过重新安装挺麻烦的,大神给支个招呗
    x8年前(2016-08-26)回复
  12. 你好,配置完以后访问网页提示502错误怎么解决呢?
    zyx8年前(2016-08-24)回复
  13. 秋大,你这最新的脚本怎么还是安装的2.8.2版本的ss,你查看下,是不是搞错了?
    g67g8年前(2016-08-24)回复
    • 你应该下载最新版代码来安装。
      秋水逸冰8年前(2016-08-24)回复
      • 最新版的代码来安装啥意思?用你这最新的脚本不是安装的最新的代码么
        g67g8年前(2016-08-28)回复
  14. 加密方式能够安装好有手动修改 /etc/shadowsocks.json这个档案吗? 加密方式我要用salsa20, chacah20, aes-256-ctr 目前好像用不了
    okz8年前(2016-08-23)回复
  15. 您好我是新手,已经安装成功了,也可以使用的,但是在配置多用户时总是失败,显示如下,想问一下我是错在了哪里?谢谢 [root@vultr ~]# { > "server":"0.0.0.0", > "local_address":"127.0.0.1", > "local_port":1080, > "port_password":{ > "8989":"888", > "9001":"888", > "9002":"888" > }, > "timeout":300, > "method":"aes-256-cfb", > "fast_open": false > } -bash: server:0.0.0.0,: command not found -bash: local_address:127.0.0.1,: command not found -bash: local_port:1080,: command not found -bash: port_password:{: command not found -bash: 8989:888,: command not found -bash: 9001:888,: command not found -bash: 9002:888: command not found -bash: },: command not found -bash: timeout:300,: command not found -bash: method:aes-256-cfb,: command not found -bash: fast_open:: command not found
    journey8年前(2016-08-23)回复
    • 如果你不会用 vim 来改的话,把配置文件下到本地来改好再上传覆盖
      秋水逸冰8年前(2016-08-23)回复
      • [root@iZ23odmc990Z download]# /etc/init.d/shadowsocks start INFO: loading config from /etc/shadowsocks.json /usr/lib/python2.6/site-packages/shadowsocks-2.9.0-py2.6.egg/shadowsocks/shell.py:156: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 e.message) ERROR: found an error in config.json: Expecting property name: line 7 column 3 (char 128) shadowsocks start failed
        单纯耗子8年前(2016-08-25)回复