镜像域名: doub.bid 提供给无翻墙能力的人使用~ 有能力的建议访问主域名("点"改为".") doub点io
投稿文章 | 广告投放 | Telegram 群组 / 公告频道

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

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

说明:

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/ToyoDAdoubi/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握手协议(强烈推荐),同时能抗重放攻击

如果你想要使用 tls1.2_ticket_fastauth 混淆插件,那么服务端选择 tls1.2_ticket_auth,客户端选择 tls1.2_ticket_fastauth 即可。

如果服务端 设置混淆参数为:tls1.2_ticket_auth_compatible (兼容原版)

那么客户端 可使用的混淆为:plain / tls1.2_ticket_auth / tls1.2_ticket_fastauth

tls1.2_ticket_authtls1.2_ticket_fastauth 的区别为,后者不会等待服务器回应,所以不会增加延迟。适合于,因为混淆插件增加延迟的原因不得不选择原版混淆 plain,但是又因为QOS等因素而处于延迟与干扰/限速等之间抉择的时候,可以选择 tls1.2_ticket_fastauth 客户端混淆插件!

注意:tls1.2_ticket_fastauth 需要 2017/06/04 后更新的服务端方可使用!

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

注:客户端的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 单用户版服务端安装教程
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!

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

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(74)个小伙伴在吐槽
  1. 查看日志老是出现这个错误 2017-08-09 02:42:34 WARNING tcprelay.py:521 Protocol ERROR, TCP ogn data 1603010298010002940303598aaedbecb1168784962af7d215577e5e7e67277c30573545b4ff5308017333207be8471fd1ca404799c65bb2217a75644bd04c7cd671129148ccbf588effa0b3001cc02bc02fcca9cca8cc14cc13c00ac014c009c013009c0035002f000a0100022fff01000100000000050003000000001700000023017480d67faaa85f088cde49cf00c25f14d4d8b221878c315c70b24875b7489122ef8e9ecf440024eccdac2c74db506d1107c65dd4fcf5627b9454043a6161e32fff6e76ee6805bf37d790f1f662374fdb644950e368d462402d383902e1e57d474afa9bb3d3b8057db5cb8168a3144ad6765cedd3956f7b972ec054b418dc99dabbdd86de356477f3315b6869c83ed9e922a7ff71afdfffd19605db2c9fdf38f8581f98a08949bbdecfeb1070ff5f0c4610110c9990527d446f06b6f50d360a851c0bcabea628651b54aff0f48bb09f8437a437d4bcba0aba346e871d5676696e0925a0c837fae54934de51410f5bcf6840d70c983de8b2790358ecd7034f25389bafbd9f199e4ec237201ca59f01880936a2fb8e2f13098cfa026f05f5d9d519924477f613edf88de3b6b94fa765c185e08e0bf48fcf30c9f701f87c0d3d0326a109dddd9f5f91b00c9a7ed8742a192fce5469c40395991e3add6173faafa6badcf6901cdaab1cb5e1ec4fcfdb43addf9b504daab2000d0016001406010603050105030401040303010303020102030005000501000000000012000075500000000b00020100000a000600040017001800150066000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 from ::ffff:106.44.238.26:13696 via port 1001 by UID 1001 2017-08-09 02:42:34 ERROR tcprelay.py:1097 can not parse header when handling connection from ::ffff:106.44.238.26:13696 2017-08-09 02:42:35 INFO obfs_tls.py:293 tls_auth wrong sha1 2017-08-09 02:42:35 WARNING common.py:238 unsupported addrtype 69, maybe wrong password or encryption method 2017-08-09 02:42:35 WARNING tcprelay.py:521 Protocol ERROR, TCP ogn data 1603010196010001920303598aaedcc4cd9971becd4b7dde26f32b20dd43085188419e4a0fc2387e48d0fd20e749a2dc54aedb3541c9cd2bf49dbad067f71a936bf0cdf4087b3942829ba795001cc02bc02fcca9cca8cc14cc13c00ac014c009c013009c0035002f000a0100012dff01000100000000050003000000001700000023007264d0faef94c8a5ddb08dd2e63651a64aa8c05b82fcafd43afbee812e436ebe96058770a385ceb6c28d79b95ca509b351117b3a78d4699b6b94eaca07de1d35e463dd17603d35a7f22108fd7f0447e8464578f9dfb747622b210f0d95b6c18d2d1f16be8784059e921cb01847688a725a8606000d0016001406010603050105030401040303010303020102030005000501000000000012000075500000000b00020100000a000600040017001800150066000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 from ::ffff:106.44.238.26:13760 via port 2001 by UID 2001 2017-08-09 02:42:35 ERROR tcprelay.py:1097 can not parse header when handling connection from ::ffff:106.44.238.26:13760 2017-08-09 02:49:46 INFO obfs_tls.py:293 tls_auth wrong sha1 2017-08-09 02:49:46 WARNING common.py:238 unsupported addrtype 69, maybe wrong password or encryption method 2017-08-09 02:49:46 WARNING tcprelay.py:521 Protocol ERROR, TCP ogn data 1603010298010002940303598ab08b4c262101b6f561f28052f5941a7cec1b41d210f466a62dfb8688a854207be8471fd1ca404799c65bb2217a75644bd04c7cd671129148ccbf588effa0b3001cc02bc02fcca9cca8cc14cc13c00ac014c009c013009c0035002f000a0100022fff01000100000000050003000000001700000023017480d67faaa85f088cde49cf00c25f14d4d8b221878c315c70b24875b7489122ef8e9ecf440024eccdac2c74db506d1107c65dd4fcf5627b9454043a6161e32fff6e76ee6805bf37d790f1f662374fdb644950e368d462402d383902e1e57d474afa9bb3d3b8057db5cb8168a3144ad6765cedd3956f7b972ec054b418dc99dabbdd86de356477f3315b6869c83ed9e922a7ff71afdfffd19605db2c9fdf38f8581f98a08949bbdecfeb1070ff5f0c4610110c9990527d446f06b6f50d360a851c0bcabea628651b54aff0f48bb09f8437a437d4bcba0aba346e871d5676696e0925a0c837fae54934de51410f5bcf6840d70c983de8b2790358ecd7034f25389bafbd9f199e4ec237201ca59f01880936a2fb8e2f13098cfa026f05f5d9d519924477f613edf88de3b6b94fa765c185e08e0bf48fcf30c9f701f87c0d3d0326a109dddd9f5f91b00c9a7ed8742a192fce5469c40395991e3add6173faafa6badcf6901cdaab1cb5e1ec4fcfdb43addf9b504daab2000d0016001406010603050105030401040303010303020102030005000501000000000012000075500000000b00020100000a000600040017001800150066000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 from ::ffff:106.44.238.26:13313 via port 1001 by UID 1001 2017-08-09 02:49:46 ERROR tcprelay.py:1097 can not parse header when handling connection from ::ffff:106.44.238.26:13313
    秋刀鱼2017-08-09 15:42 回复
  2. 博主,你好,我按照你的方法搭建SSR后成功了,我是按照这个 "port_password":{ "8888":"password1", "9999":"password2", "2333":"password3" }, 创建了4个端口和4个密码,当我在电脑上导入第一个端口和密码时成功翻出去了,然后我导入第二个端口后(我也选择了这个端口)故意输入错误的密码,但还是成功的连到了,删除第一个端口的配置后第二个就不能连接了 请问为什么错误的密码也可以连接到呢 非常感谢
    秋刀鱼2017-08-09 13:05 回复
    • 错误的密码怎么会链接?这么神奇?
      Toyo2017-08-09 22:15 回复
1 2