Wireguard - kernel Tun

This commit is contained in:
mhsanaei 2024-10-16 12:06:47 +02:00
parent dff2496d73
commit ac7901abba
No known key found for this signature in database
GPG key ID: 4DACC0663B5986F5
6 changed files with 28 additions and 3 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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