Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2392622浏览 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. 博主,您好!我用的是您的一键安装python版。默认是单用户的,安装完成后可以使用。按照多用户的教程,我修改了,/etc/sysconfig/iptables文件,增加了端口,同时也修改了/etc/shadows-libev/config.json的配置,我是用WinSCP在线打开修改,然后点保存的。但上述两个文件修改完成后。SS节点就连接不上了,不知道问题出在哪里,求指导。谢谢!
    Doraemon8年前(2016-08-02)回复
    • Python 版的配置文件路径为 /etc/shadowsocks.json,文章也写明了。 增加 iptables 的端口后,还需要重启 iptables。 同样,修改完 Shadowsocks 的配置文件后,想要生效也要重启。
      秋水逸冰8年前(2016-08-02)回复
  2. 博主你好,请问这个这个python版支持一次验证码?应该如何启用呢?我照网上说的在配置文件最后添加“one_time_auth”:true结果是ss无法成功运行
    another8年前(2016-07-31)回复
    • 通过 pip 安装的 Python 版 Shadowsocks 的版本是 2.8.2,不支持 one_time_auth 属性。
      秋水逸冰8年前(2016-07-31)回复
  3. 多用户版连接不上,在配置文件里面添加了端口和密码,连接不上,只有一开始搭建的那个端口和密码可以。
    骚可8年前(2016-07-30)回复
    • 你需要在 iptables 里放行已经添加了的其他端口。
      秋水逸冰8年前(2016-07-31)回复
  4. 博主,请问在脚本更新日志中的新增在 CentOS 7 下的防火墙规则设置是如何实现的?要开启另外的端口需要 iptables-services 来替代 firewalld?
    Season8年前(2016-07-30)回复
    • No,就是通过修改 firewalld 的规则来实现的。
      秋水逸冰8年前(2016-07-30)回复
  5. 博主,centos phython,请问Do的floating ip能用于ssh登录吗?配置服务端时,server ip能用floating ip吗?客户端登录的时候能填floating ip吗?
    babycomeon8年前(2016-07-27)回复
  6. 你好,我安装成功,看vps上面的日志也没有异常,但是客户端连接一直不行,查看日志 [2016-07-26 14:27:12] 我的VPS timed out [2016-07-26 14:27:12] System.Net.Sockets.SocketException (0x80004005): 提供了一个无效的参数。 在 System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) 在 System.Net.Sockets.Socket.InternalBind(EndPoint localEP) 在 System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext, AsyncCallback callback, Object state) 在 System.Net.Sockets.Socket.BeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state) 在 Shadowsocks.Controller.TCPHandler.StartConnect() 这个是什么情况呢? 找不到问题
    周江8年前(2016-07-26)回复
  7. 虽然安装成功了但是一直无法连接并且在安装过程中出现InsecurePlatformWarning 请问这是怎么回事呢
    Din8年前(2016-07-24)回复
  8. 大神我输入 /etc/shadowsocks.json 想实现多用户,但是返回了 -bash: /etc/shadowsocks.json: Permission denied 。请问怎么解决。
    zercy13468年前(2016-07-21)回复
    • 如果你想编辑该配置文件,那么你最好先去了解一下 vim 的用法,然后再输入 vi /etc/shadowsocks.json 来作修改。或者把该文件下载回本地,用文本编辑器修改完了在上传覆盖。
      秋水逸冰8年前(2016-07-21)回复
  9. 我用的这个版本的一键包,一直好用,为啥最近看youtube平板很慢,手机也不快,电脑正常
    追忆8年前(2016-07-21)回复
  10. 今天使用您的方法安装成功,谢谢大大
    Snow8年前(2016-07-21)回复
  11. 您好,安装之后总会自动关闭,可能是什么原因呢? [root@vultr ~]# /etc/init.d/shadowsocks start INFO: loading config from /etc/shadowsocks.json 2016-07-21 05:40:52 INFO loading libcrypto from libcrypto.so.10 started shadowsocks start success [root@vultr ~]# /etc/init.d/shadowsocks status shadowsocks is not running
    zy8年前(2016-07-21)回复
    • 嗯,你最好用 ps -ef | grep -v grep | grep python 查看一下进程里有没有类似 ssserver 这样的字段,然后再做进一步判断。
      秋水逸冰8年前(2016-07-21)回复
    • 我也出现这个问题了。python和libev版本都试过了,刚安装好显示开启成功,再看status就停了。 root@testyou:~# /etc/init.d/shadowsocks-libev start Starting Shadowsocks-libev success root@testyou:~# /etc/init.d/shadowsocks-libev status Shadowsocks-libev is stopped 系统是debian-8.0-x86_64-minimal.
      泰迪迷5年前(2019-05-10)回复
  12. 请问 怎么搭建后台管理系统啊?有教程吗?谢谢!
    小甜甜8年前(2016-07-20)回复
  13. 用您的一键脚本安装了python ss到我的vps后, 再次xshell连接时提醒输入ssh用户名和密码. 请问这是要输入哪个用户名密码?
    man8年前(2016-07-20)回复
  14. 请问一下,我使用的事EC2成功连接上了 使用的事ipad 用ping test 也是有网速的 但是我用chrome浏览器打不开谷歌 ,却显示的是此网站无法提供安全连接,www.google.com发送的响应无效,ERR_SSL_PROTOCOL_ERROR请问 有什么解决的办法么?
    zyw8年前(2016-07-20)回复
  15. 我用netstat -anp看了看 我的两个端口都有被监听 但是只有一个端口可以连上,这是为什么?
    magic2338年前(2016-07-16)回复
    • 有可能是防火墙没有开启那个另外的端口吧。输入:iptables -L -n 查看。
      秋水逸冰8年前(2016-07-16)回复
      • 解决了 谢谢您 centos 7默认firewalld防火墙···我不知道这个 刚开始学习7
        magic2338年前(2016-07-17)回复