Explorar o código

修正当节点是单端口时用户配置信息错误

zhangjiangbin %!s(int64=8) %!d(string=hai) anos
pai
achega
a0eead80ce
Modificáronse 2 ficheiros con 28 adicións e 57 borrados
  1. 23 41
      app/Http/Controllers/AdminController.php
  2. 5 16
      resources/views/admin/export.blade.php

+ 23 - 41
app/Http/Controllers/AdminController.php

@@ -988,13 +988,19 @@ class AdminController extends BaseController
         $nodeList = SsNode::query()->paginate(10)->appends($request->except('page'));
         foreach ($nodeList as &$node) {
             // 生成ssr scheme
+            $obfs_param = $node->single ? '' : base64_encode($user->obfs_param);
+            $protocol_param = $node->single ? base64_encode($user->port . ':' . $user->passwd) : base64_encode($user->protocol_param);
+
             $ssr_str = '';
-            $ssr_str .= $node->server . ':' . $user->port;
-            $ssr_str .= ':' . $user->protocol . ':' . $user->method;
-            $ssr_str .= ':' . $user->obfs . ':' . $this->base64url_encode($user->passwd);
-            $ssr_str .= '/?obfsparam=' . $this->base64url_encode($user->obfs_param);
-            $ssr_str .= '&=protoparam' . $this->base64url_encode($user->protocol_param);
-            $ssr_str .= '&remarks=' . $this->base64url_encode($node->name);
+            $ssr_str .= $node->server . ':' . ($node->single ? $node->single_port : $user->port);
+            $ssr_str .= ':' . ($node->single ? $node->single_protocol : $user->protocol) . ':' . ($node->single ? $node->single_method : $user->method);
+            $ssr_str .= ':' . ($node->single ? 'tls1.2_ticket_auth' : $user->obfs) . ':' . ($node->single ? base64_encode($node->single_passwd) : base64_encode($user->passwd));
+            $ssr_str .= '/?obfsparam=' . $obfs_param;
+            $ssr_str .= '&protoparam=' . $protocol_param;
+            $ssr_str .= '&remarks=' . base64_encode($node->name);
+            $ssr_str .= '&group=' . base64_encode('节点');
+            //$ssr_str .= '&udpport=0';
+            //$ssr_str .= '&uot=0';
             $ssr_str = $this->base64url_encode($ssr_str);
             $ssr_scheme = 'ssr://' . $ssr_str;
 
@@ -1002,47 +1008,23 @@ class AdminController extends BaseController
             $ss_str = '';
             $ss_str .= $user->method . ':' . $user->passwd . '@';
             $ss_str .= $node->server . ':' . $user->port;
-            $ss_str = $this->base64url_encode($ss_str) . '#VPN'; // 加入#VPN是为了shadowrocket和ssr安卓客户端扫描时带上节点名称,windows c#版无效
+            $ss_str = $this->base64url_encode($ss_str) . '#' . 'VPN'; // 加入#VPN是为了shadowrocket和ssr安卓客户端扫描时带上节点名称,windows c#版无效
             $ss_scheme = 'ss://' . $ss_str;
 
-            // 生成json配置信息
-            $config = <<<CONFIG
-{
-    "remarks" : "{$node->name}",
-    "server" : "{$node->server}",
-    "server_port" : {$user->port},
-    "server_udp_port" : 0,
-    "password" : "{$user->passwd}",
-    "method" : "{$user->method}",
-    "protocol" : "{$user->protocol}",
-    "protocolparam" : "{$user->protocol_param}",
-    "obfs" : "{$user->obfs}",
-    "obfsparam" : "{$user->obfs_param}",
-    "remarks_base64" : "",
-    "group" : "VPN",
-    "enable" : true,
-    "udp_over_tcp" : false
-}
-CONFIG;
-
             // 生成文本配置信息
-            $txt = <<<TXT
-服务器:{$node->server}
-远程端口:{$user->port}
-本地端口:1080
-密码:{$user->passwd}
-加密方法:{$user->method}
-协议:{$user->protocol}
-协议参数:{$user->protocol_param}
-混淆方式:{$user->obfs}
-混淆参数:{$user->obfs_param}
-路由:绕过局域网及中国大陆地址
-TXT;
+            $txt = "服务器:" . $node->server . "\r\n";
+            $txt .= "远程端口:" . ($node->single ? $node->single_port : $user->port) . "\r\n";
+            $txt .= "密码:" . ($node->single ? $node->single_passwd : $user->passwd) . "\r\n";
+            $txt .= "加密方法:" . ($node->single ? $node->single_method : $user->method) . "\r\n";
+            $txt .= "协议:" . ($node->single ? $node->single_protocol : $user->protocol) . "\r\n";
+            $txt .= "协议参数:" . ($node->single ? $user->port.':'.$user->passwd : $user->protocol_param) . "\r\n";
+            $txt .= "混淆方式:" . ($node->single ? 'tls1.2_ticket_auth' : $user->obfs) . "\r\n";
+            $txt .= "混淆参数:" . ($node->single ? '' : $user->obfs_param) . "\r\n";
+            $txt .= "本地端口:1080\r\n路由:绕过局域网及中国大陆地址";
 
             $node->txt = $txt;
-            $node->json = $config;
             $node->ssr_scheme = $ssr_scheme;
-            $node->ss_scheme = $ss_scheme;
+            $node->ss_scheme = $node->compatible ? $ss_scheme : ''; // 节点兼容原版才显示
         }
 
         $view['nodeList'] = $nodeList;

