Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2394574浏览 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. 安装好,客户当也链接上了,google同样上不了,我用的是aws ec2 tokyo, 这个是什么问题呢
    狗蛋10年前(2014-11-04)回复
    • 原因不明。很多人在 AWS 上部署都出现了各种各样的问题。
      秋水逸冰10年前(2014-11-04)回复
  2. 安装的时候出现这个提示: Installing collected packages: M2Crypto Running setup.py install for M2Crypto building 'M2Crypto.__m2crypto' extension swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c swig -python -I/usr/include/python2.6 -I/usr/include -I/usr/include/openssl -includeall -modern -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i /usr/include/openssl/opensslconf.h:36: Error: CPP #error ""This openssl-deve l package does not work your architecture?"". Use the -cpperraswarn option to co ntinue swig processing. swig -python -I/usr/include/python2.6 -I/usr/include -I/usr/include/openssl -inc ludeall -modern -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i /usr/include/openssl/opensslconf.h:36: Error: CPP #error ""This openssl-devel pa ckage does not work your architecture?"". Use the -cpperraswarn option to contin ue swig processing. error: command 'swig' failed with exit status 1 这个要怎么破。。。
    doobom10年前(2014-11-02)回复
    • 错误的重点在这里:This openssl-devel package does not work your architecture? 试试用这句话去 google 一下吧。 我怀疑是 yum 安装的 openssl-devel 包的版本有问题。或者根本就是你 vps 的 repo 源的问题。
      秋水逸冰10年前(2014-11-03)回复
      • 谢谢。
        doobom10年前(2014-11-03)回复
      • CentOS 7 可以用吗???
        doobom10年前(2014-11-03)回复
  3. 非常感谢,终于在搬瓦工上架成了!
    唐亭轩10年前(2014-11-02)回复
  4. CentOS 下 shadowsocks-nodejs 一键安装脚本 CentOS 下 shadowsocks-libev 一键安装脚本 这两个版本和这个有什么区别吗?
    情绪21度10年前(2014-11-01)回复
    • 区别在于nodejs版作者已经不再更新了。装 libev 版吧
      秋水逸冰10年前(2014-11-01)回复
  5. 多用户配置无法启动服务端的原因: 博主的帖的配置里面有引号串用的情况. 解决方法: 全部改为英文半角引号/.
    YAKE10年前(2014-11-01)回复
    • 在 WordPress 里引用代码是不会被转换,你可以先复制到记事本上,然后再修改配置,sample 仅供参考。
      秋水逸冰10年前(2014-11-01)回复
  6. 提个东西.至于为什么有人复制你这里的多用户会出现无法重启的情况. 我复制出来,发现里面有引号串用, 有几个地方本该全部是英文半角引号,结果里面有中文引号.如果还有遇到的同学请仔细检查
    YAKE10年前(2014-11-01)回复
  7. 您好,我按照您上面的教程,安装好了shadowsocks,然后修改了shadowsocks.json,修改成多用户,之后shadowsocks就打不开了,关闭了防火墙也显示“shadowsocks is stopped”,不知道哪里弄错了 { "server":"xxx.xxx.xxx.xxx",(这里填写了我vps的ip地址) "local_address": "127.0.0.1", "local_port":1080, "port_password":{ "8989":"tang@1", "9001":"tang@2", "9002":"tang@3", "9003":"tang@4", }, "timeout":600, "method":"aes-256-cfb", "fast_open": false, "workers":1 }
    tangtang10年前(2014-10-30)回复
    • 看配置文件,没问题。那么,你重启了没有?
      秋水逸冰10年前(2014-10-30)回复
      • 多加了一个, 9003那一条后面
        tangtang10年前(2014-10-31)回复
        • 嗯,把 9003 这一条后面的逗号删掉应该就好了。
          秋水逸冰10年前(2014-10-31)回复
  8. 这个脚本能用在64M openvz vps吗?
    king10年前(2014-10-30)回复
    • 你可以试试先,我没在这么小内存的 VPS 上测试过。
      秋水逸冰10年前(2014-10-30)回复
  9. 为啥配置了 多用户 不能正常代理上网呢
    明月10年前(2014-10-27)回复
    • 仔细检查你的配置文件,比如少个逗号什么的,还有防火墙设置,密码是否输入正确等等。
      秋水逸冰10年前(2014-10-27)回复
      • 直接复制你的配置的。。。也是不行
        明月10年前(2014-10-27)回复
        • 防火墙有没有对相应的端口放行?或者干脆直接关闭防火墙。 service iptables stop
          秋水逸冰10年前(2014-10-28)回复
          • 。。。不知道 咋的 重新配置了下又正常可以使用了
            明月10年前(2014-10-28)回复
  10. EC2上AMI Instance,显示启动成功,但找不到相关进程,/etc/init.d/shadowsocks status显示“shadowsocks is stopped”,有什么方法可以诊断原因吗?谢谢
    mark10年前(2014-10-26)回复
    • 输入 ps -ef ,看看有没有 ssserver 进程。如果没有,确认一下配置文件是否正确,比如缺少逗号什么的,然后再重新启动 shadowsocks
      秋水逸冰10年前(2014-10-26)回复
  11. 我用AWS上EC2里面的redhat6.5 运行脚本后都正常,但是启动不了,一启动就失败
    Big10年前(2014-10-23)回复
    • 说具体点,否则谁能知道原因呢?不过,还是建议换成 CentOS 吧。
      秋水逸冰10年前(2014-10-23)回复
  12. 请问可以出个支持debian版本的么
    hell10年前(2014-10-21)回复
  13. 你好,我执行第一行命令就出现错误 [root@SF ~]# wget --no-check-certificate https://raw2.github.com/teddysun/shadowsocks_install/master/shadowsocks.sh -bash: wget: command not found [root@SF ~]# 请问怎么解决?
    小白10年前(2014-10-21)回复
    • yum install -y wget 安装完 wget 后应该就可以了。
      秋水逸冰10年前(2014-10-21)回复
      • 感谢,已安装成功了。但是想问一下,为什么我搭建的ss速度这么慢呢?我用的是DO5美元每月的,在speedtest测只能达到2-3mbps,我这是20M的电信,照理说应该不至于这么慢啊,人家晒的截图都是把宽带跑满了的。以前也在网上找过一键安装包,速度也差不多,反正就是下载速度一两百K左右。我还有台搬瓦工,速度也是这样。最近一直在折腾,希望您能给我指明一条出路。
        小白10年前(2014-10-21)回复
        • 听说要把端口改成443,改了速度好像也差不多
          小白10年前(2014-10-21)回复
        • Shadowsocks 的速度取决于你本地 ISP 到 VPS 之间的速度,还有网络延迟,上网高峰等等。各种因素都有可能影响速度。 DO 选旧金山会快点,比新加坡要好的多。
          秋水逸冰10年前(2014-10-21)回复
          • 唉,真是这样啊,我用移动20M的宽带测出有13Mbps,电信坑货。
            小白10年前(2014-10-21)回复
            • 另外问一下,你这里有三个一键安装脚本,选择哪个最好呢?
              小白10年前(2014-10-21)回复
  14. 独立服务器安装成功,开始连接失败, 此方法无效 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited 我同时修改了 iptables 和 ip6tables 才连接成功。 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited
    nic201310年前(2014-10-19)回复
    • 这是因为你的服务器同时开启了 ipv4 和 ipv6 防火墙导致的。
      秋水逸冰10年前(2014-10-19)回复
  15. aws ubuntu14.04 系统下提示: pip install failed! Please visit https://teddysun.com/342.html and contact. 求解~~
    10年前(2014-10-18)回复
    • 本脚本仅支持 CentOS ,不支持 Ubuntu 系统。
      秋水逸冰10年前(2014-10-18)回复