Explorar o código

节点加入NAT支持

admin %!s(int64=7) %!d(string=hai) anos
pai
achega
710e8e91cb

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

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

+ 7 - 5
app/Http/Controllers/AdminController.php

@@ -579,10 +579,11 @@ class AdminController extends Controller
                 $ssNode->obfs = $request->get('obfs') ? $request->get('obfs') : '';
                 $ssNode->obfs_param = $request->get('obfs_param') ? $request->get('obfs_param') : '';
                 $ssNode->traffic_rate = $request->get('traffic_rate') ? $request->get('traffic_rate') : 1;
-                $ssNode->bandwidth = $request->get('bandwidth');
-                $ssNode->traffic = $request->get('traffic');
+                $ssNode->bandwidth = $request->get('bandwidth') ? $request->get('bandwidth') : 1000;
+                $ssNode->traffic = $request->get('traffic') ? $request->get('traffic') : 1000;
                 $ssNode->monitor_url = $request->get('monitor_url') ? $request->get('monitor_url') : '';
                 $ssNode->is_subscribe = intval($request->get('is_subscribe'));
+                $ssNode->is_nat = intval($request->get('is_nat'));
                 $ssNode->ssh_port = $request->get('ssh_port') ? intval($request->get('ssh_port')) : 22;
                 $ssNode->is_tcp_check = intval($request->get('is_tcp_check'));
                 $ssNode->compatible = intval($request->get('compatible'));
@@ -694,10 +695,11 @@ class AdminController extends Controller
                     'obfs'            => $request->get('obfs'),
                     'obfs_param'      => $request->get('obfs_param'),
                     'traffic_rate'    => $request->get('traffic_rate'),
-                    'bandwidth'       => $request->get('bandwidth'),
-                    'traffic'         => $request->get('traffic'),
-                    'monitor_url'     => $request->get('monitor_url'),
+                    'bandwidth'       => $request->get('bandwidth') ? $request->get('bandwidth') : 1000,
+                    'traffic'         => $request->get('traffic') ? $request->get('traffic') : 1000,
+                    'monitor_url'     => $request->get('monitor_url') ? $request->get('monitor_url') : '',
                     'is_subscribe'    => intval($request->get('is_subscribe')),
+                    'is_nat'          => intval($request->get('is_nat')),
                     'ssh_port'        => intval($request->get('ssh_port')),
                     'is_tcp_check'    => intval($request->get('is_tcp_check')),
                     'compatible'      => intval($request->get('compatible')),

+ 79 - 33
resources/views/admin/addNode.blade.php

@@ -15,9 +15,10 @@
                             <!-- BEGIN FORM-->
                             <form action="{{url('admin/addNode')}}" method="post" class="form-horizontal" onsubmit="return do_submit();">
                                 <div class="form-body">
-                                    <div class="alert alert-danger alert-dismissable">
-                                        <button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>
-                                        <strong>注意:</strong> 添加节点后自动生成的<code>ID</code>,即为该节点后端部署SSR(R)时<code>usermysql.json</code>中的<code>node_id</code>的值;更改服务器的SSH端口<a href="https://github.com/ssrpanel/SSRPanel/wiki/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A6%81%E6%AD%A2PING%E3%80%81%E6%94%B9SSH%E7%AB%AF%E5%8F%A3%E5%8F%B7" target="_blank">教程</a>;
+                                    <div class="alert alert-danger">
+                                        <strong>注意:</strong> 添加节点后自动生成的<code>ID</code>,即为该节点部署SSR后端时<code>usermysql.json</code>中的<code>node_id</code>的值;同时也是部署V2Ray后端时的<code>nodeId</code>的值;
+                                        V2Ray GO版节点部署<a href="https://github.com/ssrpanel/SSRPanel/wiki/V2Ray%E5%AE%8C%E6%95%B4%E9%85%8D%E7%BD%AE%E7%A4%BA%E4%BE%8B%EF%BC%88Go%E7%89%88%EF%BC%89" target="_blank">教程</a>;
+                                        更改服务器的SSH端口<a href="https://github.com/ssrpanel/SSRPanel/wiki/%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%A6%81%E6%AD%A2PING%E3%80%81%E6%94%B9SSH%E7%AB%AF%E5%8F%A3%E5%8F%B7" target="_blank">教程</a>;
                                     </div>
                                     <div class="row">
                                         <div class="col-md-6">
