镜像域名: doub.bid 提供给无翻墙能力的人使用,请大家互相通知~~ 有能力的建议访问 doub,io!
投稿文章 | 广告投放 | 交流群:Telegram

ShadowsocksR 单用户版服务端安装教程

Shadowsocks Toyo 44评论
文章目录
[显示]
本文最后更新于 2017年4月11日 13:51 可能会因为没有更新而失效。如已失效或需要修正,请留言!

说明:

Shadowsocks原作者被喝茶 放弃此项目,由ShadowsocksR作者接手,所以以后只能转成SSR的服务端和客户端了。

此教程为单用户版,适合个人用户。如果你是站长,请查看多用户版教程:多用户版教程

一键脚本:『原创』Debian/Ubuntu ShadowsocksR一键单端口/多端口管理脚本(集成锐速)

本教程转自github,由ShadowsocksR作者编写!


不会链接VPS的,你需要看着个:Linux SSH链接工具 Putty 新手详细使用教程

更多的Shadowsocks安装教程/一键脚本请看这里:Shadowsocks指导篇

注意:ShadowsocksR服务端 auth_aes128_* 及以后的所有协议不支持兼容原版,混淆依然支持,影响解释看着个

基本库安装

以下命令均以root用户执行,或sudo方式执行

centos:

yum update
yum install git -y

ubuntu/debian:

apt-get update
apt-get install git -y

如果要使用Chacha20 chacha20-ietf 等加密方式,请安装 libsodium

如果曾经安装过旧版本,亦可重复用以上步骤更新到最新版,仅1.0.4或以上版本支持chacha20-ietf

获取源代码

git clone -b manyuser https://github.com/shadowsocksr/shadowsocksr.git

执行完毕后此目录会新建一个shadowsocksr目录,其中根目录的是多用户版(即数据库版,个人用户请忽略这个),

子目录中的是单用户版(即shadowsocksr/shadowsocks)。

以下是相对路径,比如你在 /root 目录下执行上面的代码,那你的根目录就是 /root/shadowsocksr ,子目录就是 /root/shadowsocksr/shadowssocks

根目录即 shadowsocksr

子目录即 shadowsocksr/shadowsocks

服务端配置

进入根目录:

cd shadowsocksr

初始化配置:

bash initcfg.sh

通过配置文件运行

打开并修改配置文件,根据下下面的各选项说明来修改各个参数。

vi user-config.json

文件内容大概如下:

注意:新版ShadowsocksR服务端的 默认加密方式从 aes-256-cfb 改为 aes-128-ctr 了,大家注意一下。
{
 "server": "0.0.0.0",
 "server_ipv6": "::",
 "server_port": 8388,
 "local_address": "127.0.0.1",
 "local_port": 1080,

 "password": "m",
 "timeout": 120,
 "udp_timeout": 60,
 "method": "aes-128-ctr",
 "protocol": "auth_aes128_md5",
 "protocol_param": "",
 "obfs": "tls1.2_ticket_auth_compatible",
 "obfs_param": "",
 "speed_limit_per_con": 0,
 "speed_limit_per_user": 0,

 "dns_ipv6": false,
 "connect_verbose_info": 0,
 "redirect": "",
 "fast_open": false
}
注意:ShadowsocksR服务端 auth_aes128_* 及以后的所有协议不支持兼容原版(compatible),混淆依然支持,影响解释看着个

进入子目录:

假设ShadowsocksR安装在 /root 目录,那么这时候我们是在 /root/shadowsocksr/shadowsocks 文件夹了。

cd shadowsocks

前台运行(调试专用,断开SSH后就自动关闭):

python server.py

赋予脚本执行权限

chmod +x *.sh

启动服务:

./logrun.sh

停止服务:

./stop.sh

查看日志:

./tail.sh

开机启动

一些人可能需要开机启动,我就一起写上吧。

首先设置开机启动文件的权限,并打开该文件。

Cent OS 系统:

chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local

Ubuntu/Debian 系统:

