Procházet zdrojové kódy

移除V2RAY MU API

admin před 7 roky
rodič
revize
067591febd

+ 0 - 228
app/Http/Controllers/Muv2/NodeController.php

@@ -1,228 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Muv2;
-
-use App\Http\Controllers\Controller;
-use App\Http\Models\SsNode;
-use App\Http\Models\SsNodeInfo;
-use App\Http\Models\SsNodeLabel;
-use App\Http\Models\SsNodeOnlineLog;
-use App\Http\Models\User;
-use App\Http\Models\UserLabel;
-use App\Http\Models\UserTrafficLog;
-use App\Http\V2Ray\Generator;
-use Illuminate\Http\Request;
-use Response;
-
-class NodeController extends Controller
-{
-    protected static $userLevel;
-
-    // 获取节点用户列表
-    public function users(Request $request)
-    {
-        $nodeId = $request->route('id');
-
-        $node = SsNode::query()->where('id', $nodeId)->first(); // 节点是否存在
-        if (!$node) {
-            return Response::json(["ret" => 0], 400);
-        }
-
-        // 找出该节点的标签
-        $nodeLabels = SsNodeLabel::query()->where('node_id', $nodeId)->pluck('label_id');
-
-        // 找出有相同标签的用户
-        $userLabels = UserLabel::query()->whereIn('label_id', $nodeLabels)->pluck('user_id');
-
-        // 提取用户信息
-        $userIds = User::query()->whereIn('status', [0, 1])->where('enable', 1)->whereIn('id', $userLabels)->where('id', '<>', $this->systemConfig['free_node_users_id'])->pluck('id')->toArray();
-        $users = User::query()->where('id', '<>', $this->systemConfig['free_node_users_id'])->select(
-            "id", "username", "passwd", "t", "u", "d", "transfer_enable",
-            "port", "protocol", "obfs", "enable", "expire_time as expire_time_d", "method",
-            "v2ray_uuid", "v2ray_level", "v2ray_alter_id")->get();
-
-        $data = [];
-        foreach ($users as $user) {
-            $user['switch'] = 1;
-            $user['email'] = $user['username'];
-            $user['expire_time'] = strval((new \DateTime($user['expire_time_d']))->getTimestamp()); // datetime 转timestamp
-
-            if (in_array($user->id, $userIds)) {
-                $user->enable = 1;
-            } else {
-                $user->enable = 0;
-            }
-
-            // 用户信息
-            $user->v2ray_user = [
-                "uuid"     => $user->v2ray_uuid,
-                "email"    => sprintf("%[email protected]", $user->v2ray_uuid),
-                "alter_id" => $user->v2ray_alter_id,
-                "level"    => $user->v2ray_level,
-            ];
-
-            array_push($data, $user);
-        }
-
-        if ($this->systemConfig['is_free_node']) {
-            if ($this->systemConfig['free_node_id'] == $nodeId) {
-                $user = User::query()->whereIn('id', $userLabels)->where('id', $this->systemConfig['free_node_users_id'])->select(
-                    "id", "enable", "username", "passwd", "t", "u", "d", "transfer_enable",
-                    "port", "protocol", "obfs", "enable", "expire_time as expire_time_d", "method",
-                    "v2ray_uuid", "v2ray_level", "v2ray_alter_id")->first();
-
-                //datetime 转timestamp
-                $user['switch'] = 1;
-                $user['email'] = $user['username'];
-                $user['expire_time'] = strval((new \DateTime($user['expire_time_d']))->getTimestamp());
-
-                //v2ray用户信息
-                $user->v2ray_user = [
-                    "uuid"     => $user->v2ray_uuid,
-                    "email"    => sprintf("%[email protected]", $user->v2ray_uuid),
-                    "alter_id" => $user->v2ray_alter_id,
-                    "level"    => $user->v2ray_level,
-                ];
-
-                array_push($data, $user);
-            }
-        }
-
-        $load = '1';
-        $uptime = time();
-
-        $log = new SsNodeInfo();
-        $log->node_id = $nodeId;
-        $log->load = $load;
-        $log->uptime = $uptime;
-        $log->log_time = time();
-        $log->save();
-
-        return Response::json([
-            'msg'  => 'ok',
-            'data' => $data,
-        ]);
-    }
-
-    // 写在线用户日志
-    public function onlineUserLog(Request $request)
-    {
-        $nodeId = $request->route('id');
-        $count = $request->get('count');
-        $log = new SsNodeOnlineLog();
-        $log->node_id = $nodeId;
-        $log->online_user = $count;
-        $log->log_time = time();
-
-        if (!$log->save()) {
-            return Response::json([
-                "ret" => 0,
-                "msg" => "update failed"
-            ]);
-        }
-
-        return Response::json([
-            "ret" => 1,
-            "msg" => "ok",
-        ]);
-    }
-
-    // 节点信息
-    public function info(Request $request)
-    {
-        $nodeId = $request->route('id');
-        $load = $request->get('load');
-        $uptime = $request->get('uptime');
-
-        $log = new SsNodeInfo();
-        $log->node_id = $nodeId;
-        $log->load = $load;
-        $log->uptime = $uptime;
-        $log->log_time = time();
-
-        if (!$log->save()) {
-            return Response::json([
-                "ret" => 0,
-                "msg" => "update failed",
-            ]);
-        }
-
-        return Response::json([
-            "ret" => 1,
-            "msg" => "ok",
-        ]);
-    }
-
-    // PostTraffic
-    public function postTraffic(Request $request)
-    {
-        $nodeId = $request->route('id');
-        $input = $request->getContent();
-        $data = json_decode($input, true);
-
-        $node = SsNode::query()->where('id', $nodeId)->first();
-
-        foreach ($data as $vo) {
-            $user = User::query()->where('id', $vo['user_id'])->first();
-            if (!$user) {
-                continue;
-            }
-
-            $user->t = time();
-            $user->u = $user->u + ($vo['u'] * $node->traffic_rate);
-            $user->d = $user->d + ($vo['d'] * $node->traffic_rate);
-            $user->save();
-
-            // 记录流量日志
-            $this->addUserTrafficLog($vo['user_id'], $nodeId, $vo['u'], $vo['d'], $node->traffic_rate);
-        }
-
-        return Response::json([
-            'ret' => 1,
-            "msg" => "ok",
-        ]);
-    }
-
-    // V2ray Users
-    public function v2rayUsers(Request $request)
-    {
-        $nodeId = $request->route('id');
-
-        $node = SsNode::query()->where('id', $nodeId)->first();
-        $users = User::query()->whereIn('status', [0, 1])->where('enable', 1)->where('id', '<>', $this->systemConfig['free_node_users_id'])->get();
-
-        $v2ray = new Generator();
-        $v2ray->setPort($node->v2ray_port);
-
-        foreach ($users as $user) {
-            $email = sprintf("%[email protected]", $user->v2ray_uuid);
-            $v2ray->addUser($user->v2ray_uuid, $user->v2ray_level, $user->v2ray_alter_id, $email);
-        }
-
-        if ($this->systemConfig['is_free_node']) {
-            if ($request->route('id') == $this->systemConfig['free_node_id']) {
-                $freeuser = User::query()->where('enable', 1)->where('id', $this->systemConfig['free_node_users_id'])->first();
-                $email = sprintf("%[email protected]", $freeuser->v2ray_uuid);
-                $v2ray->addUser($freeuser->v2ray_uuid, $freeuser->v2ray_level, $freeuser->v2ray_alter_id, $email);
-            }
-        }
-
-        return Response::json($v2ray->getArr());
-    }
-
-    // 写入流量日志
-    private function addUserTrafficLog($userId, $nodeId, $u, $d, $rate)
-    {
-        $totalTraffic = flowAutoShow(($u + $d) * $rate);
-        $traffic = new UserTrafficLog();
-        $traffic->user_id = $userId;
-        $traffic->u = $u;
-        $traffic->d = $d;
-        $traffic->node_id = $nodeId;
-        $traffic->rate = $rate;
-        $traffic->traffic = $totalTraffic;
-        $traffic->log_time = time();
-
-        return $traffic->save();
-    }
-}