+ 5 - 16
resources/views/admin/export.blade.php

@@ -36,11 +36,14 @@
                                 <tbody>
                                     @foreach ($nodeList as $node)
                                         <tr>
-                                            <td> {{$node->name}} @if ($node->compatible) <span class="label label-warning"> 兼容 </span> @endif </td>
+                                            <td>
+                                                {{$node->name}}
+                                                @if ($node->compatible) <span class="label label-info"> 兼 </span> @endif
+                                                @if ($node->single) <span class="label label-danger"> 单 </span> @endif
+                                            </td>
                                             <td>
                                                 <a class="btn btn-sm green btn-outline" data-toggle="modal" href="#txt_{{$node->id}}"> 文本 </a>
                                                 <a class="btn btn-sm green btn-outline" data-toggle="modal" href="#scheme_{{$node->id}}"> SCHEME </a>
-                                                <a class="btn btn-sm green btn-outline" data-toggle="modal" href="#json_{{$node->id}}"> JSON </a>
                                                 <a class="btn btn-sm green btn-outline" data-toggle="modal" href="#qrcode_{{$node->id}}"> 二维码 </a>
                                             </td>
                                         </tr>
@@ -91,19 +94,6 @@
                                     </div>
                                 </div>
                             </div>
-                            <div class="modal fade draggable-modal" id="json_{{$node->id}}" tabindex="-1" role="basic" aria-hidden="true">
-                                <div class="modal-dialog">
-                                    <div class="modal-content">
-                                        <div class="modal-header">
-                                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
-                                            <h4 class="modal-title">请复制以下信息,添加至gui-config.json</h4>
-                                        </div>
-                                        <div class="modal-body">
-                                            <textarea class="form-control" rows="16" readonly="readonly"> {{$node->json}} </textarea>
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
                             <div class="modal fade" id="qrcode_{{$node->id}}" tabindex="-1" role="dialog" aria-hidden="true">
                                 <div class="modal-dialog @if(!$node->compatible) modal-sm @endif">
                                     <div class="modal-content">
@@ -153,7 +143,6 @@
                 @foreach($nodeList as $node)
                     $("#txt_{{$node->id}}").draggable({handle: ".modal-header"});
                     $("#scheme_{{$node->id}}").draggable({handle: ".modal-header"});
-                    $("#json_{{$node->id}}").draggable({handle: ".modal-header"});
                     $("#qrcode_{{$node->id}}").draggable({handle: ".modal-header"});
                 @endforeach
             };