whmcs模块的shadowsocks插件

之前想弄一个shadowsocks的插件,发现网上要不是frankwei98开发的这种需要架设API的,就是soft-wiki这种功能极其简陋,UI不友好的。然后就又在网上找了一些传说中shadowsocks 3.x版本的安装,发现里面的代码被改得乱七八糟的,明显是不想给人用的,然后自己能看懂一点代码,就这几天把这些代码改好,然后放出来共享一下。

上面这个初始化函数就是生成一大串数据库检索要用到的函数,就是各种插入,更新的函数。还有,这个shadowsocks数据库中有两个表,一个recycle_bin,一个是user,其中recycle_bin就是为了回收端口,user表中删除的端口先放到recycle_bin中,然后新增用户优先从recycle_bin中检索,recycle_bin空了才用新端口。

上面的代码是shadowsocks插件的配置页面代码,就是Setup-Products/Services-Products/Services-Create a New Product-Module Settings配置的信息,这里自定义了6个参数,到时候就是按顺序$params[configoption1]到$params[configoption6]这样来定位,其中第一个参数就是shadowsocks数据库名,第二个参数是重置流量,就是在数据库中多了一个reset参数需要配置,其实到时候就看你的重置逻辑怎么写而已,第三个是最大流量,第四个是授权密钥,感觉这个插件之前是收费的,在initialize函数中有一个认证密钥的过程,那认证过程已经删掉,留空不填就可以了,第五个是起始端口,就是shadowsocks的端口从哪个开始分配,第六个是线路列表,格式就是xxx服务器地址加密方式协议混淆,这个参数的读取代码写得有点问题,添加多个服务器时,混淆后面要加,最后一行才不用加,因为我是用来分割字符串,然后5个参数读一下这样写的。

上面就是开通账号的函数,逻辑如下:拿到serverip、数据库名、serverusername和serverpassword后,就开始连接数据库,由于whmcs在开通每个服务时会分配一个serviceid,就先用数据库查找是否存在相同的serviceid,这一部分使用ALREADY_EXISTS来检索。如果没有,就继续执行。然后再读取params[configoption3]为设定的最大带宽。然后就开始在回收站表中看是否有回收的port,优先使用,没有就检索user表,在现有port的值上再加1,如果user表为空,就设定params[configoption5]的端口为初始端口。然后就使用CREATE_ACCOUNT来插入一个user表。成功创建后,还要回头看看是否用了回收站表的端口,用了的话就要从回收站中删除相应的port。

这个前端显示的文件就更简单了,就是大部分是html、css、js代码,中间夹杂着几个数据,就是shadowsocks_ClientArea函数传递过来的usage和nodes结构体。

默认是使用breakwa11的shadowsocks-rss,详细配置说明在此,其实由于rss的混淆和协议均能选择兼容版本,所以能一次提供shadowsocks原版和shadowsocks-rss两种服务,如果实在只想用原版,就是线路配置的地方“xxx服务器地址加密方式协议混淆”变成“xxx服务器地址加密方式”即可。

在Custom Fields添加自定义密码,如图一字不差的填写。 大功告成,收工,shadowsocks插件代码

已更新github代码,新增cron.php重置流量脚本,重置流量的代码使用php语言编写,可以直接放在搭建whmcs服务的vps上,建议不要放在web站点目录上,建议修改cron.php文件权限为644。

本博客已不再维护Github上的项目,而且该项目也进行了多次的版本迭代,如有疑问,请在Github上提交Issues。

未经允许不得转载:主机宝贝 » whmcs模块的shadowsocks插件

评论 抢沙发

评论前必须登录!