+ 0 - 71
app/Http/Controllers/Muv2/UserController.php

@@ -1,71 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Muv2;
-
-use App\Http\Controllers\Controller;
-use App\Http\Models\SsNode;
-use App\Http\Models\User;
-use App\Http\Models\UserTrafficLog;
-use Illuminate\Http\Request;
-use Response;
-
-class UserController extends Controller
-{
-    // 用户列表
-    public function index()
-    {
-        $users = User::query()->where('enable', 1)->select(
-            "id", "username", "passwd", "t", "u", "d", "transfer_enable",
-            "port", "protocol", "obfs", "enable", "expire_time as expire_time_d", "method",
-            "v2ray_uuid", "v2ray_level", "v2ray_alter_id")->get();
-
-        foreach ($users as $user) {
-            $user['switch'] = 1;
-            $user['email'] = $user['username'];
-            $user['expire_time'] = strval((new \DateTime($user['expire_time_d']))->getTimestamp()); // datetime 转timestamp
-        }
-
-        return Response::json(["data" => $users]);
-    }
-
-    // 更新流量到user表
-    public function addTraffic(Request $request)
-    {
-        $userId = $request->route('id');
-        $u = $request->get('u');
-        $d = $request->get('d');
-        $nodeId = $request->get('node_id');
-
-        $node = SsNode::query()->where('id', $nodeId)->first();
-        $user = User::query()->where('id', $userId)->first();
-
-        $user->t = time();
-        $user->u = $user->u + ($u * $node->traffic_rate);
-        $user->d = $user->d + ($d * $node->traffic_rate);
-
-        if (!$user->save()) {
-            return Response::json(["msg" => "update failed",], 400);
-        }
-
-        // 记录流量日志
-        $this->addUserTrafficLog($userId, $nodeId, $u, $d, $node->traffic_rate);
-
-        return Response::json(['ret' => 1, "msg" => "ok",]);
-    }
-
-    // 写入流量日志
-    private function addUserTrafficLog($userId, $nodeId, $u, $d, $rate)
-    {
-        $totalTraffic = flowAutoShow(($u + $d) * $rate);
-        $traffic = new UserTrafficLog();
-        $traffic->user_id = $userId;
-        $traffic->u = $u;
-        $traffic->d = $d;
-        $traffic->node_id = $nodeId;
-        $traffic->rate = $rate;
-        $traffic->traffic = $totalTraffic;
-        $traffic->log_time = time();
-
-        return $traffic->save();
-    }
-}

