Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2392910浏览 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. 安装启动后,显示成功,但是看状态,是stop的。看了下日志,有报错。大大,求助 2017-07-28 08:44:28 INFO starting server at 13.113.221.40:8388 Traceback (most recent call last): File "/usr/local/bin/ssserver", line 9, in load_entry_point('shadowsocks==3.0.0', 'console_scripts', 'ssserver')() File "/usr/local/lib/python2.7/site-packages/shadowsocks-3.0.0-py2.7.egg/shado wsocks/server.py", line 74, in main tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) File "/usr/local/lib/python2.7/site-packages/shadowsocks-3.0.0-py2.7.egg/shado wsocks/tcprelay.py", line 754, in __init__ server_socket.bind(sa) File "/usr/lib64/python2.7/socket.py", line 228, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 99] Cannot assign requested address 2017-07-28 08:46:18 INFO starting server at 13.113.221.40:8388 Traceback (most recent call last): File "/usr/local/bin/ssserver", line 9, in load_entry_point('shadowsocks==3.0.0', 'console_scripts', 'ssserver')() File "/usr/local/lib/python2.7/site-packages/shadowsocks-3.0.0-py2.7.egg/shado wsocks/server.py", line 74, in main tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) File "/usr/local/lib/python2.7/site-packages/shadowsocks-3.0.0-py2.7.egg/shado wsocks/tcprelay.py", line 754, in __init__ server_socket.bind(sa) File "/usr/lib64/python2.7/socket.py", line 228, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 99] Cannot assign requested address
    云吞7年前(2017-07-28)回复
    • 8388 端口已被占用,请修改配置文件换一个端口再试。
      秋水逸冰7年前(2017-07-28)回复
      • 秋大,换了几个端口,仍旧报这个地址分配错误。 事先已验证,该端口未被占用 Traceback (most recent call last): File "/usr/local/bin/ssserver", line 9, in load_entry_point('shadowsocks==3.0.0', 'console_scripts', 'ssserver')() File "/usr/local/lib/python2.7/site-packages/shadowsocks-3.0.0-py2.7.egg/shadowsocks/server.py", line 74, in main tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) File "/usr/local/lib/python2.7/site-packages/shadowsocks-3.0.0-py2.7.egg/shadowsocks/tcprelay.py", line 754, in __init__ server_socket.bind(sa) File "/usr/lib64/python2.7/socket.py", line 228, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 99] Cannot assign requested address
        云吞7年前(2017-07-28)回复
  2. SS平民化,利用您的教程,已经帮助好几个不懂计算机的朋友成功安装SS实现科学上网!
    eleforest7年前(2017-07-28)回复
  3. 安装后并启动 /etc/init.d/shadowsocks start 成功 但是 netstat -lntp 显示服务端口没有被监听。 /var/log/shadowsocks.log 和 /usr/local/shadowsocks_install.log 没有任何错误。
    DBK7年前(2017-07-27)回复
  4. 秋大你好,麻烦请教下,我更新了7.22版本后,小米路由 Mini 刷的 PandoraBox 下的 Shadowsocks 用不了可能会是什么原因?用 Windows 版 Shadowsocks 一切正常。加密方式选 aes-256-cfb,试过其他加密方式,状况一样。PandoraBox 下的 Shadowsocks 版本为 libev 2.14。
    RiverMud7年前(2017-07-26)回复
    • Windows 版能连接,就排除了服务器的因素。 建议在路由器插件上找找原因。
      秋水逸冰7年前(2017-07-26)回复
  5. 刚刚安装,提示如下,什么情况? [root@li821-155 ~]# wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh -bash: wget: command not found [root@li821-155 ~]# chmod +x shadowsocks.sh chmod: cannot access `shadowsocks.sh': No such file or directory [root@li821-155 ~]# ./shadowsocks.sh 2>&1 | tee shadowsocks.log -bash: ./shadowsocks.sh: No such file or directory [root@li821-155 ~]#
    Conway7年前(2017-07-26)回复
    • 这种情况,根据系统不同执行以下命令先安装 wget yum install -y wget 适用于 CentOS apt-get -y install wget 适用于 Debian 和 Ubuntu
      秋水逸冰7年前(2017-07-26)回复
  6. 默认安装的,端口8989 监听正常,相关启动日志也没有报错, 但在其他服务器 telnet 8989 无法通 , 卸载安装也不行.
    fuquanjun7年前(2017-07-26)回复
  7. 第一,ios怎么链接? 第二,配置多用户时出现 " Permission denied“是什么情况?
    170621602337年前(2017-07-25)回复
  8. INFO: loading config from /etc/shadowsocks.json stopped Stopping Shadowsocks success 这个是什么意思,失败了?
    a9187年前(2017-07-25)回复
  9. 博主,我想问下,为什么我用您的安装包安装了,不可以呢,我看了一下netstat -a 没有监听我设置的端口!可以正常开启,但是在客户端日志 显示 :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)
    TEST7年前(2017-07-25)回复
  10. 秋大这个版本SS支持UDP转发吗? 支持的话默认是开启的还是关闭的
    Re7年前(2017-07-23)回复
  11. 秋大,500错误……无解
    南方南7年前(2017-07-22)回复
  12. error setuptools not found when installing shadowsocks? how to configure or update it? when i type apt-get install python-setuptools its says command not found
    michele7年前(2017-07-22)回复
    • please download latest script and try again. It's should be OK.
      秋水逸冰7年前(2017-07-22)回复
  13. /bin/mkdir -p '/usr/lib/pkgconfig' /usr/bin/install -c -m 644 libsodium.pc '/usr/lib/pkgconfig' make[2]: Leaving directory '/root/libsodium-1.0.13' make[1]: Leaving directory '/root/libsodium-1.0.13' Traceback (most recent call last): File "setup.py", line 2, in from setuptools import setup ImportError: No module named setuptools [Error] Shadowsocks install failed! please visit https://teddysun.com/342.html and contact. 秋大 安装错误···
    wpaygp7年前(2017-07-22)回复
    • 系统Debian 8
      wpaygp7年前(2017-07-22)回复
      • google 已解决 apt-get install python-setuptools
        wpaygp7年前(2017-07-22)回复
        • command not found when writing it to my console
          michele7年前(2017-07-22)回复
        • 谢谢反馈,脚本已经更新,是漏写了这么一个依赖。
          秋水逸冰7年前(2017-07-22)回复
  14. aes-256-gcm这个加密怎么用啊
    小磊7年前(2017-07-21)回复
  15. 您好,最近几个月一直运行sspython一直没问题,但是最近出现错误 首先在看视频是突然无法看,ss安卓端测试连接提示connection closed by peer 之后再次测试提示 unable to resolve host www.google.com no address associated with hostname 之后安卓端无法使用,并且PC端亦无法使用 但是在服务器里重启ss又可以使用,不过如果再次使用的话过一会还是会重复以上错误 但同一服务器下的VPN却没有任何事情并且也可以使用(使用您的L2TP/IPSec一键安装脚本) 请问如何解决?谢谢
    SakuraiTou7年前(2017-07-13)回复
    • 我也出现了这个问题,看了看文档和去网上逛了一圈后,我发现应该是数据包包加密的问题,因为是直接使用的aes-256-cfb模式加密,那么现在很有可能出现的一个问题就是:使用该加密模式会导致SS服务器被GFW检测到,建议换成aes-256-gcm加密以观后效,防止SS服务器被GFW检测到
      kevi01287年前(2017-07-20)回复
      • 我个人怀疑我的服务器最近被GFW盯上了,换了好几种SS的端现在都是奇慢无比,VPN却非常快,哎,我感觉墙快高成棺材了
        SakuraiTou7年前(2017-08-03)回复