chmod +x /etc/rc.local
vi /etc/rc.local

然后在 exit 0 这一句代码(只有ubuntu/debian有这个 exit 0)的前面加上 下面这句代码(如果你的Shadowsocks文件夹不在root目录下,请自行修改路径)

/bin/bash /root/shadowsocksr/shadowsocks/logrun.sh

然后按 ESC键 退出vi编辑模式,然后输入 :wq 保存并退出该文件,就完成了。

端口限速和设置设备数

请查看这个文章:ShadowsocksR服务端 限制设备连接数 和 限制端口速度 的方法

多端口配置

如果不会,推荐我写的一键脚本:『原创』Debian/Ubuntu ShadowsocksR一键单端口/多端口管理脚本(集成锐速)

如果要多个用户一起使用的话,请写入以下配置:

注意:JSON的格式是最后一个参数不加 逗号"," (不包括{}),所以请注意格式。
{
    "server": "0.0.0.0",
    "server_ipv6": "::",
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "port_password":{
        "8888":"password1",
        "9999":"password2",
        "2333":"password3"
    },
    "timeout": 120,
    "udp_timeout": 60,
    "method": "aes-128-ctr",
    "protocol": "auth_aes128_md5",
    "protocol_param": "",
    "obfs": "tls1.2_ticket_auth_compatible",
    "obfs_param": "",
    "speed_limit_per_con": 0,
    "speed_limit_per_user": 0,
    "dns_ipv6": false,
    "connect_verbose_info": 0,
    "redirect": "",
    "fast_open": false
}

主要就是修改这部分,按照格式修改端口和密码:

    "port_password":{
        "8888":"password1",
        "9999":"password2",
        "2333":"password3"
    },

如果要为每个端口配置不同的混淆协议,请写入以下配置:

{
    "server":"0.0.0.0",
    "server_ipv6":"::",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
        "8388":{"protocol":"auth_simple", "password":"abcde", "obfs":"http_simple", "obfs_param":""},
        "8389":{"protocol":"origin", "password":"abcde"}
    },
    "timeout":300,
    "method":"aes-128-ctr",
    "protocol": "auth_aes128_md5",
    "protocol_param": "",
    "obfs": "tls1.2_ticket_auth_compatible",
    "obfs_param": "",
    "speed_limit_per_con": 0,
    "speed_limit_per_user": 0,
    "redirect": "",
    "dns_ipv6": false,
    "fast_open": false,
    "workers": 1
}

按格式修改端口、密码以及混淆协议。也可以和以前的格式混合使用,如果某个端口不配置混淆协议,则会使用下面的默认”obfs”配置。

各选项说明:

Name Explanation 中文说明
server the address your server listens 监听地址
server_ipv6 the ipv6 address your server listens ipv6地址
server_port server port 监听端口
local_address the address your local listens 本地地址
local_port local port 本地端口
password password used for encryption 密码
timeout in seconds 超时时间
method default: “aes-128-cft” 加密方式
protocol_param default:”” 协议插件参数,可设置每个端口的链接设备数,比如”5″就是一个端口最大5个设备连接
protocol default:”auth_aes128_md5″ 协议插件,默认”auth_aes128_md5″
obfs default:”tls1.2_ticket_auth_compatible” 混淆插件,默认”tls1.2_ticket_auth_compatible”
obfs_param default:”” 混淆插件参数,默认””
speed_limit_per_con default:0 单线程限速,默认 0,单位KB/S,说明看这里
speed_limit_per_user default:0 端口总限速,默认 0,单位 KB/S,说明看这里
redirect default:”” 重定向参数,默认””
dns_ipv6 default:false 是否优先使用IPv6地址,有IPv6时可开启
fast_open use TCP_FASTOPEN, true / false 快速打开(仅限linux客户端)
workers number of workers, available on Unix/Linux 线程(仅限linux客户端)

其中protocol有如下四种取值:

12月30日以后的ShadowsocksR服务端,协议 都不在支持兼容原版!

