Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2527794浏览 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. 会更新Centos7的版本么,Centos7没有iptable...改为fireworkd....
    chobit10年前(2014-11-29)回复
  2. 自己实在搞不定,只好请教博主了。 VPS是DigitalOcean,系统CentOS6.5,按照教程一步一步设置玩,仍然无法通过ss打开网页。 本地客户端log显示 Shadowsocks started socks 5 protocol error socks 5 protocol error failed to recv data in handshakeReceive2Callback
    reversable10年前(2014-11-28)回复
    • VPS 的防火墙检查下,或者干脆关掉。 执行 netstat -anp确认 shadowsocks 有没有在监听端口
      秋水逸冰10年前(2014-11-28)回复
  3. centos 6 x64 设置多端口之后重启显示状态为stopped,restart显示stop failed,start success。跪求大神解决方法??
    P10年前(2014-11-26)回复
  4. 我这边的ISP貌似通过DNS污染封杀了shaowcocks, 请问楼主在openVZ的VPS上如何设置shaowcocks的UDP转发呢?这样是否能避免DNS污染的问题?
    VIO10年前(2014-11-18)回复
    • 修改一下启动脚本 /etc/init.d/shadowsocks ,在 start 函数中的启动命令后加个 -u 参数
      秋水逸冰10年前(2014-11-18)回复
      • 我安装的是Python 版,具体都要修改哪些地方呢?还有客户端还要不要做什么设置?请楼主指教,多谢! conf=/etc/shadowsocks.json pid=/var/run/shadowsocks.pid name='shadowsocks' start(){ nohup /usr/bin/python /usr/bin/ssserver -c $conf > /dev/null 2>&1 & RETVAL=$? REPID=$! if [ "$RETVAL" = "0" ]; then echo $REPID > $pid 2>&1 echo "$name start success" else echo "$name start failed" fi } stop(){ if [ -s $pid ]; then kill `cat $pid` RETVAL=$? if [ "$RETVAL" = "0" ]; then rm -f $pid echo "$name stop success" else echo "$name stop failed" fi else echo "$name is not running" RETVAL=1 fi } status(){ if [ -s $pid ]; then pidno=`cat $pid` kill -0 $pidno >/dev/null 2>&1 if [ "$?" = "0" ]; then echo "$name (pid $pidno) is running" RETVAL=0 else echo "$name is stopped" RETVAL=1 fi else echo "$name is stopped" RETVAL=1 fi } case "$1" in 'start') start ;; 'stop') stop ;; 'status') status ;; 'restart') stop start RETVAL=$? ;; *) echo "Usage: $0 { start | stop | restart | status }" RETVAL=1 ;; esac exit $RETVAL
        VIO10年前(2014-11-18)回复
        • 在评论里有人已经 udp 转发成功了,把那几篇文章都翻翻看
          秋水逸冰10年前(2014-11-19)回复
  5. 用centos当客户端和网关, 让后面的终端无需设置翻茄,是否可行?
    cxy10年前(2014-11-18)回复
    • 在同一局域网里是可以的,终端只需配置好代理插件就行了
      秋水逸冰10年前(2014-11-18)回复
  6. 启动 显示成功 但是 restart 显示 line 32: kill (19560) - 没有那个进程 shadowsocks stop failed 如何破?
    奈何10年前(2014-11-14)回复
    • 启动后会记录进程的 pid 到一个文件里,如果中途这个进程挂了,在 stop 的时候还会 kill 原来的 pid ,但是该进程已经挂了,所以就会显示 stop 失败的信息。 不影响。执行 ps -ef ,确认列表里没有启动 ssserver 进程后,就可以执行 service shadowsocks start 启动了。
      秋水逸冰10年前(2014-11-15)回复
  7. 请问有办法实现账号流量统计,账号限速吗?
    碌木10年前(2014-11-12)回复
  8. 博主这个版本支持rc4-md5 加密方式吗
    toms10年前(2014-11-11)回复
    • 支持,自己改一下配置文件里的加密方式再重新启动一下就可以了
      秋水逸冰10年前(2014-11-11)回复
  9. 可否配置同一个VPS多个IP的Shadowsocks?做到每个IP都可以用Shadowsocks连接?
    无妄之为10年前(2014-11-11)回复
    • 可以,启动多实例就可以了,用各自的配置文件,每个配置文件里监听不同的 IP 地址。 具体做法可以搜索之前的评论,如果不在这篇文章就在其他关于 Shadowsocks 的文章里。
      秋水逸冰10年前(2014-11-11)回复
      • 参考了之前您评论中的方法,可以通过副IP进行连接,但查IP之后显示的仍然是主IP,不知应做何修改?
        无妄之为10年前(2014-11-19)回复
        • 运行 netstat -anp 看看是否真的是在监听副 IP ,如果不是,要么是配置文件错了,要么是启动命令错了(或者是没有重启)
          秋水逸冰10年前(2014-11-20)回复
          • 事情是这个样子的,我Google了一些相同案例,Shadowsocks只能做到多入口,却不能哪个IP进就哪个IP出,不知道应该用哪种方案来解决,请指教。
            无妄之为10年前(2014-11-21)回复
  10. 更奇怪的是,我用其他朋友提供的SS帐号,也出现这种情况,后来想会不会是自己的PC有问题,用另外一台PC还是出现此类问题
    翻翻10年前(2014-11-09)回复
    • 也许是你本地网络的问题
      秋水逸冰10年前(2014-11-10)回复
    • 问题已找到了,SS+proxifier会出现这种情况,一旦在chrome装 switch proxy插件,问题马上就解决了
      翻翻10年前(2014-11-11)回复
  11. 补充下,在chrome显示 错误代码:ERR_CONNECTION_TIMED_OUT
    翻翻10年前(2014-11-09)回复
  12. 先生好,我用的是这个Python版本+proxifier全局代理,VPS是搬瓦工,系统是CentOS 6x 86,其他被墙网站都能上去,G+, youtube,twitter,FB,都上不去,求解
    翻翻10年前(2014-11-09)回复
    • 我和你遇到的情况都一样,我也是手机上无法上youtube,twitter,facebook,别的都可以~奇怪~
      twitterpig9年前(2015-02-04)回复
  13. pip install failed! Please visit https://teddysun.com/342.html and contact. 为什么我安装到最后显示失败了,安装libev版的也是失败,求大神帮忙
    alfred10年前(2014-11-08)回复
  14. chmod +x shadowsocks.sh为什么我输入这个就不行
    kill10年前(2014-11-05)回复
    • 那个,是 Github 的问题,下载地址 404 了。现在已经改好了。 重新跑一次吧。
      秋水逸冰10年前(2014-11-05)回复
  15. centos7行不行啊?
    idigital10年前(2014-11-04)回复