Coder Social home page Coder Social logo

web-tools-store / shadowsocks-count-system Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xxgb/shadowsocks-count-system

0.0 2.0 0.0 13.81 MB

A shadowsocks order and count system based on PHP + MySQL,require SS python version or any。

PHP 96.38% Shell 0.05% HTML 1.39% CSS 2.11% JavaScript 0.08%

shadowsocks-count-system's Introduction

shadowsocks count system

This app is of system of counting data usage from every port provied by shadowsocks, and depending on the data, a order system has been built, it's payment depends on WeChat, Paypal now is not provied.

此应用是一个用于统计shadowsocks每个端口数据的网站,在统计数据的基础上,建成了一套订单系统,订单系统基于微信支付,目前不支持Paypal。

随着SS被长城防火墙攻破,下线了所有的SS服务,所以开源一下呗,有很多地方其实不完善。一些地方被替换和去掉,所以本应用无法运行,需要的花请参考注释和代码稍作修改即可。

在设计一套ss交易系统的时候,优先考虑的是使用目前的开源方案ss-panel,但是,发现了一些问题,所以自己重新写了一套:

  • 基于PHP+mysql

  • 应用iptables统计流量

  • crontab来定时刷新计费系统和验证系统

  • 微信二维码扫码支付

在设计之初,考虑了如下问题:

如果要摆脱对框架的限制,我们应该拥有自己的完全控制的管理系统,才能更高效的进行开发。 其实,主要的问题,就在于这么几个方面:

1.用户的管理和端口映射 ---解决方法:用户和端口绑定

2.流量统计 ---解决方法:iptables

3.重启后数据的保存 ---解决方法:更改脚本

4.其他的系统功能,如付款,邮件,邀请码,但是跟 ss 无关

为什么要启动这个项目?

1.加深对Shadowsocks的理解

2.避免出现框架问题,代码在我们手里掌握,可以用最基本的方式解决所有的问题

数据库结构:

1.user,用户数据表:用户的最基本信息,无关shadowsocks服务,基本信息注册逻辑直接写入

id username email password ss_password code reg_time recommender_email
自增 ID 用户名 邮箱 密码 ss密码 验证码 注册时间 邀请者

2.node_data_record流量统计表:专门存放流量统计,此表的用户信息在设置的时候写入,此表的流量统计由脚本定时执行来刷新,此表只记录单个节点信息

id uid ip port in_data out_data
自增 ID 用户ID,强绑定,不删除 机器节点 端口号 输入流量 输出流量

3.user_data_contronl用户流量控制表,用来控制是否停机,以及根据过期月份,可以统计活跃用户数量

id uid expires_month month_limit extra_data
自增 ID 用户 1号生效,到期月份,根据购买不同,添加的月份的数量也不同 月流量限制 流量叠加包

4.orders, 订单表:用来生成流量控制表

id uid type price 支付状态
自增 ID 用户 订单种类为数字或字符串,对应多少个月和每个月多少流量:1,月套餐,在用户流量的到期日期加一个月;2.年套餐,加12个月 3.月流量叠加包状态给个特殊值, 价格 微信支付回掉

5.激活码表:专用的激活码或者优惠码

id code count_limit count_used expire_time type
自增 ID 激活码明文或者密位,如“买一送一” 使用次数限制 已经使用次数 过期时间 活动类型

6.节点表(二期):用户注册后,在得到 ip 时候从这里获取两个节点,在一期,IP 只有一个,写死即可,二期实现两个,多个里面根据用户数量和区域分配两个

id address node_ip user_count_limit country
自增 ID 域名 ip 用户数量 国家地区
架构设计;
  • master 机器承载 web 和 sql 服务
  • node 机器仅仅提供 shadowsocks 服务,以及流量统计的 php 服务;只需要这两个服务,不允许其他服务,其他诸如定时,统计等全部由 master 实现,简化 node 部署
  • master 定时访问某个节点,得到该节点下的所有用户端口的流量,然后根据 ip 和端口号将流量直接写入流量统计表,如果一个用户有两个或者多个节点,他们并不冲突,分别写入即可
  • 根据流量统计表,我们能确定这个用户下面的多个节点的流量,统计一下,和流量控制表对比即可
  • 流量控制表,由用户购买行为来生成
产品定位:

低价,快速,稳定,安全的 VPN 代理。

如何保持匿名:

(1)注册一个很快销毁的匿名邮箱 (2)用此邮箱注册三个账户:谷歌(统计),百度(统计),vultr(VPS)

代码逻辑:

(1)配置 json 由数据库未过期用户生成 (2)写入配置,重启服务 (3)每天自动化检查一次各用户流量,超过停机,每天检查一次过期日期,过期停机

shadowsocks-count-system's People

Contributors

leiquan avatar

Watchers

James Cloos avatar Weiya avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.