Răsfoiți Sursa

Merge pull request #955 from rc452860/master

节点自动检测开关
Bruskyii Panda 7 ani în urmă
părinte
comite
126c378abf

+ 1 - 1
app/Console/Commands/AutoCheckNodeStatus.php

@@ -45,7 +45,7 @@ class AutoCheckNodeStatus extends Command
     {
         $title = "节点异常警告";
 
-        $nodeList = SsNode::query()->where('status', 1)->get();
+        $nodeList = SsNode::query()->where('status', 1)->where('is_tcp_check',1)->get();
         foreach ($nodeList as $node) {
             $tcpCheck = $this->tcpCheck($node->ip);
             if (false !== $tcpCheck) {

+ 3 - 1
app/Http/Controllers/AdminController.php

@@ -543,6 +543,7 @@ class AdminController extends Controller
                 $ssNode->single_obfs = $request->get('single') ? $request->get('single_obfs') : '';
                 $ssNode->sort = intval($request->get('sort', 0));
                 $ssNode->status = intval($request->get('status', 1));
+                $ssNode->is_tcp_check = intval($request->get('is_tcp_check',1));
                 $ssNode->save();
 
                 // 建立分组关联
@@ -644,7 +645,8 @@ class AdminController extends Controller
                     'single_protocol' => $request->get('single') ? $request->get('single_protocol') : '',
                     'single_obfs'     => $request->get('single') ? $request->get('single_obfs') : '',
                     'sort'            => intval($request->get('sort', 0)),
-                    'status'          => intval($request->get('status'))
+                    'status'          => intval($request->get('status')),
+                    'is_tcp_check'    => intval($request->get('is_tcp_check'))
                 ];
 
                 SsNode::query()->where('id', $id)->update($data);

+ 12 - 1
resources/views/admin/addNode.blade.php

@@ -122,6 +122,16 @@
                                                             </select>
                                                         </div>
                                                     </div>
+                                                    <div class="form-group">
+                                                        <label for="is_tcp_check" class="col-md-3 control-label">定时检测</label>
+                                                        <div class="col-md-8">
+                                                            <select class="form-control" name="is_tcp_check" id="is_tcp_check">
+                                                                <option value="1" selected>开启</option>
+                                                                <option value="0">关闭</option>
+                                                            </select>
+                                                            <span class="help-block"> 启用后会定时检测服务器的连通性 </span>
+                                                        </div>
+                                                    </div>
                                                     <hr />
                                                     <div class="form-group">
                                                         <label for="single" class="col-md-3 control-label">单端口</label>
@@ -378,12 +388,13 @@
             var single_obfs = $('#single_obfs').val();
             var sort = $('#sort').val();
             var status = $('#status').val();
+            var is_tcp_check = $('#is_tcp_check').val();
 
             $.ajax({
                 type: "POST",
                 url: "{{url('admin/addNode')}}",
                 async: false,
-                data: {_token:'{{csrf_token()}}', name: name, labels:labels, group_id:group_id, country_code:country_code, server:server, ip:ip, ipv6:ipv6, desc:desc, method:method, traffic_rate:traffic_rate, protocol:protocol, protocol_param:protocol_param, obfs:obfs, obfs_param:obfs_param, bandwidth:bandwidth, traffic:traffic, monitor_url:monitor_url, is_subscribe:is_subscribe, ssh_port:ssh_port, compatible:compatible, single:single, single_force:single_force, single_port:single_port, single_passwd:single_passwd, single_method:single_method, single_protocol:single_protocol, single_obfs:single_obfs, sort:sort, status:status},
+                data: {_token:'{{csrf_token()}}', name: name, labels:labels, group_id:group_id, country_code:country_code, server:server, ip:ip, ipv6:ipv6, desc:desc, method:method, traffic_rate:traffic_rate, protocol:protocol, protocol_param:protocol_param, obfs:obfs, obfs_param:obfs_param, bandwidth:bandwidth, traffic:traffic, monitor_url:monitor_url, is_subscribe:is_subscribe, ssh_port:ssh_port, compatible:compatible, single:single, single_force:single_force, single_port:single_port, single_passwd:single_passwd, single_method:single_method, single_protocol:single_protocol, single_obfs:single_obfs, sort:sort, status:status, is_tcp_check:is_tcp_check},
                 dataType: 'json',
                 success: function (ret) {
                     layer.msg(ret.message, {time:1000}, function() {

+ 12 - 1
resources/views/admin/editNode.blade.php

@@ -121,6 +121,16 @@
                                                             </select>
                                                         </div>
                                                     </div>
+                                                    <div class="form-group">
+                                                        <label for="is_tcp_check" class="col-md-3 control-label">定时检测</label>
+                                                        <div class="col-md-8">
+                                                            <select class="form-control" name="is_tcp_check" id="is_tcp_check">
+                                                                <option value="1" {{$node->is_tcp_check == '1' ? 'selected' : ''}}>开启</option>
+                                                                <option value="0" {{$node->is_tcp_check == '0' ? 'selected' : ''}}>关闭</option>
+                                                            </select>
+                                                            <span class="help-block"> 启用后会定时检测服务器的连通性 </span>
+                                                        </div>
+                                                    </div>
                                                     <hr />
                                                     <div class="form-group">
                                                         <label for="single" class="col-md-3 control-label">单端口</label>
@@ -379,12 +389,13 @@
             var single_obfs = $('#single_obfs').val();
             var sort = $('#sort').val();
             var status = $('#status').val();
+            var is_tcp_check = $('#is_tcp_check').val();
 
             $.ajax({
                 type: "POST",
                 url: "{{url('admin/editNode')}}",
                 async: false,
-                data: {_token:_token, id:id, name: name, labels:labels, group_id:group_id, country_code:country_code, server:server, ip:ip, ipv6:ipv6, desc:desc, method:method, traffic_rate:traffic_rate, protocol:protocol, protocol_param:protocol_param, obfs:obfs, obfs_param:obfs_param, bandwidth:bandwidth, traffic:traffic, monitor_url:monitor_url, is_subscribe:is_subscribe, ssh_port:ssh_port, compatible:compatible, single:single, single_force:single_force, single_port:single_port, single_passwd:single_passwd, single_method:single_method, single_protocol:single_protocol, single_obfs:single_obfs, sort:sort, status:status},
+                data: {_token:_token, id:id, name: name, labels:labels, group_id:group_id, country_code:country_code, server:server, ip:ip, ipv6:ipv6, desc:desc, method:method, traffic_rate:traffic_rate, protocol:protocol, protocol_param:protocol_param, obfs:obfs, obfs_param:obfs_param, bandwidth:bandwidth, traffic:traffic, monitor_url:monitor_url, is_subscribe:is_subscribe, ssh_port:ssh_port, compatible:compatible, single:single, single_force:single_force, single_port:single_port, single_passwd:single_passwd, single_method:single_method, single_protocol:single_protocol, single_obfs:single_obfs, sort:sort, status:status, is_tcp_check:is_tcp_check},
                 dataType: 'json',
                 success: function (ret) {
                     layer.msg(ret.message, {time:1000}, function() {

+ 4 - 0
sql/update/20180928.sql

@@ -0,0 +1,4 @@
+ALTER TABLE `ss_node` 
+ADD COLUMN `is_tcp_check` tinyint(4) NOT NULL DEFAULT 1 COMMENT '是否开启检测: 0-不开启、1-开启' AFTER `ssh_port`,
+DROP PRIMARY KEY,
+ADD PRIMARY KEY (`id`, `single_obfs`) USING BTREE;