+ 0 - 1
app/Http/Kernel.php

@@ -61,7 +61,6 @@ class Kernel extends HttpKernel
         'user' => \App\Http\Middleware\User::class,
         'forbidden' => \App\Http\Middleware\Forbidden::class,
         'affiliate' => \App\Http\Middleware\Affiliate::class,
-        'Muv2' => \App\Http\Middleware\Muv2::class
 
     ];
 }

+ 0 - 10
app/Http/V2ray/EmptyClass.php

@@ -1,10 +0,0 @@
-<?php
-
-
-namespace App\Http\V2Ray;
-
-
-class EmptyClass
-{
-
-}

+ 0 - 94
app/Http/V2ray/Generator.php

@@ -1,94 +0,0 @@
-<?php
-
-
-namespace App\Http\V2Ray;
-
-
-use App\Http\V2Ray\EmptyClass;
-
-//https://www.v2ray.com/ui_client/service.html
-class Generator
-{
-    private $arr = [
-        "log"            => [
-            "access"   => "/var/log/access.log",
-            "error"    => "/var/log/error.log",
-            "loglevel" => "warning"
-        ],
-        "inbound"        => [
-            "port"     => 8300,
-            "protocol" => "vmess",
-            "settings" => [
-                "clients" => [
-                ]
-            ]
-        ],
-        "outbound"       => [
-            "protocol" => "freedom",
-            // "settings" => ,
-        ],
-        "inboundDetour"  => [],
-        "outboundDetour" => [
-            [
-                "protocol" => "blackhole",
-                // "settings" => [],
-                "tag"      => "blocked"
-            ]
-        ],
-        "routing"        => [
-            "strategy" => "rules",
-            "settings" => [
-                "rules" => [
-                    [
-                        "type"        => "field",
-                        "ip"          => [
-                            "0.0.0.0/8",
-                            "10.0.0.0/8",
-                            "100.64.0.0/10",
-                            "127.0.0.0/8",
-                            "169.254.0.0/16",
-                            "172.16.0.0/12",
-                            "192.0.0.0/24",
-                            "192.0.2.0/24",
-                            "192.168.0.0/16",
-                            "198.18.0.0/15",
-                            "198.51.100.0/24",
-                            "203.0.113.0/24",
-                            "::1/128",
-                            "fc00::/7",
-                            "fe80::/10"
-                        ],
-                        "outboundTag" => "blocked"
-                    ]
-                ]
-            ]
-        ]
-    ];
-
-    public function addUser($uuid, $level, $alertId, $email)
-    {
-        $user = [
-            "id"      => $uuid,
-            "level"   => $level,
-            "alterId" => $alertId,
-            "email"   => $email
-        ];
-        array_push($this->arr["inbound"]['settings']['clients'], $user);
-    }
-
-    public function setPort($port)
-    {
-        $this->arr['inbound']['port'] = $port;
-    }
-
-    public function getArr()
-    {
-        return $this->arr;
-    }
-
-    public function __construct()
-    {
-        $this->arr["outbound"]["settings"] = new EmptyClass();
-        $this->arr["outboundDetour"][0]["settings"] = new EmptyClass();
-    }
-}

+ 0 - 11
routes/web.php

@@ -132,14 +132,3 @@ Route::group(['middleware' => ['forbidden', 'user']], function () {
     Route::get('payment/{sn}', 'PaymentController@detail'); // 支付单详情
 
 });
-
-// V2Ray
-Route::group(['namespace' => 'Muv2', 'prefix' => 'mu/v2', 'middleware' => ['Muv2']], function () {
-    Route::get('users', 'UserController@index');
-    Route::post('users/{id}/traffic', 'UserController@addTraffic');
-    Route::post('nodes/{id}/online_count', 'NodeController@onlineUserLog');
-    Route::any('nodes/{id}/info', 'NodeController@info');
-    Route::get('nodes/{id}/users', 'NodeController@users');
-    Route::get('nodes/{id}/v2rayUsers', 'NodeController@v2rayUsers');
-    Route::post('nodes/{id}/traffic', 'NodeController@postTraffic');
-});