Shadowsocks-go一键安装脚本

技术 秋水逸冰 872171 次围观 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. 请问端口可以更改吗
    YounG8年前 (2015-02-03)回复
    • 可以,修改配置文件 /etc/shadowsocks/config.json 中的 server_port 值,重启即可。当然,如果开启了防火墙,需要把新的端口号放行。
      秋水逸冰8年前 (2015-02-04)回复
  2. 服务器如果ip变了一下呢?需要卸载重装吗?
    easeus8年前 (2015-02-03)回复
    • 不需要,改一下配置文件 /etc/shadowsocks/config.json 中的 server 为 0.0.0.0,然后重启即可。
      秋水逸冰8年前 (2015-02-04)回复
  3. 这个可以用 radius 认证计费不
    xiaoxiao8年前 (2015-02-02)回复
    • 这个脚本是用来一键安装 Shadowsocks go 版服务端的,至于如何计费,你找找别的教程吧。
      秋水逸冰8年前 (2015-02-02)回复
      • 哦,谢谢楼主回复,弱弱的问下 客户端怎么配置,下载了那个客户端输入了IP和密码这些后还是不能翻wall呢
        xiaoxiao8年前 (2015-02-03)回复
        • 还需要配合浏览器插件来使用。具体教程网上有很多,要善于使用搜索。
          秋水逸冰8年前 (2015-02-03)回复
  4. 不稳定啊.下午装上可以,晚上上不了了。
    99cankao8年前 (2015-02-01)回复
  5. 请教一下,我的VPS提供了两个IP,要怎么配置,指定每一个IP所对应的端口和密码?
    doraemon8年前 (2015-01-30)回复
    • 目前只能使用到 VPS 的主 IP ,配置文件里怎么改,最后显示的都还是主 IP 。这个需要 iptables 来配合使用才行,具体是怎样的,我还没实施过。
      秋水逸冰8年前 (2015-01-30)回复
      • GitHub的源作者说是可以的,http://shadowsocks.github.io/shadowsocks-go/页面有说明: 客户端指定多个服务器 server_password 指定多个服务器和密码,服务器形式为 host:port 配置文件例子 client-multi-server.json。 如果有 server_password 选项,客户端会忽略 server_port, server 和 password 选项。 多个服务器按顺序选取,如果某个服务器无法建立连接,会自动尝试下一个服务器。客户端不会检查密码错误导致的连接问题,这样可以让用户发现配置错误。他贴出的配置示例 { "local_port": 1081, "server_password": [ ["127.0.0.1:8387", "foobar"], ["127.0.0.1:8388", "barfoo", "aes-128-cfb"] ] } 我按他的示例写入自己的配置文件,运行提示必需指定端口和密码。
        doraemon8年前 (2015-01-30)回复
        • 我这脚本是一键安装服务端,你说的是客户端,这不是同一件事。
          秋水逸冰8年前 (2015-01-30)回复
  6. 可以做一个centos下shadowsocks manyuser branch版本的一键安装脚本吗
    poppy79218年前 (2015-01-29)回复
  7. 已在防火墙加入-A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT 开启防火墙就无法访问,把防火墙关闭就能访问,这是哪里出现问题,麻烦楼主帮忙解答一下、
    一份香烟8年前 (2015-01-28)回复
    • 防火墙规则没改对,就是这个原因。请仔细阅读我所写的,如果看不懂,就去网上找找别的关于 iptables 的教程看看。
      秋水逸冰8年前 (2015-01-28)回复
      • 已经解决了、是我自己疏忽了,写错了、
        一份香烟8年前 (2015-01-29)回复
  8. 你好我使用的是https://my.vultr.com它家的VPS,centos6,64位系统我用了你的一键安装脚本,查看ss进程已经在运行,但是客户端不能连接,用/etc/init.d/iptables status 查看防火墙,发现在没有运行,提示iptables:Firewall is not running,也找不到/etc/sysconfig/iptables 文件,这个问题如何解决?
    doraemon8年前 (2015-01-27)回复
  9. 修改完帐号密码好像要重启才可以吗?我更改修改以后发现半天都连接不上。重启下ss才可以
    LYT8年前 (2015-01-24)回复
  10. 把配置文件改成多用户的{ "port_password":{ "8989":"password0", "9001":"password1", "9002":"password2", "9003":"password3", "9004":"password4" }, "method":"aes-256-cfb", "timeout":600 } 提示这个/etc/init.d/shadowsocks start starting shadowsocks-go error reading /etc/shadowsocks/config.json: invalid character '}' looking for beginning of object key string,请问大哥要怎么处理啊
    hangaj8年前 (2015-01-22)回复
  11. shadowsocks-go not running, remove PID file /var/run/shadowsocks.pid 用着用着就出这个错误 怎么自动关闭服务了呢
    Youn8年前 (2015-01-20)回复
    • 内存不够,进程被系统 kill 掉了。重启即可。
      秋水逸冰8年前 (2015-01-20)回复
      • 看来主机商的1G内存是坑人的啊
        Youn8年前 (2015-01-20)回复
  12. 你好,centOS5安装成功,但是客户端连接不上,按照你的文章检查iptables并没有发现你文中所说的那条规则 请教解决方法,谢谢 # Generated by iptables-save v1.3.5 on Thu Jan 15 14:24:38 2015 *raw :PREROUTING ACCEPT [5706647:588785260] :OUTPUT ACCEPT [8051838:8463891400] COMMIT # Completed on Thu Jan 15 14:24:38 2015 # Generated by iptables-save v1.3.5 on Thu Jan 15 14:24:38 2015 *nat :PREROUTING ACCEPT [679239:38887178] :POSTROUTING ACCEPT [352024:27387335] :OUTPUT ACCEPT [352024:27387335] -A POSTROUTING -s 172.16.36.0/255.255.255.0 -j SNAT --to-source 11.35.44.21 COMMIT # Completed on Thu Jan 15 14:24:38 2015 # Generated by iptables-save v1.3.5 on Thu Jan 15 14:24:38 2015 *mangle :PREROUTING ACCEPT [9111943:879590578] :INPUT ACCEPT [9111943:879590578] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [12979050:13644039152] :POSTROUTING ACCEPT [12979050:13644039152] COMMIT # Completed on Thu Jan 15 14:24:38 2015 # Generated by iptables-save v1.3.5 on Thu Jan 15 14:24:38 2015 *filter :INPUT ACCEPT [1463712:349432963] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [12979050:13644039152] -A INPUT -p udp -m udp --dport 20 -j ACCEPT -A INPUT -p udp -m udp --dport 21 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 10000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT COMMIT # Completed on Thu Jan 15 14:24:38 2015
    蘑菇8年前 (2015-01-15)回复
    • 文章里说的是,如果有 icmp-host-prohibited 的话,没有当然就不用做任何处理了。如果怀疑是防火墙的问题,关掉防火墙看看是否能连接,如果能连接,那就是防火墙的设置问题,如果还不能连接,就看看配置文件是否正确,进程是否已经启动,端口是否在监听状态。
      秋水逸冰8年前 (2015-01-15)回复
  13. 感谢发布脚本。 但其实go版本是支持udp的,需要加-u参数开启。 但是站主提供的版本并不支持该参数,需要替换go二进制文件。 https://github.com/shadowsocks/shadowsocks-go/issues/42
    ElvizLai8年前 (2015-01-14)回复
    • 没错,作者原版是不支持 udp 转发的,他人开发的需要编译安装,略麻烦。
      秋水逸冰8年前 (2015-01-14)回复
  14. 在搬瓦工最低的64M内存上用了会经常出现remove pid的情况,可能是内存不足造成的吧~
    Abc8年前 (2015-01-13)回复
    • 提示是这个:shadowsocks-go not running, remove PID file /var/run/shadowsocks.pid
      Abc8年前 (2015-01-13)回复
      • 没错,被 kill 了 换 libev 版试试,这个版本的节约内存
        秋水逸冰8年前 (2015-01-13)回复
        • 我还是用python吧,感觉比libev稳定,而且64M内存也没事
          abc8年前 (2015-01-13)回复
  15. 请问楼主,这个go脚本 在板瓦工那个4.99刀那个vps是否能够使用呢? 服务器管理那里的内存是有 112M的。谢谢!
    bios8年前 (2015-01-12)回复
    • 你试试看,这个版本的 Shadowsocks 应该是可以的,不过最好是不要低于 128MB 内存,否则连接数一多,占用内存多了进程会被 kill 掉
      秋水逸冰8年前 (2015-01-12)回复
      • 好的 谢谢!
        bios8年前 (2015-01-13)回复
      • 这个版本的GO很好用哦,板瓦工一般才占用17M ram (一个人使用) 速度 也不错 我是用128加密的,谢谢站长!!
        bios8年前 (2015-01-13)回复