转载秋水大佬的酸酸乳一键脚本

最近GFW越来越猛,访问githut变得很慢很慢,而我又很需要频繁使用github,所以我得找一个很优秀的梯子,上个月在一家机场买了个月付套餐,用着还不错,节点多,速度也快,本来打算继续续费的,可阿里云那边传来了个好消息

开学前在阿里云白嫖的三个多月香港轻量服务器,使用酸酸乳被关进小黑屋之后,前几天居然被放出来了,还剩两个多月,本来想用来建站的,可惜用了一两天,发现香港轻量的网络线路是真的越来越差了,一到高峰期几乎没法用,网站都打不开,可是不用的话放着吃灰也是浪费资源,索性就用来搭个梯子,有需要的时候能勉强用一下,机场那边又能省一笔小钱

谈到搭酸酸乳,自然是用秋水逸冰的四合一脚本啦,可惜秋水大佬被请喝茶后就不敢再更新维护脚本,网站也停了,真是让人唏嘘

贴一下秋水大佬的告别文

斟酌再三,还是觉得已经没有继续坚持下去的必要了。
从 2018 年 8 月 8 日起,我的博客正式被墙了。恐怕这已经是相当仁慈的结果,毕竟从 2014 年初我就开始写关于 Shadowsocks 的教程和安装脚本了。我猜测,是因为从一开始我就使用了 CloudFlare 的服务,因此是不便直接对 IP 下手的,所以最终结果也是如我所料,被墙的方式是 DNS 污染。
也许已经有人发现,自从博客被墙后,我就不怎么更新了。原因无它,一个字足以形容,懒。还有就是有点心灰意冷。本想着反正已经被墙了,那就干脆那么放着吧。但是,有意料之中的事情还是发生了。
我承认 Toyo(逗比)的事情多少对我产生了一些影响,毕竟这位网友以前多少还是跟我有过沟通交流。从有限的接触来看,我认为他是一个热忱的人,有着强烈的学习欲望。一开始他也使用着我写的脚本,后来他觉得我写的脚本有不完善的地方,比如没有安装完成后的端口管理命令等等。于是跟我反映,而我觉得既然叫一键安装脚本,那自然是只管安装了,也懒得添加新功能。后来他就开始自学bash shell 开发,整合了我的脚本并添加了他自己想要的诸多功能。
他似乎在这条道路上有着用不完的激情,各种脚本和教程如雨后春笋,有了自己的用户群。而我所知道的,也仅限于此,直到他被人肉,被举报,被拘留,被起诉……
有那么一瞬间,我回想起自己从 2014 年初坚持至今的心路历程。
我可能是中国最早开始写 Shadowsocks 一键安装脚本并公开出来的人(权当是自吹自擂吧)。当然,这一切源自于我自己的需求。以至于后来开源脚本并写了各种教程,也都是源于我在使用它。
我喜欢这个巧妙的工具,比 VPN 轻量,使用起来也并不复杂,所以我愿意去推广和分享。
但不好的事情还是发生了。很多时候我们无能为力。
2015年8月,Shadowsocks 的作者 clowwindy 被迫删除其 Github 上的所有关于 Shadowsocks 的代码并从此退出开发。
2017年7月,ShadowsocksR 的作者 breakwa11 遭到人肉和恶意攻击,删除代码,退出开发。
迄今(2019年5月)为止,随着主要维护者的相继退出,Shadowsocks libev 版成了一颗独苗,虽然缓慢却仍在不断地更新。
Shadowsocks 发展至今,我觉得该到一键安装脚本退出历史舞台的时候了。原因就是,Shadowsocks 已经成为了大众化的工具,有着完善的服务端安装包,客户端以及各种 Docker 镜像等。
言及于此,是时候告别了。
青山不改,绿水长流。

大佬虽删除了教程和文章,但github上仍保留了master分支,实际上并不影响脚本使用,尽管以后不会再更新了,但至少现在还能用,而且也是目前为止最干净的酸酸乳一键脚本

脚本适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
内存要求:≥128M
最后更新:2019年1月23日

脚本简介

  1. 一键安装 Shadowsocks-Python、ShadowsocksR、Shadowsocks-Go、Shadowsocks-libev 版(四选一)服务端
  2. 各版本的启动脚本及配置文件名不再重合
  3. 每次运行可安装一种版本
  4. 支持以多次运行来安装多个版本,且各个版本可以共存(注意端口号需设成不同)
  5. 若已安装多个版本,则卸载时也需多次运行(每次卸载一种)
  6. Shadowsocks-Python 和 ShadowsocksR 安装后不可同时启动(因为本质上都属 Python 版)

脚本安装

使用root用户登录,运行一下命令:

wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log

安装完成后,如果出现下方提示就表示成功了:

Congratulations, your_shadowsocks_version install completed!
Your Server IP        :your_server_ip
Your Server Port      :your_server_port
Your Password         :your_password
Your Encryption Method:your_encryption_method

Your QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)
 ss://your_encryption_method:your_password@your_server_ip:your_server_port
Your QR Code has been saved as a PNG file path:
 your_path.png