@@ -30,22 +31,31 @@
                                                 </div>
                                                 <div class="portlet-body">
                                                     <div class="form-group">
-                                                        <label for="name" class="col-md-3 control-label"> 节点名称 </label>
+                                                        <label for="is_nat" class="col-md-3 control-label">NAT</label>
                                                         <div class="col-md-8">
-                                                            <input type="text" class="form-control" name="name" id="name" placeholder="" autofocus required>
+                                                            <div class="mt-radio-inline">
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_nat" value="1"> 是
+                                                                    <span></span>
+                                                                </label>
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_nat" value="0" checked> 否
+                                                                    <span></span>
+                                                                </label>
+                                                            </div>
+                                                            <span class="help-block"> NAT机需要<a href="https://github.com/ssrpanel/SSRPanel/wiki/NAT-VPS%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B" target="_blank">配置DDNS</a>,TCP阻断检测无效,务必填写域名 </span>
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
-                                                        <label for="server" class="col-md-3 control-label"> 绑定域名 </label>
+                                                        <label for="name" class="col-md-3 control-label"> 节点名称 </label>
                                                         <div class="col-md-8">
-                                                            <input type="text" class="form-control" name="server" id="server" placeholder="服务器域名地址,填则优先取域名地址">
+                                                            <input type="text" class="form-control" name="name" id="name" placeholder="" autofocus required>
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
-                                                        <label for="ssh_port" class="col-md-3 control-label"> SSH端口 </label>
+                                                        <label for="server" class="col-md-3 control-label"> 域名 </label>
                                                         <div class="col-md-8">
-                                                            <input type="text" class="form-control" name="ssh_port" value="22" id="ssh_port" placeholder="服务器SSH端口" required>
-                                                            <span class="help-block">请务必正确填写此值,否则TCP阻断检测可能报异常</span>
+                                                            <input type="text" class="form-control" name="server" id="server" placeholder="服务器域名地址,填则优先取域名地址">
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
@@ -61,7 +71,21 @@
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
-                                                        <label for="status" class="col-md-3 control-label">标签</label>
+                                                        <label for="ssh_port" class="col-md-3 control-label"> SSH端口 </label>
+                                                        <div class="col-md-8">
+                                                            <input type="text" class="form-control" name="ssh_port" value="22" id="ssh_port" placeholder="服务器SSH端口" required>
+                                                            <span class="help-block">请务必正确填写此值,否则TCP阻断检测可能误报</span>
+                                                        </div>
+                                                    </div>
+                                                    <div class="form-group">
+                                                        <label for="traffic_rate" class="col-md-3 control-label"> 流量比例 </label>
+                                                        <div class="col-md-8">
+                                                            <input type="text" class="form-control" name="traffic_rate" value="1.0" id="traffic_rate" placeholder="" required>
+                                                            <span class="help-block"> 举例:0.1用100M结算10M,5用100M结算500M </span>
+                                                        </div>
+                                                    </div>
+                                                    <div class="form-group">
+                                                        <label for="labels" class="col-md-3 control-label">标签</label>
                                                         <div class="col-md-8">
                                                             <select id="labels" class="form-control select2-multiple" name="labels[]" multiple>
                                                                 @foreach($label_list as $label)
@@ -113,20 +137,16 @@
                                                     <div class="form-group">
                                                         <label for="status" class="col-md-3 control-label">状态</label>
                                                         <div class="col-md-8">
-                                                            <select class="form-control" name="status" id="status">
-                                                                <option value="1" selected>正常</option>
-                                                                <option value="0">维护</option>
-                                                            </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 class="mt-radio-inline">
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="status" value="1" checked> 正常
+                                                                    <span></span>
+                                                                </label>
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="status" value="0"> 维护
+                                                                    <span></span>
+                                                                </label>
+                                                            </div>
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
@@ -145,12 +165,22 @@
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
-                                                        <label for="traffic_rate" class="col-md-3 control-label"> 流量比例 </label>
+                                                        <label for="is_tcp_check" class="col-md-3 control-label">TCP阻断检测</label>
                                                         <div class="col-md-8">
