Browse Source

Wireguard - kernel Tun

mhsanaei 4 months ago
parent
commit
ac7901abba

+ 5 - 1
web/assets/js/model/outbound.js

@@ -1178,7 +1178,8 @@ Outbound.WireguardSettings = class extends CommonClass {
         domainStrategy = '',
         reserved = '',
         peers = [new Outbound.WireguardSettings.Peer()],
-        kernelMode = false
+        kernelMode = false,
+        kernelTun = false
     ) {
         super();
         this.mtu = mtu;
@@ -1190,6 +1191,7 @@ Outbound.WireguardSettings = class extends CommonClass {
         this.reserved = Array.isArray(reserved) ? reserved.join(',') : reserved;
         this.peers = peers;
         this.kernelMode = kernelMode;
+        this.kernelTun = kernelTun;
     }
 
     addPeer() {
@@ -1210,6 +1212,7 @@ Outbound.WireguardSettings = class extends CommonClass {
             json.reserved,
             json.peers.map(peer => Outbound.WireguardSettings.Peer.fromJson(peer)),
             json.kernelMode,
+            json.kernelTun,
         );
     }
 
@@ -1223,6 +1226,7 @@ Outbound.WireguardSettings = class extends CommonClass {
             reserved: this.reserved ? this.reserved.split(",").map(Number) : undefined,
             peers: Outbound.WireguardSettings.Peer.toJsonArray(this.peers),
             kernelMode: this.kernelMode,
+            kernelTun: this.kernelTun,
         };
     }
 };

+ 11 - 1
web/assets/js/model/xray.js

@@ -2644,13 +2644,21 @@ Inbound.HttpSettings.HttpAccount = class extends XrayCommonClass {
 };
 
 Inbound.WireguardSettings = class extends XrayCommonClass {
-    constructor(protocol, mtu = 1420, secretKey = Wireguard.generateKeypair().privateKey, peers = [new Inbound.WireguardSettings.Peer()], kernelMode = false) {
+    constructor(
+        protocol,
+        mtu = 1420,
+        secretKey = Wireguard.generateKeypair().privateKey,
+        peers = [new Inbound.WireguardSettings.Peer()],
+        kernelMode = false,
+        kernelTun = false,
+    ) {
         super(protocol);
         this.mtu = mtu;
         this.secretKey = secretKey;
         this.pubKey = secretKey.length > 0 ? Wireguard.generateKeypair(secretKey).publicKey : '';
         this.peers = peers;
         this.kernelMode = kernelMode;
+        this.kernelTun = kernelTun;
     }
 
     addPeer() {
@@ -2668,6 +2676,7 @@ Inbound.WireguardSettings = class extends XrayCommonClass {
             json.secretKey,
             json.peers.map(peer => Inbound.WireguardSettings.Peer.fromJson(peer)),
             json.kernelMode,
+            json.kernelTun,
         );
     }
 
@@ -2677,6 +2686,7 @@ Inbound.WireguardSettings = class extends XrayCommonClass {
             secretKey: this.secretKey,
             peers: Inbound.WireguardSettings.Peer.toJsonArray(this.peers),
             kernelMode: this.kernelMode,
+            kernelTun: this.kernelTun,
         };
     }
 };

+ 3 - 0
web/html/xui/form/outbound.html

@@ -150,6 +150,9 @@
         <a-form-item label='Kernel Mode'>
           <a-switch v-model="outbound.settings.kernelMode"></a-switch>
         </a-form-item>
+        <a-form-item label='Kernel Tun'>
+          <a-switch v-model="outbound.settings.kernelTun"></a-switch>
+        </a-form-item>
         <a-form-item>
           <template slot="label">
             <a-tooltip>

+ 3 - 0
web/html/xui/form/protocol/wireguard.html

@@ -21,6 +21,9 @@
   <a-form-item label='Kernel Mode'>
     <a-switch v-model="inbound.settings.kernelMode"></a-switch>
   </a-form-item>
+  <a-form-item label='Kernel Tun'>
+    <a-switch v-model="inbound.settings.kernelTun"></a-switch>
+  </a-form-item>
   <a-form-item label="Peers">
     <a-button icon="plus" type="primary" size="small" @click="inbound.settings.addPeer()"></a-button>
   </a-form-item>

+ 4 - 0
web/html/xui/inbound_info_modal.html

@@ -373,6 +373,10 @@
           <td>Kernel Mode</td>
           <td>[[ inbound.settings.kernelMode ]]</td>
         </tr>
+        <tr>
+          <td>Kernel Tun</td>
+          <td>[[ inbound.settings.kernelTun ]]</td>
+        </tr>
         <template v-for="(peer, index) in inbound.settings.peers">
           <tr>
             <td colspan="2">

+ 2 - 1
web/html/xui/warp_modal.html

@@ -147,7 +147,8 @@
                                 publicKey: peer.public_key,
                                 endpoint: peer.endpoint.host,
                             }],
-                            kernelMode: false
+                            kernelMode: false,
+                            kernelTun: false,
                         }
                     });
                 }