/v2rayMS

v2ray whmcs 多用户后端

Primary LanguagePythonMIT LicenseMIT

仅供测试使用

效果可查看https://proxy.npist.com
有问题请联系npist35@gmail.com
telegram:https://t.me/Npist

客户端项目

https://github.com/Npist/v2rayMSC
请根据该项目说明配置./whmcs/clientapi.php中的RSA密钥字符串

更新日志

2019.1.19

1.数据加密,保证账户下发到节点过程中的数据安全(需配置RSA公私钥,详见使用说明)
2.启动参数,无需修改程序本身(详细参数见帮助 -h )

2018.10.3

修复服务端若干BUG

2018.9.22

添加ClientApi模块,为计划中的客户端提供接口
添加/更新开源协议(MIT)
whmcs modules自GPLv3开源项目修改而来并以WHMCS插件形式存在,故继续遵守GPLv3协议

2018.9.3

添加流量统计、最后在线时间
更新数据库结构
添加示例v2ray配置文件(配合流量统计用)

2018.8.21

优化socket传输中的数据量

2018.8.13

添加whmcs模块
修改自https://github.com/kesuki/whmcs-shadowsocks-plugin
安装请参考http://www.mak-blog.com/whmcs-shadowsocks-plugin.html

2018.8.1

初始版本

程序结构

最初构想是直接有客户端访问数据库,但是需要开放数据库的3306端口到公网
安全起见,写了两个程序,通过数据库服务器上的程序分析用户账户数据,再下发到节点服务器
全程使用rsa加密对于机器性能也有影响,所以使用rsa对随机生成的高强度AES密码进行加密,下发到节点服务器以后使用aes进行数据加密

兼容性说明

项目中提供的前端仅为简单演示,但也具备了大部分基础功能。
如果需要更完整的功能,请使用其他更加完善的前端。
需要自行修改服务端v2server.py中对应的数据库字段。

v2ray多用户后端安装说明

建议使用Python3.6运行
使用前请自行安装python的以下模块

PyMySQL (0.9.2)
rsa (3.4.2)
cryptography (2.3.1)
节点服务器运行前请参考官方文档安装v2ray
安装命令行如下
bash <(curl -L -s https://install.direct/go.sh)

RSA密钥对生成

项目根目录下运行python3 rsa.py 将会在同位置生成public.pem和private.pem 放入对应位置即可

Server目录里的内容及public.pem存放进数据库服务器

user.sql恢复进mysql或者mariadb
sqlconn.json为数据库连接文件 根据自己的mysql数据库配置
执行以下命令启动
python3 v2rayMS_Server.py
后台运行建议使用screen新建session
不带启动参数将以默认参数启动,即只监听本地IP

启动参数说明

-s --serverip       服务器监听地址范围 默认为本地127.0.0.1 不限制设置为0.0.0.0
-p --port           服务器监听端口 默认为8854 请打开防火墙对应端口

-a --aeslength      AES加密长度 默认为128 可设置为128/256/512
                    客户端需一致

Client目录里的内容及private.pem存放进节点服务器

执行以下命令启动
python3 v2rayMS_Client.py
后台运行建议使用screen新建session
不带启动参数将以默认参数启动,即server端运行在同一服务器上

启动参数说明

v2rayMS相关

-u --updatetime    数据刷新时间 默认为50秒
-s --serverip      服务器IP
-p --port          服务器端口

-a --aeslength     AES加密长度 默认为128 可设置为128/256/512
                   客户端需一致

v2ray-core相关

-o --v2ray         V2ray-core程序位置
-c --config        V2ray配置文件位置

v2ray用户相关

-l --level         v2ray默认用户level
-i --alterid       v2ray默认用户alterid

v2ray流量统计相关

-l --v2ctl         V2ctl程序位置
-t --v2cltport     V2ctl端口
-m --traffic       流量统计开关 默认为关

使用流量统计请根据官方文档配置config.json,用户level v2ctl v2ctl端口均有关系
client目录中提供的config.json为演示配置,可参考

示例启动

服务器192.168.0.1(数据库,whmcs等):
python3 v2ray_Server.py -s 0.0.0.0 -p 9000
即在9000端口上监听所有来源

节点服务器192.168.2.1:
python3 v2ray_client.py -u 100 -s 192.168.0.1 -p 9000 -m 1
即连接到192.168.0.1的服务器上通过9000端口获取数据,刷新时间为100秒