折腾了一天遇见了各种怪异问题终于在 Centos 和 AMH 环境中成功搭建了Shadowsocks 多用户前后台

首先介绍一下我 AMH 5.1  环境所使用的组件

以下这几项应该属于是必装

php-5.4.41
nginx-generic-1.6.0
mysql-generic-5.5.40
pdo_mysql-1.0

以下几项建议安装因为比较常用

eAccelerator
zendx
mysqli-1.5
sockets-1.0
mcrypt-1.0
soap-1.0

具体 AMH 环境安装步骤不在啰嗦很简单,很傻瓜 。

但是由于AMH 的特殊可以可以同时运行多个环境导致在 SSH 或者 python 中无法正常链接 MySQL

具体解决办法参见 :

关于 AMH 环境SSH中无法链接 MYSQL 的解决办法

下面开始安装 Shadowsocks

1.安装必要组件

yum clean all
yum update
yum install m2crypto python-setuptools git -y
easy_install pip supervisor
pip install cymysql

2.下载 Shadowsocks python 多用户版

git clone -b manyuser https://github.com/breakwa11/shadowsocks.git

3.切换目录编辑 Shadowsocks 数据库链接信息

cd /root/shadowsocks
vi Config.py

4.创建数据库导入数据库。这里不再累赘 (我直接用 phpMyAdmin 创建并导入)

5.测试运行

python server.py

6.配置supervisord进程守护

echo_supervisord_conf > /etc/supervisord.conf

7.编辑supervisord.conf向文件末尾添加配置信息

vi /etc/supervisord.conf
[program:shadowsocks]
command=python /root/shadowsocks/server.py -c /root/shadowsocks/config.json
autostart = true
autorestart = true
user=root
stdout_logfile = /tmp/shadowsocks.log
stderr_logfile = /tmp/shadowsocks_err.log

8.最后设置开机启动

vi /etc/rc.local

在末尾添加

supervisord

 

supervisor控制命令
supervisorctl start shadowsocks //开始shadowsocks
supervisorctl stop shadowsocks //终止shadowsocks
supervisorctl restart shadowsocks //重启shadowsocks
supervisorctl //查看运行状态
Shadowsocks开启UDP方法:修改server_pool.py去掉以下几行注释
self.udp_servers_pool = {}
udp_server = udprelay.UDPRelay(a_config, self.dns_resolver, False)
udp_server.add_to_loop(self.loop)
self.udp_servers_pool.update({port: udp_server})
收费节点设置
普通用户plan A,付费用户plan B。
然后到VIP节点的后端修改db_transfer.py,在81行
SELECT port, u, d, transfer_enable, passwd, switch, enable FROM user后面加上where plan=’B’
SELECT port, u, d, transfer_enable, passwd, switch, enable FROM user where plan=’B’
优化
vi /etc/profile
#加到最后面
ulimit -n 65535
#刷新配置
source /etc/profile

接下来安装 SS-Panel

1.下载 SS-Panel

git clone https://github.com/orvice/ss-panel.git  front

2.修改配置文件 /lib/config-simple.php 改名为 config.php 并设置数据库信息 (这里注意因为是要和 Shadowsocks 对接所以要设置 Shadowsocks 同一个数据库)

3.把SQL目录中的 SQL 文件导入 数据库 完成安装

其实在使用过程中发现 SS-Panel 代码写的确实不敢恭维。但是开源精神可嘉。暂不做过多评论

下面详细说下修复几个严重错误解决后台无法设置用户信息的地方

> 1 . 替换 admin/user_edit.php JS 部分 (原因 post 字段 user_id 写成了 uid 并且页面没有引入 JQuery )

> 2. 修改 admin/_user_edit.php (修复流量设置单位换算)

$transfer_enable = $_POST['transfer_enable'];
//替换成
$transfer_enable = $_POST['transfer_enable']*1024*1024*1024;

> 3. 修改 lib/Ss/User/User.php (修复 updateUser 拼写错误)

     function updateUser($name,$email,$passwd,$transfer_enable,$invite_num){
         return $this->db->update($this->table,[
             "user_name" => $name,
             "email" => $email,
             "passwd" => $passwd,
             "transfer_enable" => $transfer_enable,
             "invite_num" => $invite_num
         ],[
             "uid" => $this->uid
         ]);
     }

 

最后安装一下 net-speeder 神器 原因你懂得 我已经做好了一键安装

1.安装

wget --no-check-certificate https://raw.githubusercontent.com/x91270/Net_Speeder/master/netspeeder.sh

sh netspeeder.sh

2.启动

service netspeederd start

3.停止

service netspeederd stop

 

All Done . GoodLuck