Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2191565浏览 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. 为什么改为多用户的配置文件后,只有原来安装时选用的端口可以正常连接;而其他端口就算连上了也是用不了?这是为什么
    Shaw7年前(2017-09-01)回复
    • 多半是防火墙没开启新加的端口造成的。
      秋水逸冰7年前(2017-09-02)回复
  2. 求助我是新手,我安装的是Shadowsocks Pyhon 版本的但是打开配制文件的路径却是vi /etc/shadowsocks.json ,然后我打开后把单端口文件换成多端口文件,然后不起作用。,最后就是安装好后再安装gevnt还有作用吗?我不知道但是还是安装了,还要先换成python2.7.13才能安装。最最最后就是谢谢博主的分享,非常感谢!!!
    求助7年前(2017-08-31)回复
  3. 最近发现我的ss服务器都挂了,单并不是G。?F>W干的,ping工具查了一下,只有我这个地区的宽带运营商不通。怎么回事,被发现了吗。太郁闷了
    疑惑?7年前(2017-08-25)回复
  4. 多用户配置,我输入/etc/shadowsocks.json 不能配置呢。提示-bash:/etc/shadowsocks.json :permission denied 权限被拒绝。怎么弄了。菜鸟求指教!
    风轻轻翻7年前(2017-08-24)回复
    • 使用 vi 命令修改:vi /etc/shadowsocks.json
      秋水逸冰7年前(2017-09-02)回复
  5. 多用户配置添加端口和密码,怎么连接不上?
    小朱7年前(2017-08-23)回复
  6. 怎么不能搭建了? wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh -bash: wget: command not found
    小欢7年前(2017-08-22)回复
    • 系统缺少 wget 命令。先安装 wget 后重试。
      秋水逸冰7年前(2017-09-02)回复
  7. 秋水大人,请问我用ss配置了两个不同服务器,一个能上(搬瓦工vps),一个(deploynode的VPS)浏览器打开就是500 Internal Privoxy Error,检查服务器端和客户端设置都是匹配的,实在弄不懂,应如何下手排查原因,麻烦给支个招,非常感谢!
    小白菜7年前(2017-08-22)回复
  8. 请问对ss原作者被china查水表有何看法?今天刚刚重温他的github
    170621602337年前(2017-08-20)回复
  9. 搬瓦工KVM安装后无法修改配置文件,大家都这样吗?说是VZ才可以?
    mifia7年前(2017-08-15)回复
  10. --2017-08-14 20:35:35-- (try: 6) https://github-production-release-asset-2e65be.s3.amazonaws.com/7710647/acc2d8c4-699b-11e7-84e9-560817e96d4a?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170814%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170814T122444Z&X-Amz-Expires=300&X-Amz-Signature=d0d1d38707480e95c8b747fc8c21822c7473a111e7cd9fc4f78325d0a6f10cfb&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dlibsodium-1.0.13.tar.gz&response-content-type=application%2Foctet-stream Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.18.144|:443... connected. HTTP request sent, awaiting response... 403 Forbidden 2017-08-14 20:36:39 ERROR 403: Forbidden. [Error] Failed to download libsodium-1.0.13.tar.gz! 有个文件一直下载不了,怎么改成国内的地址?
    郁郁郁郁7年前(2017-08-14)回复
  11. option -d not recognized usage: ssserver [-h] [-s SERVER_ADDR] [-p SERVER_PORT] -k PASSWORD -m METHOD [-t TIMEOUT] [-c CONFIG] [--fast-open] [--workers WORKERS] [-v] [-q] optional arguments: -h, --help show this help message and exit -s SERVER_ADDR server address, default: 0.0.0.0 -p SERVER_PORT server port, default: 8388 -k PASSWORD password -m METHOD encryption method, default: aes-256-cfb -t TIMEOUT timeout in seconds, default: 300 -c CONFIG path to config file --fast-open use TCP_FASTOPEN, requires Linux 3.7+ --workers WORKERS number of workers, available on Unix/Linux -v, -vv verbose mode -q, -qq quiet mode, only show warnings/errors Online help: Starting Shadowsocks failed 这是什么原因呢
    puppyl7年前(2017-08-14)回复
  12. 你好,我想问一下,一键安装好之后,默认开启/支持UDP转发吗?
    leomon7年前(2017-08-13)回复
  13. [2017-08-10 08:07:51] Shadowsocks started [2017-08-10 08:07:56] System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 在 Shadowsocks.Util.Sockets.WrappedSocket.EndConnect(IAsyncResult asyncResult) 在 Shadowsocks.Proxy.DirectConnect.EndConnectDest(IAsyncResult asyncResult) 在 Shadowsocks.Controller.TCPHandler.ConnectCallback(IAsyncResult ar) [2017-08-10 08:07:57] System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 在 Shadowsocks.Util.Sockets.WrappedSocket.EndConnect(IAsyncResult asyncResult) 在 Shadowsocks.Proxy.DirectConnect.EndConnectDest(IAsyncResult asyncResult) 在 Shadowsocks.Controller.TCPHandler.ConnectCallback(IAsyncResult ar) [2017-08-10 08:07:57] System.Reflection.TargetInvocationException: 操作过程中出现异常,结果无效。 有关异常的详细信息,请查看 InnerException。 ---> System.Net.WebException: 基础连接已经关闭: 发送时发生错误。 ---> System.IO.IOException: 由于远程方已关闭传输流,身份验证失败。 在 System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) 在 System.Net.PooledStream.EndWrite(IAsyncResult asyncResult) 在 System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) --- 内部异常堆栈跟踪的结尾 --- 在 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在 System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) 在 System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result) --- 内部异常堆栈跟踪的结尾 --- 在 System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary() 在 Shadowsocks.Controller.UpdateChecker.http_DownloadStringCompleted(Object sender, DownloadStringCompletedEventArgs e) [2017-08-10 08:08:23] System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 在 Shadowsocks.Util.Sockets.WrappedSocket.EndConnect(IAsyncResult asyncResult) 在 Shadowsocks.Proxy.DirectConnect.EndConnectDest(IAsyncResult asyncResult) 在 Shadowsocks.Controller.TCPHandler.ConnectCallback(IAsyncResult ar) [2017-08-10 08:08:23] System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 在 Shadowsocks.Util.Sockets.WrappedSocket.EndConnect(IAsyncResult asyncResult) 在 Shadowsocks.Proxy.DirectConnect.EndConnectDest(IAsyncResult asyncResult) 在 Shadowsocks.Controller.TCPHandler.ConnectCallback(IAsyncResult ar) [2017-08-10 08:08:23] System.Net.Sockets.SocketException (0x80004005): 由于目标计算机积极拒绝,无法连接。 这个怎么解决啊 大大求助 每次都要重启ss
    7年前(2017-08-10)回复
    • 错误提示里已经有个身份验证失败,请检查密码是否正确,服务器端是否正常启动。
      秋水逸冰7年前(2017-08-13)回复
      • 我也遇到了此人的问题,而且我尝试了vultr、linode、bandwagon,甚至尝试了bandwagon自带的ss安装服务,都有这个问题,至今不知道啥问题,无论有没有bbr都不行,也没有安装kcptun。。。尤其是看yotube,就会断流,看日志就是积极拒绝,然后timeout……
        岁月神偷7年前(2017-08-21)回复
      • 接上面,各种系统debian、centos、ubuntu都试过,且各个版本都试过。
        岁月神偷7年前(2017-08-21)回复
  14. [root]# /etc/init.d/shadowsocks restart Shadowsocks is stopped INFO: loading config from /etc/shadowsocks.json 2017-08-06 21:47:18 INFO loading libcrypto from libcrypto.so.10 2017-08-06 21:47:18 INFO loading libsodium from libsodium.so.18 started Starting Shadowsocks success [root]# /etc/init.d/shadowsocks status Shadowsocks is stopped 开启成功但是服务没有启动是怎么回事啊
    CBeta7年前(2017-08-06)回复
  15. 你好,安装了一键脚本后,网络可以连接使用,用过8989和9001端口。但是同一个服务器网站打不开了,提示 Error 502 Bad gateway 。昨天google了好久,没有找到,所以来麻烦你。 服务器linode,centos 7 64位,安装的是lnmp1.4,php 7.1.5。去年安装的一键脚本网络可以正常连接使用,网站也也可以正常打开。谢谢!
    df7年前(2017-08-05)回复
    • 通常我是不建议把网站和 SS 混合安装在同一台服务器的。 这种情况,首先肯定要检查 nginx 或 Apache 是否已经启动,端口是否已经监听,防火墙 80 或 443 端口是否已经打开…… 安装 SS 默认会修改防火墙设置。所以十有八九还是跟防火墙(firewalld)有关。 有个命令可以让你查看 CentOS 7 下防火墙端口和服务开启情况: firewall-cmd --list-all
      秋水逸冰7年前(2017-08-13)回复
      • 非常感谢!已经解决了,是脚本在安装时覆盖了原来的防火墙设置规则,导致网站打不开,现在新添了原来的防火墙规则,网站就可以打开了。建议脚本后续能否追加防火墙规则,不是覆盖。
        df7年前(2017-08-15)回复