Shadowsocks Python版一键安装脚本

技术 秋水逸冰 2611915浏览 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. Traceback (most recent call last): File "/usr/bin/ssserver", line 9, in load_entry_point('shadowsocks==2.6.8', 'console_scripts', 'ssserver')() File "/usr/lib/python2.7/site-packages/shadowsocks/server.py", line 60, in main tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) File "/usr/lib/python2.7/site-packages/shadowsocks/tcprelay.py", line 584, in __init__ server_socket.bind(sa) File "/usr/lib64/python2.7/socket.py", line 224, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 99] Cannot assign requested address 这个是python版本的报错,无法开启服务
    tig9年前(2015-04-20)回复
    • socket 发起 connect 请求的时候会随机分配一个端口,当进程发起过多的请求的时候,端口用完了就会报这个错误。 应该是 vps 的系统设置问题。 还有就是 CentOS 7 最新的 firewalld 可能会引起即便安装完了也无法连接的问题,要用经典的 iptables-services 来替代 firewalld。 yum -y install iptables-services systemctl mask firewalld systemctl enable iptables systemctl stop firewalld systemctl start iptables 然后再编辑 /etc/sysconfig/iptables 里的防火墙规则,对需要放行的端口放行,再重启 iptables 服务。
      秋水逸冰9年前(2015-04-20)回复
      • centos7用你的办法 安装好了,能用,但是很慢,我想问问,用多多用户的办法能不能快点. 是不是多加几个用户能快点 要不,这速度好慢
        JKHJK9年前(2015-04-22)回复
        • 脚本只是通过 pip 来自动安装 Python 版的 Shadowsocks 服务端,并做了最小化配置和启动脚本。至于速度快与慢,与脚本无关。与你本地网络到该 vps 间的速度有关。
          秋水逸冰9年前(2015-04-22)回复
  2. 求教,centos7 安装后无法开启服务。提示Cannot assign requested address 安装了多个版本的都不能使用。
    tig9年前(2015-04-20)回复
  3. UDP转发如何设置iptables?
    dynaguy9年前(2015-04-14)回复
    • 作者的 Github 页面 wiki 里有详细教程
      秋水逸冰9年前(2015-04-14)回复
  4. Chrome(SwitchyOmega)使用google搜索的时候,隔一段时间不使用再次使用时就会出现“正在等待www.google.com的响应”(等待10秒左右)之后能够顺畅使用,如此间隔性地间断。仅在OS X Chrome下会出现这种情况,Firefox和Safari正常使用,不知道是哪里出了问题,请教一下。
    nastydt9年前(2015-04-12)回复
  5. 有个很郁闷的问题想请教博主,为什么SS搭建好后看U2B视频经常会加载到一半就停止了,然后拉一下进度条才会再度加载,我换过端口和其他vps也是一样。 Python,libev,go三个版本都有这个问题,但是同一个时间段同一个机器用L2TP和PPTP的VPN都不会有此问题,视频会从头到尾一直加载完成。 这个问题困扰我好久了,不知别人有没遇过此问题,请问博主这是什么原因呢??
    VIO9年前(2015-04-10)回复
  6. 一直使用楼主的一键安装半年多了,很是方便,不知楼主平时是否遇到下面的情况,就是隔个半月20天服务器的SS就无故停止了,需要手动进服务器敲重启SS命令,我们几个人合租的服务器,有时莫名其妙的停止影响他人使用搞的很是尴尬,网上搜相关资料很少,自己写了几个脚本都失败了,原理就是定时检查SS服务,判断为停止时就重启SS服务,无奈自己基础太拙劣,可否贴个判断脚本出来,以造福我们这些伪程序猿。
    eason9年前(2015-04-04)回复
  7. iptables start setting... port 8989 has been set up. Traceback (most recent call last): File "ez_setup.py", line 12, in import tempfile File "/usr/lib/python2.7/tempfile.py", line 35, in from random import Random as _Random File "/usr/lib/python2.7/random.py", line 48, in from binascii import hexlify as _hexlify ImportError: No module named binascii ./shadowsocks.sh: line 181: easy_install: command not found 怎么办
    fazero9年前(2015-04-03)回复
  8. 你好,请问我在bandwagonhost 买的vps 上面有一键安装Shadowsocks,然后我自己按照网上的说法设置了多端口,现在想把每个端口限制不同的流量,应该怎么做? 谢谢!
    yayawilliam9年前(2015-04-03)回复
  9. stop和restart脚本并不能终止ss的运行,必须kill -9,请更新下脚本吧。多谢楼主的一键脚本
    kane9年前(2015-04-02)回复
  10. 请问加密方式如果想要改成rc4这种是直接修改吗?
    easeus9年前(2015-03-31)回复
  11. 想请教一下,我安装的CentOS6.5 64位的最小系统,连wget都没有,需不需要安装其它东西的。 Congratulations, shadowsocks install completed! Your Server IP: ********** Your Server Port: 8989 Your Password: 240096500 Your Local IP: 127.0.0.1 Your Local Port: 1080 Your Encryption Method: aes-256-cfb Welcome to visit:https://teddysun.com/342.html Enjoy it! [root@fwgman ~]# /etc/init.d/iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8989 Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination 已经照着兄弟的方便安装了,也显示安装成功了,但是手机端,电脑端只显示连接,但上不了网,不管国内外都上不了。这个一般问题会出在哪里
    fwgman9年前(2015-03-28)回复
    • 出现这提示信息,说明服务端已经安装好了,连接不上的话:1、检查你的客户端配置。2、ping 一下你的服务器 IP,是否 ping 的通。
      秋水逸冰9年前(2015-03-28)回复
  12. 请问端口不是8989的话,防火墙规则里8989是不是也要改成相应的端口?
    Bao9年前(2015-03-26)回复
  13. Linode的VPS,centos 7,折腾半天了,大家帮忙一下 server ip 也改过测试,仍不行 [root@ download]# firewall-cmd --state not running [root@ download]# /etc/init.d/shadowsocks start INFO: loading config from /etc/shadowsocks.json 2015-03-23 15:43:43 INFO loading libcrypto from libcrypto.so.10 started shadowsocks start success [root@ download]# /etc/init.d/shadowsocks status shadowsocks is not running [root@ download]# ssserver -c /etc/shadowsocks.json INFO: loading config from /etc/shadowsocks.json 2015-03-23 15:44:22 INFO loading libcrypto from libcrypto.so.10 2015-03-23 15:44:22 INFO starting server at 0.0.0.0:8989 Traceback (most recent call last): File "/usr/bin/ssserver", line 9, in load_entry_point('shadowsocks==2.6.8', 'console_scripts', 'ssserver')() File "/usr/lib/python2.7/site-packages/shadowsocks/server.py", line 60, in main tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False)) File "/usr/lib/python2.7/site-packages/shadowsocks/tcprelay.py", line 584, in __init__ server_socket.bind(sa) File "/usr/lib64/python2.7/socket.py", line 224, in meth return getattr(self._sock,name)(*args) socket.error: [Errno 98] Address already in use [root@ download]# ps -ef UID PID PPID C STIME TTY TIME CMD root 3175 2370 0 14:44 pts/0 00:00:00 /bin/python /usr/bin/ssserver -c /etc/shadowsocks.json vim /etc/shadowsocks.json { "server":"0.0.0.0", "server_port":8989, "local_address": "127.0.0.1", "local_port":1080, "password":"XXXXX", "timeout":300, "method":"aes-256-cfb", "fast_open":false }
    fwsjb9年前(2015-03-23)回复
    • 进程已经启动了,端口被占用,所以再次启动会失败。kill 掉原进程后,再重新启动。
      秋水逸冰9年前(2015-03-23)回复
      • kill-start-重装-重启VPS,反复尝试过仍然一样问题,go版也是不能正常启动,libev版非常顺利,感谢你
        fwsjb9年前(2015-03-24)回复
        • 不出意外,应该是你的配置文件有误造成的。
          秋水逸冰9年前(2015-03-24)回复
  14. VPS默认启动 就是支持 UDP的么? 客户端需要做什么设置么
    1239年前(2015-03-19)回复
    • Python 版目前还不支持 udp 转发,libev 版才支持。如果安装的是 libev 版,默认支持的。
      秋水逸冰9年前(2015-03-19)回复
  15. System.Net.Sockets.SocketException (0x80004005): 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 日志显示的这是什么意思
    Isaac9年前(2015-03-16)回复
    • 就是字面意思。无法连接,重试或检查与服务器端的通信是否正常。
      秋水逸冰9年前(2015-03-16)回复