
前文已经讲了怎么部署一个基本的SSR服务器以及进行优化,一般的朋友已经可以关掉我的博文开始畅游网络了。不过一个VPS仅仅自己一个人用也实在是浪费,而用一键包安装的单用户版SSR分享给朋友实在是不方便,还得后台单独开账号,开端口,而且现在通常一个人都是几台设备(PC,Pad,手机),更导致分享起来麻烦。恰好原版的SSR最近的版本能轻松解决这个问题,今天就讲解一下怎么部署原版SSR并设置单端口多用户。由于是进阶指南,所以一些基本操作就不再重复赘述,有看不懂的地方请查阅前文。
下面的代码来自SSR作者BreakWa11大神的Github
2017/07/31 更新
Breakwa11已删除ShadowsocksR全代码,本文安装方法失效
如需安装请移步从零开始部署FanWa11梯子指南(十三)ShadowsocksR最终版部署
mudb.json配置方法依旧有效
一、部署原版SSR
安装环境依旧是Centos6 X64版,理论上Centos7,Ubuntu,Debian这些都支持,愿意折腾得朋友请自己尝试。老规矩,全新系统,并用root用户Putty登录。
1.1 基本库安装
yum install python-setuptools && easy_install pip
yum install git
1.2 获取源代码
git clone -b manyuser https://github.com/shadowsocksr/shadowsocksr.git
执行完毕后此目录会新建一个shadowsocks目录,其中根目录即是数据库版(Mudbjson版)
1.3 编译代码
进入根目录初始化配置(假设根目录在~/shadowsocksr
,如果不是,命令需要适当调整):
cd ~/shadowsocksr
bash initcfg.sh
这时候服务器端就已经安装完成了,但是还不能使用,需要进行相应配置。
二、SSR配置
shadowsocksr目录内,打开userapiconfig.py
vi ~/shadowsocksr/userapiconfig.py
对以下内容进行相应修改:
API_INTERFACE = 'mudbjson' #修改接口类型
:wq保存退出后,通过mujson_mgr.py来配置SSR的用户帐户信息,这里有命令行和文本编辑2种方式,这里推荐用文本编辑器来完成,WinSCP连接上服务器,找到并打开mudb.json文件,这时候文件一般来说没有任何内容,只有一个[]符号,我们需要手动写入配置信息,这里给出一个范例如下:
[
{
"d": 0,
"enable": 1,
"method": "aes-128-cfb",
"obfs": "tls1.2_ticket_auth",
"passwd": "fuckgfw",
"port": 80,
"protocol": "auth_aes128_sha1",
"protocol_param": "64#20170215:plum,20170216:blossoms",
"transfer_enable": 1125899906842624,
"u": 0,
"user": "80"
},
{
"d": 0,
"enable": 1,
"method": "aes-128-cfb",
"obfs": "tls1.2_ticket_auth",
"passwd": "fuckgfw",
"port": 20170215,
"protocol": "auth_aes128_sha1",
"transfer_enable": 1125899906842624,
"u": 0,
"user": "20170215"
},
{
"d": 0,
"enable": 1,
"method": "aes-128-cfb",
"obfs": "tls1.2_ticket_auth",
"passwd": "fuckgfw",
"port": 20170216,
"protocol": "auth_aes128_sha1",
"transfer_enable": 1125899906842624,
"u": 0,
"user": "20170216"
},
{
"d": 0,
"enable": 1,
"method": "chacha20",
"obfs": "http_simple",
"passwd": "fuckgfw1314",
"port": 8080,
"protocol": "auth_sha1_v4",
"transfer_enable": 1125899906842624,
"u": 0,
"user": "8080"
}
]
# 这里是对代码的注释:
# {}每个括号内部内容表示一个端口的所有配置
# "d"指该用户使用了多少下载流量,单位为字节
# "enable"应该指是否开启,默认是1,不用修改
# "method"加密方式,这个应该由你的客户端支持决定
# "obfs"混淆方式,同加密方式
# "passwd"连接密码
# "port"开放端口
# "protocol"协议,这里是重点,后面会详细解释
# "protocol_param协议参数,后面细说
#
# "transfer_enable"该端口能使用流量上限
# "u"指该用户使用了多少上传流量,单位为字节
# "user"用户名,与端口号相同
这段代码设定了4个用户端口,分别为80,8080,20170215,20170216,但是有点常识的都知道,端口范围应该是1~65535,20170215,20170216两个端口是不存在的,这里我们用用户名或者虚拟端口来理解更为合适。
第一个段代码内比后面三段代码多了一个protocal_param字段,因此第一字段的80端口被设置为多用户端口。字段参数64#20170215:plum,20170216:blossoms,这段意思是:用户上限64,设定2个用户名,分别为20170215,20170216,冒号后面的字符我们姑且理解为密码吧。值得注意的是,这个用户名只能采用数字,而且数字一旦小于65535,SSR会同时打开一个与用户名相同的端口,为避免麻烦,应尽量使用大于65535的数字。目前支持多用户端口的协议只有auth_aes128_sha1和auth_aes128_md5,所以一旦采用多用户端口,protocol字段只能在这其中二选一。
第二三段代码是对20170216,20170217两个用户进行配置,避免麻烦加密混淆协议应与第一段相同。
第四段代码定义了一个端口8080,这是一个传统的单用户端口,配置可以与前3段代码完全不同。
按这个配置,实际我们只打开了2个端口,80和8080端口。80端口为多用户端口,8080端口为单用户端口。我们可以用下面3种客户端配置进行连接:
其中80端口允许20170215,20170216两个用户不超过64个客户端同时连接,而8080端口仅允许一个客户端连接。
至此我们配置基本结束。
PS:这里我们采用80端口为多用户端口是为后文作准备,SSR现在支持端口http连接,因此我们可以用一个80端口同时实现代理和网页监听,为部署自己的博客作准备,今天这里不细说了。
三、打开端口,安装加速,启动服务
3.1 在防火墙中打开相应端口
编辑iptables添加80,8080端口配置
vi /etc/sysconfig/iptables
添加80,8080端口配置到文件中
-A INPUT -p udp -m state --state NEW -m udp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
保存退出重启防火墙并保存配置
service iptables restart
/etc/rc.d/init.d/iptables save
3.2 加速优化服务器
请参阅这两篇
从零开始部署FanWa11梯子指南(三)部署ShadowsocksR,一键脚本安装
3.3 启动服务器
shadowsocksr目录内,服务器命令分别为
后台启动服务:./run.sh
后台带日志启动服务:./logrun.sh
停止后台服务:./stop.sh
查看运行日志:./tail.sh