-                                                            <input type="text" class="form-control" name="traffic_rate" value="1.0" id="traffic_rate" placeholder="" required>
-                                                            <span class="help-block"> 举例:0.1用100M结算10M,5用100M结算500M </span>
+                                                            <div class="mt-radio-inline">
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_tcp_check" value="1" checked> 开启
+                                                                    <span></span>
+                                                                </label>
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_tcp_check" value="0"> 关闭
+                                                                    <span></span>
+                                                                </label>
+                                                            </div>
+                                                            <span class="help-block"> 每30~60分钟随机进行TCP阻断检测 </span>
                                                         </div>
                                                     </div>
+                                                    <!--
                                                     <div class="form-group">
                                                         <label for="bandwidth" class="col-md-3 control-label">出口带宽</label>
                                                         <div class="col-md-8">
@@ -176,6 +206,7 @@
                                                             <span class="help-block"> 例如:http://us1.ssrpanel.com/api/monitor </span>
                                                         </div>
                                                     </div>
+                                                    -->
                                                 </div>
                                             </div>
                                             <!-- END SAMPLE FORM PORTLET-->
@@ -254,11 +285,11 @@
                                                             <div class="col-md-8">
                                                                 <div class="mt-radio-inline">
                                                                     <label class="mt-radio">
-                                                                        <input type="radio" name="compatible" value="1" checked> 是
+                                                                        <input type="radio" name="compatible" value="1"> 是
                                                                         <span></span>
                                                                     </label>
                                                                     <label class="mt-radio">
-                                                                        <input type="radio" name="compatible" value="0"> 否
+                                                                        <input type="radio" name="compatible" value="0" checked> 否
                                                                         <span></span>
                                                                     </label>
                                                                 </div>
@@ -462,6 +493,7 @@
             var traffic = $('#traffic').val();
             var monitor_url = $('#monitor_url').val();
             var is_subscribe = $("input:radio[name='is_subscribe']:checked").val();
+            var is_nat = $("input:radio[name='is_nat']:checked").val();
             var ssh_port = $('#ssh_port').val();
             var compatible = $("input:radio[name='compatible']:checked").val();
             var single = $('#single').val();
@@ -472,8 +504,8 @@
             var single_protocol = $('#single_protocol').val();
             var single_obfs = $('#single_obfs').val();
             var sort = $('#sort').val();
-            var status = $('#status').val();
-            var is_tcp_check = $('#is_tcp_check').val();
+            var status = $("input:radio[name='status']:checked").val();
+            var is_tcp_check = $("input:radio[name='is_tcp_check']:checked").val();
 
             var service = $("input:radio[name='service']:checked").val();
             var v2_alter_id = $('#v2_alter_id').val();
@@ -508,6 +540,7 @@
                     traffic: traffic,
                     monitor_url: monitor_url,
                     is_subscribe: is_subscribe,
+                    is_nat: is_nat,
                     ssh_port: ssh_port,
                     compatible: compatible,
                     single: single,
@@ -554,7 +587,7 @@
             }
         });
 
-        // 设置服务
+        // 设置服务类型
         $("input:radio[name='service']").on('change', function() {
             var service = parseInt($(this).val());
 
@@ -567,6 +600,19 @@
             }
         });
 
