Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2530613浏览 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. 防火墙的设置里面,楼主的一键安装脚本是把规则加在iptables的chain input里面的,chain forward里面还都是REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited,chain output里面是空的,这个有关系么?我目前安装了之后vps上面能正常启动,但是这边客户端连接不上
    nOOn10年前(2015-01-01)回复
    • 如果你怀疑是防火墙的问题,那么先关闭防火墙再试试能不能连接,如果能连接,那就是防火墙的设置问题,如果还是不能,那就应该排查别的问题。
      秋水逸冰10年前(2015-01-01)回复
  2. 按照这个教程配置之后,点开网页就弹下载窗口是怎么回事
    lesi10年前(2014-12-25)回复
    • 不知道,我只提供免费的脚本而已
      秋水逸冰10年前(2014-12-25)回复
    • 请设置代理为SOCKS5,你设置成HTTP就会这样。
      ask10年前(2014-12-27)回复
  3. 配置多端口失败,能否有更详细的教程? 我配置完成后 重启过 /etc/init.d/shadowsocks restart 还是不行。望指点! 同时如果有多个IP地址。如何在centOS上的shadowsocks 上绑定?比如想做两个IP地址的shadowsocks 在同一台centOS上又该如何?望指点!
    chris10年前(2014-12-23)回复
    • 配置多端口就是改配置文件,配置文件怎么改,文章里已经有例子,然后再改一下防火墙配置,放行那些端口(如果开启了的话),最后再重启一下即可。 多IP的vps,目前能做到的还是只能显示主IP,这跟vps的入口IP有关。
      秋水逸冰10年前(2014-12-23)回复
  4. 老大 我在digitalocean上 安装不成功是怎么回事 求帮助
    ANNT10年前(2014-12-20)回复
    • 没有具体信息,我也不知道是怎么回事
      秋水逸冰10年前(2014-12-20)回复
  5. 还是无法连接代理服务器,服务器端一切OK,报告shadowsocks is running。但客户端shadowsocks log里报告: System.Net.Sockets.SocketException: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 在 System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) 在 Shadowsocks.Controller.Handler.ConnectCallback(IAsyncResult ar) 本地shadowsocks代理控制面板,我打开了'enable' 和‘share over lan’ 地址是服务器登录地址就是那个外网地址,端口8989,密码无误、加密方式aes-256-cfb,proxy 端口1080。应该都没错,在本地internet选项中连接设置使用代理服务器,地址是本机内网地址,端口1080,怎么就连不上呢?
    Jians10年前(2014-12-18)回复
    • 统一回复一下。 1,你这种求索的精神是很不错的,学习Linux基础知识,建议先从鸟哥的Linux私房菜基础篇,这本书对于初学者还是有帮助的; 2,本脚本测试的环境没有EC2,我没在亚马逊的EC2上测试过,不过据反映,没有一个是成功的,虽然服务器成功运行,但客户端依然连接不上。建议买个便宜的 VPS 来安装使用。 3,我在很多廉价的 VPS 上面测试过,并一直正常使用。
      秋水逸冰10年前(2014-12-19)回复
      • 正在读鸟哥的linux入门,好久没看书了。 EC2我放弃了,这玩意居然用普通ssh还无法登录,要用密匙。我找了vpngate翻出去了,线路很不稳定,但下个别资料或代码还是可以的。不知道shadowsocks在目前这种网络高压监控下有稳定的连接么?
        Jians10年前(2014-12-19)回复
        • 一直很稳定,socks5流量没有特征,还加密了
          秋水逸冰10年前(2014-12-20)回复
      • 另外问一下,可以给秋老师发邮件吗?不会叨扰到您吧。有些linux方面的问题如果有人指点下的话,可以少走很多弯路。
        Jians10年前(2014-12-19)回复
      • EC2上shadowsocks是可以用的,我看有其他网友也测试成功。有两点需要注意,1.服务器端应使用内网地址;2.EC2缺省不允许inbound traffic,需要在security group里配置允许连接的端口,和开通SSH client连接类似,这个在EC2使用指南里有说明。这个功能和iptables类似,但不是在EC2里的操作系统上实现的,只能在ec2 console里配置。我只是简单测试了一下单用户,单端口的情况
        一叶知秋10年前(2014-12-25)回复
        • 看来是这么回事,有需要的可以看看这篇评论。
          秋水逸冰10年前(2014-12-26)回复
  6. Yes,我找到了问题,我在配置文件中使用的服务器地址是我远程登录到VPS的那个地址,我猜是外网地址,虽然还不太明白,这个是什么意思。然后我在服务器端ifconfig中查到是另一个地址,这次我估计是内网地址,我也不太明白这个是什么意思,怎么一台电脑两个地址。不过我把配置文件中服务器地址改成内网的,OK,现在shadowsocks正常启动了,ps -ef 和 netstat -anp都能查到了,就是不知道远程现在能不能连上代理了。 另外请教学习Linux系统操作应该从什么地方入手,拿本书翻么?
    Jians10年前(2014-12-18)回复
  7. 你好!我是一个基本上白丁的linux,VPS,shadowsocks新手。因为想学python,查到了qpython,因为想用qpython,必须要上play.google.com。因为要上google,所以查到shadowsocks。因为要用shadowsocks,我去amazon申请了ec2。然后按图索骥下载了shadowsocks。一路都是泪啊。 现在shadowsocks安装成功了,自动安装shadowsocks也提示成功了。success! 悲剧是,firefox一直提示连接被拒绝,我回头在服务器端用 "/etc/init.d/shadowsocks status" 发现 stopped!,然后按 "/etc/init.d/shadowsocks start" 报告success,回头再查status, 依然stopped!。不信,在用ps -ef查,没查到ssserver. 再查netstat -anp 没查到8989。回头就逐字逐句对照/etc/shadowsocks.json,没错啊!没办法了,实在是不知道该查什么了。我猜是不是shadowsocks因为什么我不知道的原因没有启动?希望秋水老大给点指点。多谢了。
    Jians10年前(2014-12-18)回复
  8. 你好。我转载了你的文章
    drifter10年前(2014-12-17)回复
  9. 您好! 请问怎样设置,一个端口只限一个电脑使用呢?不能同时被多台电脑使用。谢谢您!
    mike10年前(2014-12-15)回复
  10. 谢谢你提供这么好的应用。 我向您请教一个问题,我按您的要求安装好了Shadowsocks,服务是正常启动状态,同时我连防火墙也关了,8989端口也关了,服务器也重启几次了。 我中国深圳就是怎么也连不上。 刚开始客户端显示UDP连接成功,然后一开打chrome里的www.youtube.om就提示,连接错误,超时 不知道是不是被墙了, 感谢您的解答! 我想使用Shadowsocks实现连上国际VPN,而不是使用pptp或是ssh 谢谢
    mike10年前(2014-12-15)回复
    • Chrome浏览器需要安装插件,并正确配置才行,另,你的URL少了个字母,应该是com
      秋水逸冰10年前(2014-12-16)回复
      • 如电脑未翻墙,安装好shadowsocks后,在Chrome快捷方式后加参数 --proxy-server="socks5://127.0.0.1:1080" 即可实现翻墙,再去下载chrome webstore下载插件可也。
        ask10年前(2014-12-27)回复
  11. 做个GO版本的一键安装包吧,哈哈
    Abc10年前(2014-12-14)回复
  12. 你好,我每次的端口、密码都只能是“单用户配置文件”里的,不论我如何改成“多用户多端口配置文件”例如例子中的: { "server":"your_server_ip", "local_address": "127.0.0.1", "local_port":1080, "port_password":{ "8989":"password0", "9001":"password1", "9002":"password2", "9003":"password3", "9004":"password4" }, 都还是只是原来的:"server_port":8989, "local_address": "127.0.0.1", "local_port":1080, "password":"yourpassword", 能连接 多用户一个都连不上,为什么呢?
    yafei10年前(2014-12-07)回复
    • 改完之后,重启! 还有,如果开启了防火墙,一定也要对其他的端口放行。
      秋水逸冰10年前(2014-12-07)回复
  13. 请问下 不知道为什么客户端能连上 但是不能代理翻墙 昨天还好好的 查了下ss发现还在运行 重启了一次也没用
    MOKER10年前(2014-12-04)回复
    • 检查你的本地网络和 VPS 间的通信状况,是不是被 reset 了。
      秋水逸冰10年前(2014-12-04)回复
  14. 看了下评论,很多人都是进服务器改了shadowsocks.json文件出问题 我用 winscp直接进的后台修改的shadowsocks.json文件,添加多用户,但是保存后再去看/etc/init.d/shadowsocks status状态就显示shadowsocks stop failed shadowsocks start success 用/etc/init.d/shadowsocks restart重启,或者kill进程都没用...
    lost10年前(2014-12-03)回复
    • 说不定是改错了配置文件呢,不符合 json 语法,少个逗号什么的。仔细检查下,然后重启。
      秋水逸冰10年前(2014-12-04)回复
      • 语法肯定没错,和你的一字不差,最后一个没有逗号这些还是清楚的... 上作者github复制了他的代码也不行
        Abc10年前(2014-12-04)回复
        • 有用的信息太少,我分析不出来原因。还不行就重装。
          秋水逸冰10年前(2014-12-04)回复
          • 重装了试了几十次也是这样,包括检查英文半角全角都是,在一个交流群里其他人用了你的一键安装包后修改多用于也出现了同样的情况....
            Abc10年前(2014-12-07)回复
          • 找到原因了,,,你local_address的冒号后面有个空格,,,囧
            Abc10年前(2014-12-07)回复
            • 晕,这是我没想到的情况。 多谢提醒,已经修正了。
              秋水逸冰10年前(2014-12-07)回复
              • 其实不要这一行也可以,SS客户端不是已经设定好了么...
                Abc10年前(2014-12-07)回复
                • 没错,不要这一行完全可以。 就是跟官方配置文件一致而已。
                  秋水逸冰10年前(2014-12-07)
  15. 多用户的情况下运行几天后就会有个别用户连接不上。要重启 /etc/init.d/shadowsocks restart 它才会正常,不知道这是什么问题?
    ll10年前(2014-12-02)回复
    • 没遇到过,这个问题我也不知道,你去 Github 上问作者吧。
      秋水逸冰10年前(2014-12-02)回复