逗比根据地 更换域名为 doub.io,并且以后不在更换域名 ,请逗比们互相转告~
逗比交流群: 271866172 / 531201358

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

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

说明:

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

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

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

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


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

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

注意:最新版本的ShadowsocksR服务端取消了 协议 兼容原版,影响解释看着个

基本库安装

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

centos:

yum update
yum install git -y

ubuntu/debian:

apt-get update
apt-get install git -y

如果要使用 salsa20 chacha20 chacha20-ietf 等加密方式,请安装 libsodium(本教程中可能不是最新版本,在这里看最新版本,并替换下面代码的版本号) :

apt-get install build-essential -y
wget --no-check-certificate -N https://github.com/jedisct1/libsodium/releases/download/1.0.11/libsodium-1.0.11.tar.gz
tar xf libsodium-1.0.11.tar.gz && cd libsodium-1.0.11
./configure && make -j2 && make install
ldconfig

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

获取源代码

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

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

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

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

根目录即 shadowsocksr

子目录即 shadowsocksr/shadowsocks

服务端配置

进入子目录:

cd shadowsocksr/shadowsocks

通过配置文件运行

复制一份新的配置文件避免更新的时候覆盖。

假如你的Shadowsocks目录是 /root/shadowsocksr/

cp /root/shadowsocksr/config.json /root/shadowsocksr/user-config.json

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

vi /root/shadowsocksr/user-config.json

文件内容大概如下:

{
    "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-256-cfb",
    "protocol": "auth_aes128_md5",
    "protocol_param": "",
    "obfs": "tls1.2_ticket_auth_compatible",
    "obfs_param": "",
    "dns_ipv6": false,
    "connect_verbose_info": 0,
    "redirect": "",
    "fast_open": false
}

运行子目录内的server.py:

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

python server.py

后台运行:

python server.py -d start

重启服务:

python server.py -d restart

停止服务:

python server.py -d stop

查看日志:

tail -f /var/log/shadowsocks.log

-h 查看所有参数

开机启动

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

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

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目录下,请自行修改路径)

python /root/shadowsocksr/shadowsocks/server.py -d start

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

多端口配置

如果不会,推荐我写的一键脚本:『原创』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-256-cfb",
    "protocol": "auth_aes128_md5",
    "protocol_param": "",
    "obfs": "tls1.2_ticket_auth_compatible",
    "obfs_param": "",
    "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-256-cfb",
    "protocol": "auth_aes128_md5",
    "protocol_param": "",
    "obfs": "tls1.2_ticket_auth_compatible",
    "obfs_param": "",
    "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-256-cfb”, see Encryption 加密方式
protocol_param default:”” 协议插件参数,默认””
protocol default:”origin” 协议插件,默认”origin”
obfs default:”tls1.2_ticket_auth_compatible” 混淆插件,默认”tls1.2_ticket_auth_compatible”
obfs_param default:”” 混淆插件参数,默认””
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_simple” 带校验的协议
“verify_deflate” 带压缩的协议
“verify_sha1″ 带验证抗CCA攻击的协议,可兼容libev的OTA
“auth_simple” 抗重放攻击的协议
“auth_sha1″ 带验证抗CCA攻击且抗重放攻击的协议
“auth_sha1_v2″ 类似”auth_sha1″,提供更好的长度混淆特性
“auth_sha1_v4″ 推荐!类似”auth_sha1″,提供更好的长度混淆特性
“auth_aes128_md5″ 推荐!
“auth_aes128_sha1″ 推荐!

其中obfs有如下四种取值:

obfs 说明
“plain” 不混淆
“http_simple” 伪装为http协议
“tls_simple” 伪装为tls协议(不建议使用)
“random_head” 发送一个随机包再通讯的协议
“tls1.0_session_auth” 伪装为tls session握手协议,同时能抗重放攻击
“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-256-cfb",    //加密方式

更新源代码

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

进入shadowsocks目录

cd shadowsocksr

执行

git pull

成功后重启ss服务

其它异常

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

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

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

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

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

赞 (24)
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(29)个小伙伴在吐槽
  1. 你好,请问下我在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 (6天前)回复
        • 什么鬼?
          Toyo2017-01-16 02:06 (6天前)回复
  2. 请教一下作者关于ssr客户端->服务器->端口设置 的使用方法及作用。
    tony2017-01-12 11:31 回复
    • 什么鬼?
      Toyo2017-01-12 11:46 回复
      • 右键ssr客户端图标->服务器->端口设置
        tony2017-01-12 12:20 回复
        • 好吧,这个并没有研究。
          Toyo2017-01-12 17:30 回复
  3. 非常感谢这么详细的说明,我根据官网上的教程搭建了服务器,卡在最后的开机自启动这里,一路搜索最后到这里看到了明确的方法,测试可用。其实有时候感觉linux系统推广难的问题就在于。。已经熟练使用的用户,不太愿意去写这样的简明操作文档给没入门的用户看,很多问题通过搜索引擎去找非常费劲。。相对windows在使用上遇到困难找信息就会方便很多。
    msghost2017-01-10 12:43 回复
  4. 请问最后一个支持协议兼容原版的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 回复
  5. 脚本好像出问题了,还有一个集合锐速的,我安装部署好没有网络,但有上传速度。。。
    12572017-01-06 01:45 回复
    • 教程和脚本和没问题的,请排除其他问题。
      Toyo2017-01-06 15:04 回复
  6. 服务端配置以下操作都不行,纯新手在这以后不知所谓。更不就没用生成这么个文件。 "~/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 回复
  7. 请问站长能写一篇关于樱花免费服务器的Image如何创建的教程么?网上现在都是以制作完成的,我想试着自己做,请问该如何制作?
    snow2016-12-08 16:13 回复
  8. 反馈,多端口不同混淆协议的配置中倒数第二行的false后面多了一个逗号。按这个模版设置与默认配置不同的端口用不了。被网站终止访问。
    dk2016-12-02 21:32 回复
  9. 这个版本该如何设置开机自启: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 回复
  10. 唉,越来越不容易了...
    尼采我思谁2016-01-26 22:02 回复