Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2399394浏览 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. centos 7.2 安装完后想卸载 输入./shadowsocks.sh uninstall后提示-bash: ./shadowsocks.sh: 没有那个文件或目录. 怎么解决?现在我卸载也卸载不了了
    chenze8年前(2016-04-02)回复
    • 请在这个脚本所在的目录下执行这个命令
      秋水逸冰8年前(2016-04-02)回复
      • 谢谢
        chenze8年前(2016-04-02)回复
  2. 博主您好,现在您觉得哪个版本的服务端最好用呢?
    None008年前(2016-04-02)回复
  3. 博主~~我用一台256M的vps配置ss~~~然后打开google出现500 Internal Privoxy Error~~ 基本上会是什么问题呢?
    哈哈哈hey8年前(2016-04-02)回复
  4. 你好,我按照教程安装完提示是这样的,请问如何解决? Hit http://security.debian.org squeeze/updates Release.gpg Ign http://security.debian.org/ squeeze/updates/contrib Translation-en Ign http://security.debian.org/ squeeze/updates/main Translation-en Ign http://security.debian.org/ squeeze/updates/non-free Translation-en Hit http://security.debian.org squeeze/updates Release Hit http://security.debian.org squeeze/updates/main i386 Packages Hit http://security.debian.org squeeze/updates/contrib i386 Packages Hit http://security.debian.org squeeze/updates/non-free i386 Packages Ign http://http.debian.net squeeze Release.gpg Ign http://http.debian.net/debian/ squeeze/contrib Translation-en Ign http://http.debian.net/debian/ squeeze/main Translation-en Ign http://http.debian.net/debian/ squeeze/non-free Translation-en Ign http://http.debian.net squeeze-lts Release.gpg Ign http://http.debian.net/debian/ squeeze-lts/contrib Translation-en Ign http://http.debian.net/debian/ squeeze-lts/main Translation-en Ign http://http.debian.net/debian/ squeeze-lts/non-free Translation-en Ign http://http.debian.net squeeze Release Ign http://http.debian.net squeeze-lts Release Ign http://http.debian.net squeeze/main i386 Packages Ign http://http.debian.net squeeze/contrib i386 Packages Ign http://http.debian.net squeeze/non-free i386 Packages Ign http://http.debian.net squeeze/main i386 Packages Ign http://http.debian.net squeeze/contrib i386 Packages Ign http://http.debian.net squeeze-lts/main i386 Packages Ign http://http.debian.net squeeze-lts/contrib i386 Packages Ign http://http.debian.net squeeze-lts/non-free i386 Packages Ign http://http.debian.net squeeze/non-free i386 Packages Ign http://http.debian.net squeeze-lts/main i386 Packages Ign http://http.debian.net squeeze-lts/contrib i386 Packages Ign http://http.debian.net squeeze-lts/non-free i386 Packages Err http://http.debian.net squeeze/main i386 Packages 404 Not Found [IP: 128.31.0.66 80] Err http://http.debian.net squeeze/contrib i386 Packages 404 Not Found [IP: 128.31.0.66 80] Err http://http.debian.net squeeze/non-free i386 Packages 404 Not Found [IP: 128.31.0.66 80] Err http://http.debian.net squeeze-lts/main i386 Packages 404 Not Found [IP: 128.31.0.66 80] Err http://http.debian.net squeeze-lts/contrib i386 Packages 404 Not Found [IP: 128.31.0.66 80] Err http://http.debian.net squeeze-lts/non-free i386 Packages 404 Not Found [IP: 128.31.0.66 80] W: Failed to fetch http://http.debian.net/debian/dists/squeeze/main/binary-i386/Packages.gz 404 Not Found [IP: 128.31.0.66 80] W: Failed to fetch http://http.debian.net/debian/dists/squeeze/contrib/binary-i386/Packages.gz 404 Not Found [IP: 128.31.0.66 80] W: Failed to fetch http://http.debian.net/debian/dists/squeeze/non-free/binary-i386/Packages.gz 404 Not Found [IP: 128.31.0.66 80] W: Failed to fetch http://http.debian.net/debian/dists/squeeze-lts/main/binary-i386/Packages.gz 404 Not Found [IP: 128.31.0.66 80] W: Failed to fetch http://http.debian.net/debian/dists/squeeze-lts/contrib/binary-i386/Packages.gz 404 Not Found [IP: 128.31.0.66 80] W: Failed to fetch http://http.debian.net/debian/dists/squeeze-lts/non-free/binary-i386/Packages.gz 404 Not Found [IP: 128.31.0.66 80] E: Some index files failed to download, they have been ignored, or old ones used instead. Reading package lists... Building dependency tree... Reading state information... E: Package 'python-dev' has no installation candidate E: Unable to locate package python-pip E: Package 'gcc' has no installation candidate E: Unable to locate package swig E: Package 'automake' has no installation candidate Getting Public IP address, Please wait a moment... ./shadowsocks.sh: line 133: curl: command not found ./shadowsocks.sh: line 135: curl: command not found Your main public IP is --2016-04-01 03:21:10-- https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-debian Resolving raw.githubusercontent.com... 199.27.79.133 Connecting to raw.githubusercontent.com|199.27.79.133|:443... connected. WARNING: certificate common name `www.github.com' doesn't match requested host name `raw.githubusercontent.com'. HTTP request sent, awaiting response... 200 OK Length: 1525 (1.5K) [text/plain] Saving to: `/etc/init.d/shadowsocks' 0K . 100% 536M=0s 2016-04-01 03:21:13 (536 MB/s) - `/etc/init.d/shadowsocks' saved [1525/1525] pip install failed! Please visit https://teddysun.com/342.html and contact.
    sunyuanxi8年前(2016-04-01)回复
    • 你这系统的模版有问题啊。 居然连 curl 都没有。而且 apt-get update 都不能正常运行。。。
      秋水逸冰8年前(2016-04-01)回复
  5. 添加完多人设置后外网连接一直连不上添加的号都不想主号没有问题
    不会玩8年前(2016-03-31)回复
  6. 我的版本是CentOS 6,7用的老大的一键python版root完都很好就是在设置单用户多用户显示没有权限
    不会玩8年前(2016-03-31)回复
  7. 按照老大的教程安装了ss后想添加多用户可是显示没有权限可以帮助解决下吗?
    不会玩8年前(2016-03-31)回复
    • 你需要用编辑器要编辑配置文件。 比如 vi /etc/shadowsocks.json 或者用 nano 来编辑,比如 nano /etc/shadowsocks.json 如果提示没有 nano,那么 yum install -y nano
      秋水逸冰8年前(2016-03-31)回复
      • 谢谢老大已经解决了
        不会玩8年前(2016-03-31)回复
  8. 您好 我在用centos 6.5上安装失败了 能帮忙看下吗 错误信息是: 2016-03-30 22:56:36 (236 MB/s) - `/etc/init.d/shadowsocks' saved [1434/1434] iptables start setting... iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] iptables: Setting chains to policy ACCEPT: nat filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] 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/lib/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/lib/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/lib/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/lib/python2.6/locale.py", line 513, in setlocale return _setlocale(category, locale) locale.Error: unsupported locale setting Shadowsocks install failed! Please visit https://teddysun.com/342.html and contact.
    andyzhang8年前(2016-03-31)回复
    • 应该是 pip 命令安装失败导致的。 试试看 yum install -y python-pip 后行不行
      秋水逸冰8年前(2016-03-31)回复
      • 好的 谢谢~
        andyzhang8年前(2016-04-01)回复
  9. 安装老大的教程成功的安装好了,我身边都是苹果的比较多,我想给他们也用,不知道你愿意做一个未批嗯的一键端吗?十分感谢
    miao8年前(2016-03-27)回复
    • 在本站搜索关键字 pptp 和 l2tp,你会看到有相关的一键脚本。注意:只能适用于CentOS 6,两者最好是只安装一个,推荐 L2TP。安装 L2TP 的时候,最后安装完记得重启 VPS
      秋水逸冰8年前(2016-03-28)回复
  10. 大神你好,如果想支持ipv6应该怎么设置?
    fy8年前(2016-03-26)回复
    • 默认就是支持 ipv6 只要你本地能 ipv6 上网,那应该就能使用
      秋水逸冰8年前(2016-04-01)回复
  11. 秋大,谢谢你的一键python脚本! 我想请问一下,我用了你这个脚本配置了ss服务器,如果想支持udp的话还需要其他什么操作吗? 我需要在iptable中配置udp吗?
    拒绝回帖8年前(2016-03-24)回复
    • 本身就是支持 udp 的,无需特别操作。
      秋水逸冰8年前(2016-03-24)回复
  12. 秋水大大,我照着每一步都做了。但是在SS客户端上无法连接,查看日至发现一直是timed out....请问是哪一步出问题了呢?我是Conoha.jp的VPS,系统是CentOS 7.2
    ZHWKnight8年前(2016-03-20)回复
    • 既然知道系统是 CentOS 7 那应该就是 firewalld 的问题了。 这个系统默认开启 firewalld,相应的端口需要放行后才行。如何在 firewalld 中开启端口,请自行搜索相关教程。
      秋水逸冰8年前(2016-03-20)回复
      • 谢谢大大,我已经成功使用,顺便还学习了新版防火墙的使用方法。哈哈哈。
        ZHWKnight8年前(2016-04-02)回复
  13. 有什么可以限制每个连接IP速度的办法么?
    地狱傀儡师8年前(2016-03-19)回复
    • 可以新建 iptables 的规则来进行限制,具体如何限制,请自行搜索相关 iptables 的教程来实验一下。
      秋水逸冰8年前(2016-03-20)回复
      • iptables -A FORWARD -m limit -s SS服务器IP --limit 40/s -j ACCEPT iptables -A FORWARD -s SS服务器IP -j DROP 这种规则貌似无效啊,找了好多,都是这种规则。
        地狱傀儡师8年前(2016-03-22)回复
        • 你需要将 iptables 的使用教程好好的研读一遍后再写(逃
          Teddysun8年前(2016-03-23)回复
          • 这...求篇能解决这个问题的具体教程网址吧,然后我去琢磨...
            地狱傀儡师8年前(2016-03-24)回复
            • 我记得本站右侧的友情链接:微宇宙,那里就有相关 iptables 的教程。 你可以去那看看(逃
              秋水逸冰8年前(2016-03-24)回复
  14. 你好 我是使用阿里云 想從台灣翻進中國 我用了你的一鍵安裝版之後 檢查status 顯示running 但我用mac or windows 連上去都無法改變IP
    Errol8年前(2016-03-18)回复
  15. INFO: loading config from /etc/shadowsocks.json ERROR: found an error in config.json: No JSON object could be decoded shadowsocks start failed 问下 这是什么问题 安装的时候没有报错啊。。
    qingyang8年前(2016-03-16)回复
    • 这是你改错了配置文件造成的。 肯定是多了个逗号什么的。
      秋水逸冰8年前(2016-03-16)回复