Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2613588浏览 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. 为什么手机在外面通过移动4G信号连不上ss,回了家WiFi却可以
    paras9年前(2015-06-02)回复
  2. 如何限定端口的流量?
    paras9年前(2015-06-02)回复
  3. 安装的时候怎么修改默认配置,centos7.1
    v9年前(2015-06-02)回复
  4. 秋水老师您好 敲到putty上去以后 直接显示-bash: wget: command not found 是为啥呀?
    百木饭店9年前(2015-05-31)回复
    • 去搜一下就知道是什么原因了。 缺少 wget,安装命令: yum install -y wget
      秋水逸冰9年前(2015-06-01)回复
      • 我太蠢了T T谢谢老师
        百木饭店9年前(2015-06-01)回复
  5. 这个最新版支持chacha29加密吗
    天的龙骑士9年前(2015-05-17)回复
  6. 怎么让一个端口 只有一台用户登入? 就是限制登入数
    JOKER9年前(2015-05-13)回复
    • 同问,期待博主提供具体的解决方案。
      VIO9年前(2015-05-14)回复
  7. 想弄个开机启动服务,如下: cat > /etc/network/if-up.d/netspeeder< log 2>&1 &) EOF chmod +x /etc/network/if-up.d/netspeeder 然后再rc.local加sudo /etc/network/if-up.d/netspeeder,本人是小白,不懂,想问下哪里错了,自己捉摸的,那个括号应该就一对还是怎样?求解答
    yinws9年前(2015-05-11)回复
  8. 如何配置一个端口和密码只能允许一个用户连接呢? 就是同一个端口和密码如果第二个人连接的话就会自动断开第一个人的连接。请博主赐教,非常感谢!
    VIO9年前(2015-05-08)回复
  9. 楼主 如果 增加多用户,还需要配置防火墙么? 端口需要在防火墙中增加么?
    seven9年前(2015-05-07)回复
    • 需要在防火墙里放行端口。
      秋水逸冰9年前(2015-05-08)回复
      • 刚刚接触VPS 能给出具体的放行方法吗 非常感谢!
        wind9年前(2015-05-14)回复
        • 以下方法适用于CentOS: /sbin/iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 端口号 -j ACCEPT /etc/init.d/iptables save /etc/init.d/iptables restart
          秋水逸冰9年前(2015-05-14)回复
          • 我修改了etc/sysconfig/iptables文件 在-A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT这行下面添加了: -A INPUT -p tcp -m state --state NEW -m tcp --dport 441 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT 保存重启 似乎也可行?非常感谢你的指导:)
            wind9年前(2015-05-14)回复
  10. 秋水大大,感谢你为我们这些小菜鸟做的一键包,太方便了!感谢!有一个问题想问下,多用户配置时如何统计那个端口用了多少流量之类的,或者说如何管理多用户,比如控制每个端口的流量什么的,这个可以实现吗?谢谢
    kevinfisher9年前(2015-05-06)回复
  11. Debian 7 X64环境下 ,更改本地端口后,无法连接,求解?
    locyoo9年前(2015-04-27)回复
    • 本地端口随便改,但是改完后插件里的端口也要改成一样的。
      秋水逸冰9年前(2015-04-27)回复
  12. CentOS版本似乎有BUG,执行 service shadowsocks restart 返回如下 shadowsocks is not running INFO: loading config from /etc/shadowsocks.json 2015-04-26 00:45:36 INFO loading libcrypto from libcrypto.so.10 2015-04-26 00:45:36 ERROR already started at pid 4367 shadowsocks start failed 无法实现重启 必须手动kill对应pid之后才能实现重启 感觉脚本的stop命令有问题
    LjxPrime9年前(2015-04-26)回复
    • 建议奖PID判断改为ps -e | grep 'ssserver' | awk '{print $1}'
      LjxPrime9年前(2015-04-26)回复
    • /usr/bin/ssserver -c /etc/shadowsocks.json -d stop 这就是 stop 命令实际调用的。官方自带的命令。 先判断有没有启动进程,如果有,调用官方自带停止命令来停止。 在我的所有 vps 上测试都没出现这种情况。 如果出现这种情况,很有可能是配置文件出错了。
      秋水逸冰9年前(2015-04-26)回复
      • 嗯 可是那个/etc/init.d/shadowsocks 呢 里面stop是这么写的: stop(){ pid=`ps -e | grep 'ssserver' | awk '{print $1}'` if [ ! -z $pid ]; then $BIN -c $conf -d stop RETVAL=$? if [ "$RETVAL" = "0" ]; then echo "$name stop success" else echo "$name stop failed" fi else echo "$name is not running" RETVAL=1 fi } 里面的pid——ps -e | grep 'ssserver' | awk '{print $1}',我自己执行之后确实不是ssserver的pid,不知道为啥, 于是才总是返回is not running,然后我把这个pid获取改了下 ,然后就没事了。 还有就是配置文件错误指的是哪方面呢?ss是可以正常运行的,为啥还有错误呢?谢谢
        LjxPrime9年前(2015-04-26)回复
        • 你的可能是老版本的。建议从 Github 上拉一下最新版本的,覆盖一下即可。
          秋水逸冰9年前(2015-04-26)回复
  13. 请问如果多IP如何配置ss?且希望每个ip对应密码都不一样
    waini11109年前(2015-04-25)回复
    • 个人理解,也没试过,你要运行多个ss的实例,设置config设置不同的ip,而且端口不能冲突(废话。。)
      LjxPrime9年前(2015-04-26)回复
  14. 请问下ec2自带aim系统安装脚本有吗? Amazon Linux AMI
    ue9年前(2015-04-24)回复
  15. 楼主,为什么安装完后使用命令/etc/init.d/shadowsocks restart使得服务成功运行以后,再用/etc/init.d/shadowsocks status检查告诉我说shadowsocks服务未运行?
    rqd19959年前(2015-04-23)回复
    • 那就是虽然命令执行成功了,实际上还是没有进程。 十有八九是配置文件配置错了。
      秋水逸冰9年前(2015-04-23)回复