Welcome to visit:https://teddysun.com/486.html
Enjoy it!

脚本卸载

若已安装多个版本,则卸载时也需多次运行(每次卸载一种)
使用root用户登录,运行以下命令:

./shadowsocks-all.sh uninstall

脚本命令

启动脚本后面的参数含义,从左至右依次为:启动,停止,重启,查看状态。

Shadowsocks-Python 版:

/etc/init.d/shadowsocks-python start | stop | restart | status

ShadowsocksR 版:

/etc/init.d/shadowsocks-r start | stop | restart | status

Shadowsocks-Go 版:

/etc/init.d/shadowsocks-go start | stop | restart | status

Shadowsocks-libev 版:

/etc/init.d/shadowsocks-libev start | stop | restart | status

脚本默认配置

服务器端口:自己设定(如不设定,默认从 9000-19999 之间随机生成)
密码:自己设定(如不设定,默认为 teddysun.com)
加密方式:自己设定(如不设定,Python 和 libev 版默认为 aes-256-gcm,R 和 Go 版默认为 aes-256-cfb)
协议(protocol):自己设定(如不设定,默认为 origin)(仅限 ShadowsocksR 版)
混淆(obfs):自己设定(如不设定,默认为 plain)(仅限 ShadowsocksR 版)
备注:脚本默认创建单用户配置文件,如需配置多用户,请手动修改相应的配置文件后重启即可。

配置文件

Shadowsocks-Python 版:
/etc/shadowsocks-python/config.json

ShadowsocksR 版:
/etc/shadowsocks-r/config.json

Shadowsocks-Go 版:
/etc/shadowsocks-go/config.json

Shadowsocks-libev 版:
/etc/shadowsocks-libev/config.json

客户端下载

SS客户端

Win:https://github.com/shadowsocks/shadowsocks-windows/releases
Mac:https://github.com/shadowsocks/ShadowsocksX-NG/releases
Android:https://github.com/shadowsocks/shadowsocks-android/releases

SSR客户端

Win:https://github.com/shadowsocksr-backup/shadowsocksr-csharp/releases
Android:https://github.com/shadowsocksr-backup/shadowsocksr-android/releases

SSR协议和混淆插件说明

工作原理

C->S方向

浏览器请求(socks5协议) -> ssr客户端 -> 协议插件(转为指定协议) -> 加密 -> 混淆插件(转为表面上看起来像http/tls) -> ssr服务端 -> 混淆插件(分离出加密数据) -> 解密 -> 协议插件(转为原协议) -> 转发目标服务器
其中,协议插件主要用于增加数据完整性校验,增强安全性,包长度混淆等,协议插件主要用于伪装为其它协议

客户端

客户端的协议插件暂无配置参数,混淆插件有配置参数,混淆插件列表如下:

plain:不混淆,无参数
http_simple:简易伪装为http get请求,参数为要伪装的域名,如cloudfront.com。仅在C#版客户端上支持用逗号分隔多个域名如a.com,b.net,c.org,连接时会随机使用其中之一。不填写参数时,会使用此节点配置的服务器地址作为参数。
http_post:与http_simple绝大部分相同,区别是使用POST方式发送数据,符合http规范,欺骗性更好,但只有POST请求这种行为容易被统计分析出异常。参数配置与http_simple一样
tls1.2_ticket_auth:伪装为tls请求。参数配置与http_simple一样

其它插件不推荐使用,在这里忽略

客户端的协议插件,仅建议使用origin,verify_sha1,auth_sha1_v2,auth_sha1_v4,auth_aes128_md5,auth_aes128_sha1,解释如下:

origin:原版协议,为了兼容
verify_sha1:原版OTA协议,为了兼容
auth_sha1_v2:中等安全性,无时间校对的要求,适合路由器或树莓派,混淆强度大
auth_sha1_v4:较高安全性,有宽松的时间校对要求,混淆强度大
auth_aes128_md5或auth_aes128_sha1:最高安全性,有宽松的时间校对要求,计算量相对高一些,混淆强度较大

如不考虑兼容,可无视前两个

服务端

大部分插件都可以通过添加_compatible后缀以表示兼容原版,例如默认的http_simple_compatible或auth_sha1_v4_compatible这样;服务端的协议插件,仅auth_*系列有协议参数,其值为整数。表示允许的同时在线客户端数量,建议最小值为2,默认值64。

服务端的混淆插件,http_simple或http_post有混淆参数,用逗号分开若干个host,表示客户端仅能使用以上任一个host连接,而留空表示客户端可以使用任意host。tls1.2_ticket_auth有混淆参数,其值为整数,表示与客户端之间允许的UTC时间差,单位为秒,为0或不填写(默认)表示无视时间差。

总结

如不考虑原版的情况下,推荐使用的协议,只有auth_sha1_v4和auth_aes128_md5和auth_aes128_sha1,推荐使用的混淆只有plain、http_simple、http_post、tls1.2_ticket_auth不要奇怪为什么推荐plain,因为混淆不总是有效果,要看各地区的策略的,有时候不混淆让其看起来像随机数据更好。

如果觉得我的文章对你有用,请随意赞赏

Leave a Comment