Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2399246浏览 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. 这个方法好像被墙了
    hiugiu8年前(2016-05-11)回复
  2. Bad response. The server or forwarder response doesn't look like HTTP. 提示这个错误
    阿宅8年前(2016-04-24)回复
  3. 求解cenos 6搭成功后连接不到,debian7倒是连接上去了,路由记录全是Transport endpoint is not connected
    L8年前(2016-04-22)回复
  4. 请问这几个版本的shadowsocks都支持udp delay吗?
    骑士8年前(2016-04-21)回复
    • 在trouble shooting里找到了 = = 我自删
      骑士8年前(2016-04-21)回复
  5. 可以留联系方式么?求助
    Denta8年前(2016-04-21)回复
  6. 重新安装系统,重装Shasowsocks后查看状态,总是 not running,服务器IP是设置为VPS IP,也想不出其他哪里不对。 ping 得通,ping值200以内。
    chen8年前(2016-04-20)回复
    • 既然是 not running,那肯定就是哪里不对。 要么是配置文件写错了,要么是没有正确安装。 有没有尝试一下换一个版本的试试?
      秋水逸冰8年前(2016-04-20)回复
  7. 求教为什么突然所有的日本ss都不能用了(可以ping),美国的没问题
    Denta8年前(2016-04-19)回复
    • 那目测应该是线路问题?中国的网络状况一直都是很神秘的。哈哈。
      秋水逸冰8年前(2016-04-19)回复
      • 安装了神秘的锐速后就这样了,大半夜好了,不信邪又安了一次,又挂了,别人都可以,觉得自己就是个逗逼
        Denta8年前(2016-04-19)回复
        • 安装锐速需要系统内核支持才可以。
          秋水逸冰8年前(2016-04-20)回复
          • 现在重装系统也不行了,只要是日本的ss就用不了,只好用美国的了
            Denta8年前(2016-04-20)回复
  8. 这是我用输入了 wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh chmod +x shadowsocks.sh ./shadowsocks.sh 2>&1 | tee shadowsocks.log 后的图 http://imgur.com/ww7mawD 我要按回车键才能进入输入端口和密码的界面 这样正常吗? 还有请问怎么设置多用户多端口啊? 安装完一键安装脚本后设置好了一个端口然后我想设置多用户多端口的时候输入 /etc/shadowsocks.json 然后就显示了这个 -bash: /etc/shadowsocks.json: No such file or directory 要怎么才能够设置多用户多端口?
    177218年前(2016-04-19)回复
    • 从截图上来看,你已经重复下载了。所以后缀名有个.1 修改配置文件来设置多端口,具体怎么改,文章里和评论里都说了很多次了。
      秋水逸冰8年前(2016-04-19)回复
      • 谢谢,已经设置好多端口了 我还想问一下这个能在你的这个一键安装脚本使用吗? https://shadowsocks.be/7.html
        177218年前(2016-04-20)回复
        • 这个多端口的设置是手动操作的。 一键脚本并没有对这个多 IP 和多端口的设置。
          秋水逸冰8年前(2016-04-20)回复
  9. Apr 19 14:46:30 sh_download: 下载失败:【/tmp/videos-32.png】 URL:【http://www.google.com/textinputassistant/tia.png】 Apr 19 14:46:33 SS: SS started Apr 19 14:46:33 SS: 启动后若发现一些网站打不开,估计是DNS被污染了。解决DNS被污染方法: Apr 19 14:46:33 SS: ①路由SS设置选择其他DNS 服务; Apr 19 14:46:33 SS: ②电脑设置DNS自动获取路由的ip。电脑运行cmd输入【ipconfig /flushdns】,清理浏览器缓存。 Apr 19 14:46:33 SS: 脚本完成 Apr 19 14:46:33 SS: shadowsocks 进程守护启动 Apr 19 14:47:40 sh_download: 下载失败:【/tmp/videos-32.png】 URL:【http://www.google.com/textinputassistant/tia.png】 Apr 19 14:47:40 sh_download: 重新下载:【/tmp/videos-32.png】 URL:【http://www.google.com/textinputassistant/tia.png】 Apr 19 14:47:56 sh_download: 下载失败:【/tmp/videos-32.png】 URL:【http://www.google.com/textinputassistant/tia.png】 所有步骤做完 最后路由器里开启SS 还是打不开GOOGLE 而且一些原来能上的国外网站像EBAY还都上不去 清理缓存也不行 是DNS被墙了 还是我的脚本设置不对?
    wy27058年前(2016-04-19)回复
    • 最好是在路由器里设置自定义 DNS 服务器为可信的,比如 8.8.8.8 和 8.8.4.4
      秋水逸冰8年前(2016-04-19)回复
  10. 运行./shadowsocks.sh 2>&1 | tee shadowsocks.log命令 最后总提示easy_install command not found.please check it and try again. 总也安装不成功 请教是什么原因呢?
    wy27058年前(2016-04-18)回复
    • 正常情况下 yum 安装了 python-setuptools 后就会有 easy_install 这个命令。 请检查你的系统的源(repo)是否配置正确。 也就是说 yum install -y python-setuptools 是否成功
      秋水逸冰8年前(2016-04-18)回复
  11. centos 6.5 上的错误,貌似是 pip 8.1.1的问题,自己换成 8.1.0 就好了……
    archey8年前(2016-04-11)回复
    • 确实是。Python 版本过低导致的兼容性问题
      秋水逸冰8年前(2016-04-12)回复
  12. 好像是 pip 不兼容的问题吧,以前用秋水大神的脚本都是好的 Installed /usr/lib/python2.6/site-packages/setuptools-18.7-py2.6.egg Processing dependencies for setuptools==18.7 Finished processing dependencies for setuptools==18.7 Searching for pip Reading https://pypi.python.org/simple/pip/ Best match: pip 8.1.1 Downloading https://pypi.python.org/packages/source/p/pip/pip-8.1.1.tar.gz#md5=6b86f11841e89c8241d689956ba99ed7 Processing pip-8.1.1.tar.gz Writing /tmp/easy_install-sbSMEB/pip-8.1.1/setup.cfg Running pip-8.1.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-sbSMEB/pip-8.1.1/egg-dist-tmp-wC2f_g warning: no previously-included files found matching '.coveragerc' warning: no previously-included files found matching '.mailmap' warning: no previously-included files found matching '.travis.yml' warning: no previously-included files found matching '.landscape.yml' warning: no previously-included files found matching 'pip/_vendor/Makefile' warning: no previously-included files found matching 'tox.ini' warning: no previously-included files found matching 'dev-requirements.txt' warning: no previously-included files found matching 'appveyor.yml' no previously-included directories found matching '.github' no previously-included directories found matching '.travis' no previously-included directories found matching 'docs/_build' no previously-included directories found matching 'contrib' no previously-included directories found matching 'tasks' no previously-included directories found matching 'tests' creating /usr/lib/python2.6/site-packages/pip-8.1.1-py2.6.egg Extracting pip-8.1.1-py2.6.egg to /usr/lib/python2.6/site-packages Adding pip 8.1.1 to easy-install.pth file Installing pip script to /usr/bin Installing pip2.6 script to /usr/bin Installing pip2 script to /usr/bin Installed /usr/lib/python2.6/site-packages/pip-8.1.1-py2.6.egg Processing dependencies for pip Finished processing dependencies for pip Traceback (most recent call last): File "/usr/bin/pip", line 9, in load_entry_point('pip==8.1.1', 'console_scripts', 'pip')() File "/usr/lib/python2.6/site-packages/pip-8.1.1-py2.6.egg/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib64/python2.6/locale.py", line 513, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting Traceback (most recent call last): File "/usr/bin/pip", line 9, in load_entry_point('pip==8.1.1', 'console_scripts', 'pip')() File "/usr/lib/python2.6/site-packages/pip-8.1.1-py2.6.egg/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib64/python2.6/locale.py", line 513, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting Traceback (most recent call last): File "/usr/bin/pip", line 9, in load_entry_point('pip==8.1.1', 'console_scripts', 'pip')() File "/usr/lib/python2.6/site-packages/pip-8.1.1-py2.6.egg/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib64/python2.6/locale.py", line 513, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting Traceback (most recent call last): File "/usr/bin/pip", line 9, in load_entry_point('pip==8.1.1', 'console_scripts', 'pip')() File "/usr/lib/python2.6/site-packages/pip-8.1.1-py2.6.egg/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/usr/lib64/python2.6/locale.py", line 513, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting
    archey8年前(2016-04-11)回复
  13. 为什么所有一键都提示服务器无法释放。地址有问题吗?
    yl8年前(2016-04-11)回复
  14. 安装时卡在下载不了https://pypi.python.org/packages/source/s/setuptools/setuptools-18.7.zip这个文件,关了IPtables服务然后手动传上去才安装成功。
    1570038年前(2016-04-09)回复
  15. 安装提示成功,但是无法连接,扫描端口发现8989端口并没有开发?如何解决?谢谢!
    yang8年前(2016-04-02)回复