Shadowsocks-go一键安装脚本

技术 601613 次围观 640 次吐槽

本脚本适用环境:
系统支持:CentOS,Debian,Ubuntu
内存要求:≥64M
日期:2018 年 02 月 07 日

关于本脚本:
一键安装 Go 版的 shadowsocks 最新版本 1.2.1。与 Python 版不同的是,其客户端程序能使用多个服务端配置,本脚本安装的是服务端程序。
友情提示:如果你有问题,请先参考这篇《Shadowsocks Troubleshooting》后再问。

默认配置:
服务器端口:自己设定(如不设定,默认从 9000-19999 之间随机生成)
密码:自己设定(如不设定,默认为 teddysun.com)
加密方式:自己设定(如不设定,默认为 aes-256-cfb)

Shadowsocks for Windows 客户端下载:
https://github.com/shadowsocks/shadowsocks-windows/releases

使用方法:
使用root用户登录,运行以下命令:

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

安装完成后,脚本提示如下:

Congratulations, Shadowsocks-go 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/392.html
Enjoy it!

卸载方法:
使用 root 用户登录,运行以下命令:

./shadowsocks-go.sh uninstall

其他事项:
客户端配置的参考链接:https://teddysun.com/339.html

安装完成后即已后台启动 Shadowsocks-go ,运行:

/etc/init.d/shadowsocks status

可以查看 Shadowsocks-go 进程是否已经启动。
本脚本安装完成后,已将 shadowsocks-go 加入开机自启动。

使用命令:
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status

多用户多端口配置文件示例:
配置文件路径:/etc/shadowsocks/config.json

