Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2614408浏览 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. 最新版本支持UDP吗??
    sjyfhsa9年前(2015-08-12)回复
    • 参考:https://github.com/shadowsocks/shadowsocks Features:TCP & UDP support
      秋水逸冰9年前(2015-08-12)回复
      • 秋大你的 Python一键安装版本 是同步作者第一时间更新的版本的吗? 最新版本好像已经支持UDP了~~wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh 我直接用这个命令安装就是最新的版本了吗??
        sjyfhsa9年前(2015-08-12)回复
  2. 秋大你好,我用你的安装包后,提示了enjoyit 可以用shadowsocks客户端代理的时候,却打不开网页!!这是为什么
    kotori9年前(2015-08-11)回复
    • 我想就凭这一句话,哪怕是 ss 的作者也不知道是为什么。
      秋水逸冰9年前(2015-08-11)回复
    • 如果你确定你的配置对了,就是SS密码还有端口这些,看看能不能更新PAC,如果能,就代表已经翻出去,如果不能,就代表你的配置有问题!理论大多数都是自己配置出错,其次是VPS的原因,VPS的原因往往都是防火墙的原因。你前面已经说了提示了enjoyit 了,尝试下关闭防火墙看看,service iptables stop。。如果真的还是不行的话,那只能是自身解决了,这种情况往往都是自己搞出来的,不要有什么问题就跑过来问,要学会自己解决问题!
      我不是秋大9年前(2015-08-11)回复
  3. 我现在的做法是用脚本安装 再卸载 再安装manyuser版 就不用安装库啦~!
    金牌输生9年前(2015-08-10)回复
  4. 请问用这个搭建SS 可以对接ss-panel吗?
    金牌输生9年前(2015-08-10)回复
  5. 我用的是搬瓦工的vps,之前使用脚本一切正常,后来重装了系统,使用了lnmp一键安装,再执行的ss一键脚本,启动正常,但实际上是不能用的。本地环境没有问题,更改为其它ss配置是可以翻的,使用命令查看的结果是这样的 # /etc/init.d/shadowsocks status shadowsocks is not running # /etc/init.d/shadowsocks restart shadowsocks is not running INFO: loading config from /etc/shadowsocks.json 2015-08-08 21:27:38 INFO loading libcrypto from libcrypto.so.10 started shadowsocks start success # /etc/init.d/shadowsocks status shadowsocks is not running
    erguotou9年前(2015-08-08)回复
    • 十有八九是配置文件的问题。Shadowsocks 和 lnmp 环境不冲突。
      秋水逸冰9年前(2015-08-09)回复
  6. 秋大,能写一个搭建anyconnect的教程吗???
    Poby9年前(2015-08-08)回复
  7. 原本在vultr搭的,用了锐速并TCP优化,以前用得好好的还能20M满速。 最近ss客户端一直报错连不上,重装服务端OS再搭建/换go.libev也无效centos5x64和centos6x64已试过。 本地ping到服务器约140,基本不丢包。 客户端报错信息如下: [2015-08-07 20:40:01] 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.Handler.StartConnect() [2015-08-07 20:40:01] lbl (地址:8989) timed out [2015-08-07 20:40:04] lbl (地址:8989) timed out [2015-08-07 20:40:04] lbl (地址:8989) timed out [2015-08-07 20:40:29] System.Net.Sockets.SocketException (0x80004005): 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 在 System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) 在 Shadowsocks.Controller.Handler.PipeRemoteReceiveCallback(IAsyncResult ar) [2015-08-07 20:40:31] lbl (地址:8989) timed out 盼大大指导原因可以的话希望得到解决思路,感谢!
    neiso9年前(2015-08-07)回复
    • 查查是不是服务器端防火墙的原因。
      秋水逸冰9年前(2015-08-08)回复
      • 是的,似乎以前iptables默认不开启,现在默认开启,修改规则后可用。 说实在的,我没觉得单纯做梯子的服务器开iptables有多少用,反倒给自己添麻烦。 问题解决,感谢涕零。
        neiso9年前(2015-08-08)回复
        • 你好,我用的是校园网,账号是购买别的网站的账号。我们学校是通过绑定ip.mac和固定dns来上网的。ss账号经别的地区测试可用。但是ss一直无法连通,提示: 在 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.Handler.StartConnect() [2015-11-22 15:42:30] 地址:52567 timed out 请问该如何解决?
          bw9年前(2015-11-22)回复
          • 从错误提示看,就是你客户端连接服务端超时了。
            秋水逸冰9年前(2015-11-22)回复
  8. teddy, 好像你的m2crypto是用編譯的? 如果是deb系的話應該可以apt-get install python-m2crypto搞定的
    akw288889年前(2015-08-07)回复
    • 在 Redhat 系不能直接安装,为了少写几行判断代码干脆都通过 pip 编译安装了。
      秋水逸冰9年前(2015-08-08)回复
  9. 用了脚本后 SS服务器已搭建成功 电脑客户端上可以连接 路由器无法连接! 请问该如何解决?
    Kratos9年前(2015-08-06)回复
    • 既然电脑客户端能连接,那你应该换个思路,服务器端是没问题的。
      秋水逸冰9年前(2015-08-06)回复
  10. 请问应该如何让vps上的shadowsocks开机自启?
    xiersa9年前(2015-08-05)回复
    • 脚本安装完成后会自动设置成开机自启。嗯哼,不信你重启 vps 试试。
      秋水逸冰9年前(2015-08-06)回复
  11. 我设置了多用户json 但是每添加一个端口用户 必须在iptables里面添加一条放行才能连接 以前用大大的脚本的时候可以直接添加不需要在iptables里面放行 是什么原因呢?
    jie9年前(2015-08-05)回复
    • 以前估计压根就没开启防火墙。
      秋水逸冰9年前(2015-08-05)回复
      • 感谢大大的回复 看了下 以前那台还是开着iptables 请问下正常的使用流程就应该是在json里添加一个账号然后给防火墙添加一个端口的放行么? 但是原来那台我都是直接改了json重启ss服务就能用了
        jie9年前(2015-08-06)回复
  12. centos 7安装完启动出错,穿墙失败!想问一下到底是什么问题 centos 6不会这样啊 INFO loading libcrypto from libcrypto.so.10 ERROR already started at pid 28917
    AXY9年前(2015-08-04)回复
    • 这个错误信息很明显表示已经启动了,进程 pid 为 28917,所以不能重复启动
      秋水逸冰9年前(2015-08-05)回复
  13. 我是shadowsocks python版,我手机电脑在同一路由器下,手机和电脑不能同时连两个端口,不然电脑的ss就ping不通,请问这是怎么回事?
    liao9年前(2015-08-03)回复
  14. 查看状态:/etc/init.d/shadowsocks status 显示未启动、 然后启动shadowsocks :/etc/init.d/shadowsocks start,出现错误 INFO: loading config from /etc/shadowsocks.json 2015-08-02 23:07:07 INFO loading libcrypto from libcrypto.so.10 2015-08-02 23:07:07 ERROR already started at pid 1408 怎么解决啊
    yuking9年前(2015-08-02)回复
    • 这个提示信息别说你看不懂。已经启动了,你再次启动当然会报错了。
      秋水逸冰9年前(2015-08-03)回复
  15. 感谢,已用ec2成功FQ
    a39年前(2015-08-02)回复