向世界分享我的生活与见解
To the world to share my life with insights

基于AMH面板的ShadowsocksR多用户版服务端安装教程(ss-panel后台)

注意:Shadowsocks多用户版服务端需要配合ss-panel等使用前端,查看基于AMH可视化搭建Shadowsocks多用户管理面板—SS-Panel教程。此教程是针对对ss-panel面板实现多个用户使用和管理的,如果只是个人简单使用可以查看CentOS一键安装shadowsocks脚本,另外本教程是基于KVM的vps,使用了centos6.5的X64,以及安装了AMH操作面板的基础上的教程。

首先说一下安装步骤:更新Python(AMH提供的Python版本是2.6的,这个版本马上就要取消支持了,所以需要更新才能安装依赖。如果你们的Python版本是2.7以上的可以直接跳过这一步)→安装依赖 → 下载源码 → 修改数据库配置 → 配置防火墙→设置脚本权限并运行脚本!


以下操作需要使用vps的root权限通过Winscp和putty对vps进行操作,建议我相关基础的人学习交流。不然就先去学习下基础在来看。反正执行命令就是用putty通关过ssh连接vps进行操作,修改文件内容可以直接用Winscp操作文件,或者是使用vim命令。

升级Python

更新指令
yum -y update
yum groupinstall -y 'development tools'

安装 python 工具需要的额外软件包 SSL, bz2, zlib
yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wget

源码安装Python 2.7.x
wget http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
xz -d Python-2.7.8.tar.xz
tar -xvf Python-2.7.8.tar

安装详情:
# 进入目录:
cd Python-2.7.8
# 运行配置 configure:
./configure --prefix=/usr/local
# 编译安装:
make
make altinstall
# 检查 Python 版本:
[root@dbmasterxxx ~]# python2.7 -V
Python 2.7.8

安装好Python2.7之后我们需要先把Python2.6备份起来,然后再对yum的配置进行修改,如果不进行这一步操作的话,执行yum命令将会提示你Python的版本不对。
执行以下命令,对Python2.6进行备份,然后为Python2.7创建软链接
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
然后编辑/usr/bin/yum,将第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6.6
现在执行yum命令已经不会出现之前的错误信息了。

安装依赖

安装 setuptools
#获取软件包
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
# 解压:
tar -xvf setuptools-1.4.2.tar.gz
cd setuptools-1.4.2
# 使用 Python 2.7.8 安装 setuptools
python2.7 setup.py install
安装 PIP
curl https://bootstrap.pypa.io/get-pip.py | python2.7 -

安装cymysql
pip install cymysql

获取shadowsocksRmanyuser文件

git clone -b manyuser https://github.com/breakwa11/shadowsocks.git
yum -y install zip unzip

以上命令执行成功后vps的root目录中会出现一个shadowsocks目录,其中根目录的是多用户版(即数据库版),子目录中的是单用户版。
根目录即 ./shadowsocks
子目录即 ./shadowsocks/shadowsocks


修改数据库配置

以下我是的教程是通过Winscp直接可视化修改文件的,逼格高的朋友可以直接使用vim命令。

在vps的root文件的shadowsocks目录中找到mysql.json,把 mysql.json 复制为 usermysql.json 后,对 usermysql.json 里以上内容进行相应修改,以避免更新时发生冲突。

编辑usermysql.json文件

 

“host”: “127.0.0.1”, //前端mysql域名/IP
“port”: 3306, //mysql端口
“user”: “ss”, //mysql用户名
“password”: “pass”, //mysql密码
“db”: “shadowsocks”, //数据库名

 

注意:数据库信息除了MYSQL_HOST,其他的必须和SS-Panel完全一致,服务端启动的时候会读取数据库信息!至于MYSQL_HOST,如果你的服务端和前端(SS-Panel)在一个VPS上,那就写localhost,如果不在一起,请写前端(SS-Panel)所在VPS的ip或者域名!

 

配置文件config.json:

 

在root文件夹中shadowsocks目录中找到config.json文件复制一份到user-config.json,然后编辑:
“method”:”aes-256-cfb”, //修改成您要的加密方式的名称
“protocol”: “auth_sha1_compatible”, //修改成您要的协议插件名称
“obfs”: “tls1.0_session_auth_compatible”, //修改成您要的混淆插件名称

 


启动运行

进入根目录:
cd shadowsocks

运行:
python server.py

这句运行代码主要用于调试,关闭sshss后端自动关闭,所以正式使用请使用下面的脚本运行!如果需要停止请按Ctrl+C键终止程序。
这时可查看有运行情况,检查有没有错误。如果服务端没有错误,而连接不上,需要检查iptables防火墙配置,如果需要更改防火墙配置,可以直接跳到下一节教程,
把防火墙配置好了在来启动运行。

通过脚本运行
脚本位于./shadowsocks目录。cd ./shadowsocks

增加脚本可执行权限(执行一次就好)
chmod +x *.sh
后台运行(ssh窗口关闭后也继续运行)
./run.sh
 logrun.sh 脚本启动才会记录日志。
./logrun.sh
后台运行时查看运行情况/日志(用 logrun.sh 脚本启动才有日志)
./tail.sh
停止运行
./stop.sh
注:通过脚本运行默认日志会保存在根目录的ssserver.log,可手动查看。

 


防火墙配置

问题:无法连接Shadowsocks服务端,并且没提示错误或者提示IP被占用

回答:如果Shadowsocks服务端没有提示错误,或者提示IP被占用,并且使用./stop.sh和./run.sh脚本重启后,依旧无法连接Shadowsocks,请重启当前VPS。

 

问题:Shadowsocks无法连接到数据库!

回答:这种情况一般是服务端和前端不在一个vps中,这样就属于远程连接,解决这个问题你应该在三个方面去检查问题。
1、你需要修改数据库的远程连接权限“%”(mysql数据库中的user表中将全局字段的localhost改成%,之后重启mysql)。
2、在数据库中修改iptables防火墙的配置文件放行3306端口(多半问题都是出现在这里,3306数据库端口没有对外开放)。
首先打开防火墙规则文件。
vi /etc/sysconfig/iptables
删掉原来的3306规则(ACCEPT和DROP),然后加上这个规则。
-A INPUT -p tcp -m tcp –dport 3306 -j ACCEPT
然后重启iptables
/etc/init.d/iptables restart
3、对3306端口的远程访问进行监听。修改mysql的配置文件/etc/mysql/my.conf,将bind-address后面增加远程访问IP地址或者禁掉这句话就可以让远程机登陆访问了。

 

问题:服务端运行提示/日志正常,客户端填写也正确,但是依然无法连接!

这种情况一般都是防火墙搞的鬼。你可以先关闭防火墙,试一试是不是防火墙的问题导致的无法连接。
/etc/init.d/iptables stop


其它说明

id //用户id数据库字段说明:

email //用户邮箱
pass //用户密码
passwd //ss密码
t //最后使用的时间
u //已上传流量
d //已下载流量
transfer_enable //可用流量(总量)
port //ss端口
switch //保留字段
enable //启用或禁用ss帐号(1启用,0禁用)
type //保留字段
last_get_gift_time //保留字段
last_rest_pass_time //保留字段

reg_data //用户注册日期

ShadowsocksR多用户板服务端默认开启UDP的

未经允许不得转载:维简网 » 基于AMH面板的ShadowsocksR多用户版服务端安装教程(ss-panel后台)

分享到:更多 ()

众享 抢沙发

评论前必须登录!