{
    "port_password":{
         "8989":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "method":"your_encryption_method",
    "timeout":600
}

官方版本的示例 ,详见这里

更多版本 Shadowsocks 服务端一键安装脚本:
ShadowsocksR 版一键安装脚本(CentOS,Debian,Ubuntu)
Shadowsocks Python 版一键安装脚本(CentOS,Debian,Ubuntu)
CentOS 下 shadowsocks-libev 一键安装脚本
Debian 下 shadowsocks-libev 一键安装脚本
Shadowsocks 一键安装脚本(四合一)

更新日志:

2018 年 02 月 07 日:
1、修改:将默认端口从 8989 改为从 9000-19999 之间随机生成。

2017 年 07 月 22 日:
新增:安装时可选 9 种加密方式的其中之一。如下所示:

aes-256-cfb
aes-192-cfb
aes-128-cfb
aes-256-ctr
aes-192-ctr
aes-128-ctr
chacha20-ietf
chacha20
rc4-md5

2017 年 02 月 18 日:
基于 Github 最新代码,使用最新的 go 1.8 自主编译 x86 和 x86_64 二进制文件。

2017 年 02 月 13 日:
升级 Shadowsocks-go 版到版本 1.2.1(基于 Github 最新代码,用 go 1.7.5 自主编译完成的 x86 和 x86_64 二进制文件)。

2017 年 01 月 27 日:
更新 Shadowsocks-go 到版本 1.2.1(仅适用于 x86_64 系统,x86 系统仍是 1.1.5)。

2016 年 05 月 12 日:
新增在 CentOS 7 下的防火墙规则设置。

2016 年 05 月 04 日:
更新 Shadowsocks-go 到版本 1.1.5。

2015 年 08 月 01 日:
新增自定义服务器端口功能(如不设定,默认为 8989)。

2015 年 05 月 11 日:
更新 Shadowsocks-go 到版本 1.1.4。

2015 年 03 月 09 日:
新增支持在 Debian,Ubuntu 下安装。

2015 年 01 月 08 日:
修改了启动脚本 /etc/init.d/shadowsocks ,按照 CentOS 的 chkconfig 标准语法修改了一下(原来使用的是作者 Github 上自带的)。去掉了以 nobody 用户启动 shadowsocks 的方式,改为直接以当前登录用户直接启动(一般是 root 用户)。开机自启动,以及修改端口号提示无权限的问题已经解决。

参考链接:
https://github.com/shadowsocks/shadowsocks-go

转载请注明:秋水逸冰 » Shadowsocks-go一键安装脚本

发表评论
取消评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
表情

已有评论 (640)

  1. -bash: /etc/shadowsocks/config.json: Permission denied 运行脚本完成后,提示没权限,root账户这是肯定的了 一键安装 Python 版 shadowsocks 的最新版,这个脚本就没问题,麻烦帮忙看看是什么问题 vps:digitalocean CentOS 6.5 x64 CentOS 7.0 x64 都不行
    kfyang3年前 (2015-01-10)回复
    • root 用户下,如果你想改配置文件,怎么会没有权限?这不可能。 vi /etc/shadowsocks/config.json
      秋水逸冰3年前 (2015-01-10)回复
      • [[email protected] ~]# /etc/shadowsocks/config.json -bash: /etc/shadowsocks/config.json: Permission denied [[email protected] ~]# /etc/init.d/iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8989 Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination 查看防火墙可以,查看config.json 就没有权限,帮忙看看是什么问题,现在的 问题就是本地客户端根本上不了
        kfyang3年前 (2015-01-10)回复
        • 问题找到shadowsocks客户端upd不能勾选,去掉正常,之前你的其他版本正常,希望能继续改进,谢谢
          kfyang3年前 (2015-01-11)回复
          • go版暂时没有 udp 转发功能。改进的话,你去跟作者反映一下?
            秋水逸冰3年前 (2015-01-11)回复
        • 查看 config.json不是那个命令,cat /etc/shadowsocks/config.json 你那么执行就成了运行配置文件了,那当然是没有权限了。 不如你关掉防火墙后再试试好了
          秋水逸冰3年前 (2015-01-11)回复
  2. 请问我的VPS是digitalocean,使用这个脚本后,手动重启服务器后,shadowsocks服务启动不成功,使用/etc/init.d/shadowsocks status查询状态一直是: Could not find PID file /var/run/shadowsocks.pid, shadowsocks-go does not appear to be running,使用/etc/init.d/shadowsocks start后还是这样,请问该怎么办?
    永夜3年前 (2015-01-09)回复
    • 启动失败,检查配置文件 /etc/shadowsocks/config.json 内容是否正确。
      秋水逸冰3年前 (2015-01-09)回复
      • 之前我说的无法开机自启动也就是这个提示,但是我shadowsocks start命令以后是能够启动服务的。我估计他用你最新的脚本就好了
        jerry3年前 (2015-01-11)回复
        • 当时确实有开机不能自启动的问题,后来已作修正。嗯,用最新版即可。
          秋水逸冰3年前 (2015-01-11)回复
  3. chacha20 加密应该是支持的。秋水有试过几个加密方式对于网速的影响吗?
    lovest3年前 (2015-01-09)回复
    • 代码里没有此加密方式,那么如何支持?加密方式对网络速度的影响,肉眼根本无法察觉,个人使用也无需在乎那几十毫秒的差别吧。
      秋水逸冰3年前 (2015-01-09)回复
  4. 是否支持udp转发?如何设置?
    Haitao3年前 (2015-01-09)回复
  5. 请问: ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8989 这样是可以的吗?本地连不上
    fanqiang3年前 (2015-01-08)回复
    • 脚本会自动改写防火墙规则,你这是个啥?手动改的吧。 干脆你关掉防火墙再试试看吧
      秋水逸冰3年前 (2015-01-08)回复
      • 好了,谢谢
        fanqiang3年前 (2015-01-09)回复
  6. # wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_inst --2015-01-08 08:36:48-- https://raw.githubusercontent.com/teddysun/shadowsocks_inst Resolving raw.githubusercontent.com... 23.235.47.133 Connecting to raw.githubusercontent.com|23.235.47.133|:443... connected. HTTP request sent, awaiting response... 400 Bad Request 2015-01-08 08:36:49 ERROR 400: Bad Request. 请问楼主怎么回事
    gaoyan12343年前 (2015-01-08)回复
    • 额,你复制命令要复制完全啊,这很明显是因为网页宽度自动换行的命令。 或者你就说一次性复制所有的命令,也行啊
      秋水逸冰3年前 (2015-01-08)回复
  7. 写的很棒,也热心,赞!
    fanqiang3年前 (2015-01-08)回复
  8. 博主的代码都很好,但是每次都有小问题让小白遇到一些困难,比如改成443端口放行就出现监听错误,建议还是修改下教程,默认443端口吧。
    abc3年前 (2015-01-08)回复
    • 请博主尽快修正这个BUG吧,谢谢啦
      abc3年前 (2015-01-08)回复
      • 443是常用端口,脚本不可能默认改成这样的。 本脚本所使用的启动脚本也是来自于官方 go 版本的 Github 网站。
        秋水逸冰3年前 (2015-01-08)回复
        • 那我还是用python版本吧,谢谢了
          abc3年前 (2015-01-08)回复
          • 额,你所反应的问题,经过修改和测试,目前已经全部 OK 了。
            秋水逸冰3年前 (2015-01-08)回复
            • 您是说自己修改端口已经OK了?我下载你的SH文件下来看看
              abc3年前 (2015-01-08)回复
              • 修改的是启动脚本 /etc/init.d/shadowsocks ,跟安装的脚本文件没关系。详见: https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go
                秋水逸冰3年前 (2015-01-08)回复
                • 恩,没注意到,刚刚自己修改了SH文件,现在默认443端口和rc4-md5,谢谢
                  abc3年前 (2015-01-08)
                • 还有个问题,支持 chacha20加密吗,我测试了在VPS上,特别是低端VPS上用这个加密能提升20%左右的网速。
                  abc3年前 (2015-01-08)
                • 作者的代码里我没看到有对 chacha20 的支持,所以应该是不支持的。
                  秋水逸冰3年前 (2015-01-08)
  9. # netstat -lntp tcp 0 0 xxx.xxx.xxx.xx:8989 0.0.0.0:* LISTEN 19505/ss-server 刚刚试了下"CentOS下shadowsocks-libev一键安装脚本"就木有这种问题。何解?
    joesam3年前 (2015-01-07)回复
    • 这个我真猜不出来原因。给的信息太少。
      秋水逸冰3年前 (2015-01-07)回复
  10. # netstat -lntp tcp 0 0 :::8989 :::* LISTEN 5272/shadowsocks-se shadowsocks-go 连不上,求破!
    joesam3年前 (2015-01-07)回复
  11. 几个问题吧。 1. centos 6下面,手动改config.json里面把端口设置为443,同时更改iptables里面对应规则的端口。提示没有在监听443端口无权限。 2. centos 7下面,装好以后,就算是在iptables里面添加对应端口的规则也是无法使用的,百思不得其解
    jerry3年前 (2015-01-07)回复
    • 443 被占用了还是什么情况?这个版本的 Shadowsocks 启动的时候是以 nobody 用户启动的,也许是这个原因导致的无权限。 CentOS 7 下默认是没有安装 iptables 的,有可能是 CentOS 7 最新的 firewalld 引起的问题。
      秋水逸冰3年前 (2015-01-07)回复
      • 1.第一个问题在已经换成默认的8989端口解决。影响不大。但是现在发现你的脚本设置开机启动是无效的,chkcongfig shadowsocks on无效,尽管在chkconfig --lisst里面已经能看到shadowsocks了但是还是无法自启动。改rc.local好像也无效(当然可能我改的不对) 2. centos7下面我卸载了firewalld,装iptables,删除了prohitted的两个iptables规则,也一样无法使用。 go版本的ss可能问题还是有的。但是现在在centos下面基本不影响使用。就暂时先这么去了
        jerry3年前 (2015-01-08)回复
        • 我已经重新修改了启动脚本 /etc/init.d/shadowsocks ,按照 CentOS 的 chkconfig 标准语法修改了一下(原来使用的是作者 Github 上自带的)。去掉了以 nobody 用户启动 Shadowsocks 的方式,改为直接以当前登录用户直接启动(一般是 root) 经过测试,在 CentOS 下开机启动是 OK 的了。 修改配置文件里的端口为 443 后,也 OK 了。
          秋水逸冰3年前 (2015-01-08)回复
  12. 大神能稍微改一下脚本来实现UDP转发么? 这里有人已经做出来支持UDP版本的go了 https://github.com/shadowsocks/shadowsocks-go/issues/42
    orz3年前 (2015-01-06)回复
    • 我不是什么大神。此UDP转发的fork需要编译安装,而编译安装的话,需要安装 go 环境,同时还有一系列的设置等,比较麻烦。
      秋水逸冰3年前 (2015-01-06)回复
      • 有时间做个支持udp转发脚本,谢谢!
        Haitao3年前 (2015-01-09)回复
  13. /etc/sysconfig/iptables: 权限不够 唉,安装成功但连接不起来
    kevin3年前 (2015-01-06)回复
    • 权限不够?不是 root 用户登录的么。下面的命令是用 vim 来修改: vi /etc/sysconfig/iptables
      秋水逸冰3年前 (2015-01-06)回复
      • 我搭建成功了但是连接不了。。能私下帮我解决一下吗 623380001
        kevin3年前 (2015-01-06)回复
  14. 感觉是有黑魔法的感觉,更换成go了,you2 立马1080p无阻力? 不知道秋水是否能写一些tcp优化的教程呢?
    lovest3年前 (2015-01-05)回复
    • 有没有搞错,真的假的,不会是你的错觉吧。 tcp怎么优化我不懂啊,所以就不必装懂来写什么教程了。看看别人的吧。
      秋水逸冰3年前 (2015-01-06)回复
      • 应该不是错觉,毕竟原先用的libev的版本,you2b 720p都有点压力。。 换了以后立竿见影。貌似在v2ex上也有人反应...
        lovest3年前 (2015-01-06)回复
  15. 嘿嘿,又过来看看,希望楼主能够新的一年更多收获。
    xiao_45663年前 (2015-01-05)回复