Shadowsocks-go一键安装脚本

技术 秋水逸冰 1274930浏览 701评论

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

关于本脚本:
一键安装 Go 版的 Shadowsocks 最新版本 1.2.2。与 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 年 11 月 05 日:
基于当前 Github 上的最新代码,自主编译 x86 和 x86_64 二进制可执行文件,版本号 1.2.2。

2018 年 03 月 15 日:
基于当前 Github 上的最新代码,自主编译 x86 和 x86_64 二进制可执行文件。

2018 年 02 月 07 日:
修改:将默认端口从 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一键安装脚本

发表我的评论
取消评论

请输入正确答案后提交评论 *超出时限。 请再次填写验证码。

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (701)

  1. 这事虚拟机还是Linux服务器的启动方式?
    顾大愤9年前(2015-11-01)回复
  2. 这个脚本有升级命令么?我记得还是今年上半年安装的这个,想升级新版,是重新安装还是有升级命令?
    地狱傀儡师9年前(2015-10-28)回复
    • 这个版本作者很久都没更新了,如今依然是 1.1.4
      秋水逸冰9年前(2015-10-29)回复
  3. 客户端和服务器端是否都可以同时打开?我是想,国内服务器直连国外,然后在国内服务器上在打洞,这样可一定程度不被封!
    aaa9年前(2015-10-26)回复
    • 可以试试 haproxy,通过国内服务器中转流量。 具体可以网站找教程。
      秋水逸冰9年前(2015-10-27)回复
  4. 秋大能否详细点说明多用户配置的办法: 我用下面两条命令都试过 /etc/shadowsocks/config.json vi /etc/shadowsocks/config.json 出现这个 ~ ~ ~ ~ ~ ~ ~ ~ ~ 一串代码。。
    xiaotian9年前(2015-10-22)回复
  5. 感谢楼主的无私分享。我在DO上架的CentOS系统,为了校园网免流量,开启双栈+多用户,在服务器开始运行的十几小时内一切正常,然而之后就会出现 VPS ([xxxx:xxxx:xxxx::xxxx]:8989) timed out 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() ipv6的两个端口都有这个问题,ipv4都可以正常访问。然后再过一段时间ipv6地址都无法ping通(确认不是本地网络的问题)。有尝试过网上各种iptables, firewalld,都没有什么效果。已经重新架过一次服务器,还是遇到同样的情况,网络正常十几小时后开始出错。求各位大神指点,感激不尽!
    slillian9年前(2015-10-13)回复
  6. 总是安装不成攻,不知道哪里出问题了,唉 System.Net.Sockets.SocketException (0x80004005): 不知道这样的主机。 在 System.Net.Dns.GetAddrInfo(String name) 在 System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) 在 System.Net.Dns.GetHostEntry(String hostNameOrAddress) 在 Shadowsocks.Controller.Handler.StartConnect()
    称砣9年前(2015-10-07)回复
  7. 秋水大大好,我用的防火墙是firewalld,然而单人模式能够正常使用,同样的端口同样的密码改成多人模式就无法正常连接了,firewalld的端口状态没变化,config.json如下{ "port_password": { "8989": "xxx", "9001": "yyy" }, "method": "aes-128-cfb", "timeout": 600 }
    Bluefissure9年前(2015-10-02)回复
    • 不能用了,无非两个原因,配置文件问题,防火墙问题。
      秋水逸冰9年前(2015-10-06)回复
  8. 其实博主的脚本我都试了,64M内存就能满足……并不是要求上写的128M
    lol9年前(2015-09-28)回复
    • 我是推荐 128MB 以上。仅仅是安装,那么 32MB 内存也能安装好。 问题是随着使用的过程中内存的使用量会慢慢增加,最后内存不足,程序进程被 kill,小内存更容易被 kill 罢了。
      秋水逸冰9年前(2015-09-28)回复
      • 有什么命令可以让程序不允许被kill吗
        裴涩琪之吻9年前(2015-10-12)回复
  9. 请教一下博主,这个可以做限速吗?
    ixinshang9年前(2015-09-24)回复
  10. 楼主,我从小米顺藤摸瓜摸过来的,为什么我用的您的配置文件(但是我链接的帐号和服务器是付费的其他帐号,不是用您搭建的)无法登陆CNN中文网等之类的网站,脸书和推特等正常。我用电脑端口上SS连接不翻墙的路由器是可以登陆的,所以不是我的帐号服务器的原因,不知道是不是路由器端口下载您的配置文件导致原因呢?还烦请解答并帮助了,谢谢!
    crazyfreely9年前(2015-09-14)回复
    • 配置文件是用于 server 端的。 看了半天不知道你想表达什么。
      秋水逸冰9年前(2015-09-14)回复
  11. 感谢博主的分享~ 另外我在centos上遇到多端口不能用的情况,后来发现是iptables的配置问题. 按照脚本里的方法得以解决,希望对其他人有帮助. `` /sbin/iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport ${shadowsocksport} -j ACCEPT /etc/init.d/iptables save /etc/init.d/iptables restart ``
    Youen9年前(2015-09-09)回复
    • /sbin/iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport (你设置的端口号//去掉括号) -j ACCEPT /etc/init.d/iptables save /etc/init.d/iptables restart 在配置文件添加端口后,运行上面的,就能多用户了
      100009年前(2015-09-15)回复
  12. { "port_password":{ "23":"123456", "9001":"123456", }, "method":"aes-256-cfb", "timeout":600 } 博主,我这样配置的文件,port23的可以用,9001的不可以,求助
    蓝胖子9年前(2015-09-07)回复
  13. 请教一下 这个怎么实现多用户呢?
    蓝胖子9年前(2015-09-07)回复
  14. 真方便,为你收藏转载了!
    showell9年前(2015-09-05)回复
  15. 折腾了好久,最后在Ubuntu环境下成功了,其他几个环境不是打不开端口就是服务不能正常启动
    rex9年前(2015-09-04)回复