protocol 说明
“origin” 原版协议
“verify_deflate” 带压缩的协议
“auth_sha1_v4″ 支持兼容原版,类似”auth_sha1″,提供更好的长度混淆特性
“auth_aes128_md5″ 推荐!但不支持兼容原版
“auth_aes128_sha1″ 推荐!但不支持兼容原版

其中obfs有如下四种取值:

obfs 说明
“plain” 不混淆
“http_simple” 伪装为http协议
“tls_simple” 伪装为tls协议(不建议使用)
“random_head” 发送一个随机包再通讯的协议
“tls1.2_ticket_auth” 伪装为tls ticket握手协议(强烈推荐),同时能抗重放攻击

各混淆插件的说明请点击这里查看:混淆插件说明

注:客户端的protocol和obfs配置必须与服务端的一致。

redirect参数说明:

值为空字符串或一个列表,若为列表示例如

“redirect”:[“bing.com”, “cloudflare.com:443″],

作用是在连接方的数据不正确的时候,把数据重定向到列表中的其中一个地址和端口(不写端口则视为80),以伪装为目标服务器。

dns_ipv6参数说明:

为true则指定服务器优先使用IPv6地址。仅当服务器能访问IPv6地址时可以用,否则会导致有IPv6地址的网站无法打开。

一般情况下,只需要修改以下五项即可:

"server_port":8388,        //端口
"password":"password",     //密码
"protocol":"origin",       //协议插件
"obfs":"http_simple",      //混淆插件
"method":"aes-128-ctr",    //加密方式

更新源代码

如果代码有更新可用本命令更新代码

进入shadowsocks目录

cd shadowsocksr

执行

git pull

成功后重启ss服务

其它异常

如果你的服务端python版本在2.6以下,那么必须更新python到 2.7.x 版本

更多的Shadowsocks安装教程/一键脚本请看这里:Shadowsocks指导篇

一键脚本:『原创』Debian/Ubuntu ShadowsocksR一键单端口/多端口管理脚本(集成锐速)

转载自ShadowsocksR官方Github文档:https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup

转载请超链接注明:逗比根据地 » ShadowsocksR 单用户版服务端安装教程
责任声明:本站一切资源均原创或收集自互联网,仅作交流学习之用,请勿用作商业!如造成任何后果,本站概不负责!