+        // 设置是否为NAT
+        $("input:radio[name='is_nat']").on('change', function() {
+            var is_nat = parseInt($(this).val());
+
+            if (is_nat === 1) {
+                $("#ip").val("1.1.1.1").attr("readonly", "readonly");
+                $("#server").attr("required", "required");
+            } else {
+                $("#ip").val("").removeAttr("readonly");
+                $("#server").removeAttr("required");
+            }
+        });
+
         // 服务条款
         function showTnc() {
             var content = '1.请勿直接复制黏贴以下配置,SSR(R)会报错的;'

+ 73 - 28
resources/views/admin/editNode.blade.php

@@ -25,6 +25,22 @@
                                                     </div>
                                                 </div>
                                                 <div class="portlet-body">
+                                                    <div class="form-group">
+                                                        <label for="is_nat" class="col-md-3 control-label">NAT</label>
+                                                        <div class="col-md-8">
+                                                            <div class="mt-radio-inline">
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_nat" value="1" {{$node->is_nat == '1' ? 'checked' : ''}}> 是
+                                                                    <span></span>
+                                                                </label>
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_nat" value="0" {{$node->is_nat == '0' ? 'checked' : ''}}> 否
+                                                                    <span></span>
+                                                                </label>
+                                                            </div>
+                                                            <span class="help-block"> NAT机需要<a href="https://github.com/ssrpanel/SSRPanel/wiki/NAT-VPS%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B" target="_blank">配置DDNS</a>,不做TCP阻断检测,务必填写域名 </span>
+                                                        </div>
+                                                    </div>
                                                     <div class="form-group">
                                                         <label for="name" class="col-md-3 control-label"> 节点名称 </label>
                                                         <div class="col-md-8">
@@ -34,19 +50,12 @@
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
-                                                        <label for="server" class="col-md-3 control-label"> 绑定域名 </label>
+                                                        <label for="server" class="col-md-3 control-label"> 域名 </label>
                                                         <div class="col-md-8">
                                                             <input type="text" class="form-control" name="server" value="{{$node->server}}" id="server" placeholder="服务器域名地址,填则优先取域名地址">
                                                             <span class="help-block">如果开启Namesilo且域名是Namesilo上购买的,则会强制更新域名的DNS记录为本节点IP,如果其他节点绑定了该域名则会清空其域名信息</span>
                                                         </div>
                                                     </div>
-                                                    <div class="form-group">
-                                                        <label for="ssh_port" class="col-md-3 control-label"> SSH端口 </label>
-                                                        <div class="col-md-8">
-                                                            <input type="text" class="form-control" name="ssh_port" value="{{$node->ssh_port}}" id="ssh_port" placeholder="服务器SSH端口" required>
-                                                            <span class="help-block">请务必正确填写此值,否则TCP阻断检测可能报异常</span>
-                                                        </div>
-                                                    </div>
                                                     <div class="form-group">
                                                         <label for="ip" class="col-md-3 control-label"> IPV4地址 </label>
                                                         <div class="col-md-8">
@@ -60,7 +69,21 @@
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
-                                                        <label for="status" class="col-md-3 control-label">标签</label>
+                                                        <label for="ssh_port" class="col-md-3 control-label"> SSH端口 </label>
+                                                        <div class="col-md-8">
+                                                            <input type="text" class="form-control" name="ssh_port" value="{{$node->ssh_port}}" id="ssh_port" placeholder="服务器SSH端口" required>
+                                                            <span class="help-block">请务必正确填写此值,否则TCP阻断检测可能误报</span>
+                                                        </div>
+                                                    </div>
+                                                    <div class="form-group">
+                                                        <label for="traffic_rate" class="col-md-3 control-label"> 流量比例 </label>
+                                                        <div class="col-md-8">
+                                                            <input type="text" class="form-control" name="traffic_rate" value="{{$node->traffic_rate}}" value="1.0" id="traffic_rate" placeholder="" required>
+                                                            <span class="help-block"> 举例:0.1用100M结算10M,5用100M结算500M </span>
+                                                        </div>
+                                                    </div>
+                                                    <div class="form-group">
+                                                        <label for="labels" class="col-md-3 control-label">标签</label>
                                                         <div class="col-md-8">
                                                             <select id="labels" class="form-control select2-multiple" name="labels[]" multiple>
                                                                 @foreach($label_list as $label)
@@ -112,20 +135,16 @@
                                                     <div class="form-group">
                                                         <label for="status" class="col-md-3 control-label">状态</label>
                                                         <div class="col-md-8">
-                                                            <select class="form-control" name="status" id="status">
-                                                                <option value="1" {{$node->status == '1' ? 'selected' : ''}}>正常</option>
-                                                                <option value="0" {{$node->status == '0' ? 'selected' : ''}}>维护</option>
-                                                            </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 class="mt-radio-inline">
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="status" value="1" {{$node->status == '1' ? 'checked' : ''}}> 正常
+                                                                    <span></span>
+                                                                </label>
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="status" value="0" {{$node->status == '0' ? 'checked' : ''}}> 维护
+                                                                    <span></span>
+                                                                </label>
+                                                            </div>
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
@@ -144,12 +163,22 @@
                                                         </div>
                                                     </div>
                                                     <div class="form-group">
-                                                        <label for="traffic_rate" class="col-md-3 control-label"> 流量比例 </label>
+                                                        <label for="is_tcp_check" class="col-md-3 control-label">TCP阻断检测</label>
                                                         <div class="col-md-8">
-                                                            <input type="text" class="form-control" name="traffic_rate" value="{{$node->traffic_rate}}" value="1.0" id="traffic_rate" placeholder="" required>
-                                                            <span class="help-block"> 举例:0.1用100M结算10M,5用100M结算500M </span>
+                                                            <div class="mt-radio-inline">
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_tcp_check" value="1" {{$node->is_tcp_check == '1' ? 'checked' : ''}}> 开启
+                                                                    <span></span>
+                                                                </label>
+                                                                <label class="mt-radio">
+                                                                    <input type="radio" name="is_tcp_check" value="0" {{$node->is_tcp_check == '0' ? 'checked' : ''}}> 关闭
+                                                                    <span></span>
+                                                                </label>
+                                                            </div>
+                                                            <span class="help-block"> 每30~60分钟随机进行TCP阻断检测 </span>
                                                         </div>
                                                     </div>
+                                                    <!--
                                                     <div class="form-group">
                                                         <label for="bandwidth" class="col-md-3 control-label">出口带宽</label>
                                                         <div class="col-md-8">
@@ -175,6 +204,7 @@
                                                             <span class="help-block"> 例如:http://us1.xxx.com/monitor.php </span>
                                                         </div>
                                                     </div>
+                                                    -->
                                                 </div>
                                             </div>
                                             <!-- END SAMPLE FORM PORTLET-->
@@ -463,6 +493,7 @@
             var traffic = $('#traffic').val();
             var monitor_url = $('#monitor_url').val();
             var is_subscribe = $("input:radio[name='is_subscribe']:checked").val();
+            var is_nat = $("input:radio[name='is_nat']:checked").val();
             var ssh_port = $('#ssh_port').val();
             var compatible = $("input:radio[name='compatible']:checked").val();
             var single = $('#single').val();
@@ -473,7 +504,7 @@
             var single_protocol = $('#single_protocol').val();
             var single_obfs = $('#single_obfs').val();
             var sort = $('#sort').val();
-            var status = $('#status').val();
+            var status = $("input:radio[name='status']:checked").val();
             var is_tcp_check = $('#is_tcp_check').val();
 
             var service = $("input:radio[name='service']:checked").val();
@@ -510,6 +541,7 @@
                     traffic: traffic,
                     monitor_url: monitor_url,
                     is_subscribe: is_subscribe,
+                    is_nat: is_nat,
                     ssh_port: ssh_port,
                     compatible: compatible,
                     single: single,
@@ -556,7 +588,7 @@
             }
         });
 
-        // 设置服务
+        // 设置服务类型
         $("input:radio[name='service']").on('change', function() {
             var service = parseInt($(this).val());
 
@@ -569,6 +601,19 @@
             }
         });
 
+        // 设置是否为NAT
+        $("input:radio[name='is_nat']").on('change', function() {
+            var is_nat = parseInt($(this).val());
+
+            if (is_nat === 1) {
+                $("#ip").val("1.1.1.1").attr("readonly", "readonly");
+                $("#server").attr("required", "required");
+            } else {
+                $("#ip").val("").removeAttr("readonly");
+                $("#server").removeAttr("required");
+            }
+        });
+
         // 服务条款
         function showTnc() {
             var content = '1.请勿直接复制黏贴以下配置,SSR(R)会报错的;'

+ 5 - 2
resources/views/admin/nodeList.blade.php

@@ -39,7 +39,7 @@
                                     <th> 类型 </th>
                                     <th> 名称 </th>
                                     <th> IP </th>
-                                    <th> 绑定域名 </th>
+                                    <th> 域名 </th>
                                     <th> 状态 </th>
                                     <th> 在线 </th>
                                     <th> <span class="node-flow"><a href="javascript:showFlowTips();">产生流量</a></span> </th>
@@ -57,7 +57,10 @@
                                         @foreach($nodeList as $node)
                                             <tr class="odd gradeX">
                                                 <td> {{$node->id}} </td>
-                                                <td> {{$node->type == 2 ? 'V2Ray' : 'Shadowsocks(R)'}} </td>
+                                                <td>
+                                                    <span class="label {{$node->status ? 'label-info' : 'label-default'}}">{{$node->type == 2 ? 'V2Ray' : 'ShadowsocksR'}}</span>
+                                                    <span class="label {{$node->status ? 'label-info' : 'label-default'}}">{{$node->is_nat ? 'NAT' : ''}}</span>
+                                                </td>
                                                 <td> {{$node->name}} </td>
                                                 <td> <span class="label {{$node->status ? 'label-danger' : 'label-default'}}">{{$node->ip}}</span> </td>
                                                 <td> <span class="label {{$node->status ? 'label-danger' : 'label-default'}}">{{$node->server}}</span> </td>

+ 2 - 4
sql/db.sql

@@ -40,14 +40,12 @@ CREATE TABLE `ss_node` (
   `obfs_param` VARCHAR(128) NULL DEFAULT '' COMMENT '混淆参数',
   `traffic_rate` FLOAT NOT NULL DEFAULT '1.00' COMMENT '流量比率',
   `bandwidth` INT(11) NOT NULL DEFAULT '100' COMMENT '出口带宽,单位M',
-  `traffic` BIGINT(20) NOT NULL DEFAULT '1000' COMMENT '每月可用流量,单位G',
+  `traffic` INT(20) NOT NULL DEFAULT '1000' COMMENT '每月可用流量,单位G',
   `monitor_url` VARCHAR(255) NULL DEFAULT NULL COMMENT '监控地址',
   `is_subscribe` TINYINT(4) NULL DEFAULT '1' COMMENT '是否允许用户订阅该节点:0-否、1-是',
+  `is_nat` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '是否为NAT机:0-否、1-是',
   `ssh_port` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '22' COMMENT 'SSH端口',
   `is_tcp_check` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '是否开启检测: 0-不开启、1-开启',
-  `icmp` TINYINT(4) NOT NULL DEFAULT '1' COMMENT 'ICMP检测:-2-内外都不通、-1-内不通外通、0-外不通内通、1-内外都通',
-  `tcp` TINYINT(4) NOT NULL DEFAULT '1' COMMENT 'TCP检测:-2-内外都不通、-1-内不通外通、0-外不通内通、1-内外都通',
-  `udp` TINYINT(4) NOT NULL DEFAULT '1' COMMENT 'ICMP检测:-2-内外都不通、-1-内不通外通、0-外不通内通、1-内外都通',
   `compatible` TINYINT(4) NULL DEFAULT '0' COMMENT '兼容SS',
   `single` TINYINT(4) NULL DEFAULT '0' COMMENT '单端口多用户:0-否、1-是',
   `single_force` TINYINT(4) NULL DEFAULT NULL COMMENT '模式:0-兼容模式、1-严格模式',

+ 9 - 0
sql/update/20190107.sql

@@ -0,0 +1,9 @@
+-- 移除节点无用字段、加入是否nat机字段
+ALTER TABLE `ss_node`
+	ADD COLUMN `is_nat` TINYINT NOT NULL DEFAULT '0' COMMENT '是否为NAT机:0-否、1-是' AFTER `is_subscribe`,
+	DROP COLUMN `icmp`,
+	DROP COLUMN `tcp`,
+	DROP COLUMN `udp`;
+
+ALTER TABLE `ss_node`
+	CHANGE COLUMN `traffic` `traffic` INT(11) NOT NULL DEFAULT '1000' COMMENT '每月可用流量,单位G' AFTER `bandwidth`;