赞 (30)or打赏
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(44)个小伙伴在吐槽
  1. 这个可以通过mudb查看各端口用户流量情况吗
    红世之徒2017-04-23 13:39 (5天前)回复
  2. CentOS 7 x64 卡在進根目錄那裡。找不到文件
    aa2017-03-11 19:40 回复
  3. 运行 python server.py 命令时,出现-bash: python: command not found的错误,请问要怎么解决?
    拍黄瓜2017-03-05 13:55 回复
    • 你的系统没有安装python?
      大部分Linux系统都内置了Python,你的竟然没有,奇葩。。。
      尝试用下面的命令安装,不行的话,就去谷歌搜索 Linux安装Python 2.7
      CentOS系统:
      yum update && yum install python2.7 -y
      Debian/Ubuntu系统:
      apt-get update && apt-get install python2.7 -y
      
      Toyo2017-03-05 14:28 回复
  4. 数据库多用户版本的redirect需要填写吗,如果需要怎么填写,speed_limit_per_con和speed_limit_per_user的限速配置对于数据库多用户配置是否生效,protocol_param和obfs_param参数在数据库多用户怎么配置,谢谢!
    菜鸟2017-02-18 09:26 回复
    • redirect一般不需要填写。
      speed_limit_per_con、speed_limit_per_user、protocol_param、obfs_param 在单用户和多用户配置文件中都是生效的。
      配置方法无差别。
      Toyo2017-02-18 11:41 回复
  5. 你好!首先感谢写出这一篇指导文章。我想请教一下,现在我用的路由器是斐讯K2,刷了L大修改版的PandoraBox 17.01 R4.4,在网络服务里有一个SSR Pro和SSR Srv,但是Srv端的protocol配置的里没有auth_sha1_v2这个协议,Pro里却有,我购买的SSR推荐的也是上述协议,请问该如何添加呢?
    Null2017-02-18 08:56 回复
    • ShadowsocksR服务端新版本已经不再支持auth_sha1_v2协议了,并且声明这个协议存在安全威胁,所以才从客户端和服务端中去除。
      你的路由器固件中的ShadowsocksR客户端,也是有人维护的,需要他们去添加才行,除非你会自己写。
      Toyo2017-02-18 11:45 回复
  6. 上一次进入配置文件的代码是什么?
    babyhua2017-02-17 18:35 回复
  7. 改完config.json之后不管前台后台运行还是重启服务都有一行这个 ERROR: found an error in config.json: Expecting , delimiter: line 5 column 5 (char 81) 请问应该怎么办?
    vakarian2017-02-03 22:00 回复
    • JSON格式错误,第五行第五列,你修改的时候出现了格式不正确的问题。
      Toyo2017-02-03 22:38 回复
  8. 你好,请问下我在centos7上面应该怎么使用呢,按照上面配置好了,服务也可以启动,但是好像无效,还有如果成功了是不是每次都要手动启动服务才可以使用?
    leo2017-01-13 23:51 回复
    • 后台运行后就不用管了 python server.py -d start
      Shadowsocks无法使用的排除方法
      Centos7的自带防火墙是一个坑爹的地方,你需要注意一下,具体的centos我基本不用也不熟悉,建议经常看我教程的话,请使用debian系统。
      Toyo2017-01-14 00:31 回复
      • 服务器是用的注册的站点的,这样可以在centos上使用么
        leo2017-01-15 20:46 回复
  9. 请教一下作者关于ssr客户端->服务器->端口设置 的使用方法及作用。
    tony2017-01-12 11:31 回复
    • 什么鬼?
      Toyo2017-01-12 11:46 回复
      • 右键ssr客户端图标->服务器->端口设置
        tony2017-01-12 12:20 回复
        • 好吧,这个并没有研究。
          Toyo2017-01-12 17:30 回复
  10. 非常感谢这么详细的说明,我根据官网上的教程搭建了服务器,卡在最后的开机自启动这里,一路搜索最后到这里看到了明确的方法,测试可用。其实有时候感觉linux系统推广难的问题就在于。。已经熟练使用的用户,不太愿意去写这样的简明操作文档给没入门的用户看,很多问题通过搜索引擎去找非常费劲。。相对windows在使用上遇到困难找信息就会方便很多。
    msghost2017-01-10 12:43 回复
  11. 请问最后一个支持协议兼容原版的ShadowsocksR服务端下载下来要怎么安装呢?教程里没找到,像这样安装本地文件要怎么操作呢?还有比如有些vps想重装系统,换掉自带的,又该怎么办?小白问题有点多,请见谅 :smile:
    小白2017-01-08 00:39 回复
    • 首先安装unzip, yum install -y unzip / apt-get install -y unzip ,然后下载压缩包到VPS wget --no-check-certificate https://softs.pw/shadowsocksr_12_30.zip ,然后 unzip shadowsocksr_12_30.zip ,然后就可以跳过获取源代码等步骤,按教程里的 服务端配置 继续安装了。
      “还有比如有些vps想重装系统,换掉自带的,又该怎么办?”你这句话是什么意思,我没有理解。
      Toyo2017-01-08 01:01 回复
      • 就是比如说我购买一个VPS,创建的时候系统只有ubuntu或者CentOS可以选择,这时候可不可以自己再重装debian7?如果可以的话,具体怎么操作呢?谢谢! :smile:
        小白2017-01-08 18:17 回复
        • 可不可以重装Debian 7 那要看IDC有没有设置Debian 7的系统模板啊,没有设置你就不能重装为Debian 7.
          Toyo2017-01-08 18:37 回复
          • 谢啦,看来还得继续摸索 :smile:
            小白2017-01-09 18:26 回复
  12. 脚本好像出问题了,还有一个集合锐速的,我安装部署好没有网络,但有上传速度。。。
    12572017-01-06 01:45 回复
    • 教程和脚本和没问题的,请排除其他问题。
      Toyo2017-01-06 15:04 回复
  13. 服务端配置以下操作都不行,纯新手在这以后不知所谓。更不就没用生成这么个文件。 "~/shadowsocks/user-config.json" E212: Can't open file for writing
    kezhu2016-12-23 19:18 回复
    • 无法打开文件进行写入,你先通过 ls -a 查看当前文件夹内的所有文件,看一看 user-config.json 文件是否存在,你这个错误似乎是文件被占用或者没有权限操作造成的。
      Toyo2016-12-23 20:23 回复
      • 没有这个文件。我复制回车命令步骤如下: apt-get update apt-get install git -y git clone -b manyuser https://github.com/breakwa11/shadowsocks.git cd shadowsocks/shadowsocks cp /root/shadowsocks/config.json /root/shadowsocks/user-config.json vi /root/shadowsocks/user-config.json(到这里就无法继续下去了,无法编辑保存) 谢谢大大赐教
        kezhu2016-12-23 21:46 回复
        • 我也栽到这步了,刚开始是看了GIT上的官方的教程,一直有问题。其他的SSR的教程也是,没有一个能够连接上的。搞了几天,后来只能安装SS。但是还是不放弃,继续研究。今天看这个教程,知道可以直接配置json。终于弄好了,但是按照这个教程也是错的。/root/shadowsocks/user-config.json这个文件是没有的。你新建后,程序也不认。这个文件原本是/root/shadowsocks/config.json。大家配置这个文件。我的配置是多端口,我还需要改userapiconfig.py。单端口就不用这步。配置好后cd /root/shadowsocksrshadowsocks,然后执行python server.py就可以了。我就是这样好了。
          jdfdfbhs2017-01-06 22:49 回复
          • 不管你新建 user-config.json 还是不新建直接用 config.json ,ShadowsocksR服务端都是认的。
            之所以再复制一个 user-config.json 文件,是因为升级ShadowsocksR服务端的话会覆盖 config.json 文件。
            至于你的不认的情况,我不清楚,因为ShadowsocksR作者也是这样建议的,我也是一直这样做的,我写的SSR一键脚本也是这样做的,都没问题。
            Toyo2017-01-06 23:24 回复
        • 配置文件说错了,是/root/shadowsocksr/config.json。配置好之后记得cd /root/shadowsocksr/shadowsocks执行一下python server.py.
          jdfdfbhs2017-01-06 22:53 回复
  14. 请问站长能写一篇关于樱花免费服务器的Image如何创建的教程么?网上现在都是以制作完成的,我想试着自己做,请问该如何制作?
    snow2016-12-08 16:13 回复
  15. 反馈,多端口不同混淆协议的配置中倒数第二行的false后面多了一个逗号。按这个模版设置与默认配置不同的端口用不了。被网站终止访问。
    dk2016-12-02 21:32 回复
  16. 这个版本该如何设置开机自启:P
    PAPAPRPR2016-10-01 19:30 回复
    • 首先,确定了要运行子目录的sever.py才能正常使用,因此我根据配置SS的方法执行了这个命令,发现可以运行:python /root/shadowsocksr/shadowsocks/server.py -d start。因此,我猜可以参考一些教程配置SS开机自启的方法来配置SSR开机自启,具体就是用supervisor进程管理。我准备试试。你也可以搜索一下。
      jdfdfbhs2017-01-06 23:07 回复
    • 另外,我想问一下你是如何能上网的?不是完全按照教程来的吧?说说你是怎么成功的,我想验证一下我的想法。
      jdfdfbhs2017-01-06 23:10 回复
  17. 唉,越来越不容易了...
    尼采我思谁2016-01-26 22:02 回复