mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-20 05:52:24 +00:00
quic removed
This commit is contained in:
parent
b4baf35ed8
commit
58c721e7d2
18 changed files with 5 additions and 228 deletions
|
@ -268,13 +268,13 @@ func (s *SubJsonService) realityData(rData map[string]interface{}) map[string]in
|
||||||
rltyData["spiderX"] = "/" + random.Seq(15)
|
rltyData["spiderX"] = "/" + random.Seq(15)
|
||||||
shortIds, ok := rData["shortIds"].([]interface{})
|
shortIds, ok := rData["shortIds"].([]interface{})
|
||||||
if ok && len(shortIds) > 0 {
|
if ok && len(shortIds) > 0 {
|
||||||
rltyData["shortId"] = shortIds
|
rltyData["shortId"] = shortIds[random.Num(len(shortIds))].(string)
|
||||||
} else {
|
} else {
|
||||||
rltyData["shortId"] = ""
|
rltyData["shortId"] = ""
|
||||||
}
|
}
|
||||||
serverNames, ok := rData["serverNames"].([]interface{})
|
serverNames, ok := rData["serverNames"].([]interface{})
|
||||||
if ok && len(serverNames) > 0 {
|
if ok && len(serverNames) > 0 {
|
||||||
rltyData["serverName"] = serverNames
|
rltyData["serverName"] = serverNames[random.Num(len(serverNames))].(string)
|
||||||
} else {
|
} else {
|
||||||
rltyData["serverName"] = ""
|
rltyData["serverName"] = ""
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,12 +213,6 @@ func (s *SubService) genVmessLink(inbound *model.Inbound, email string) string {
|
||||||
http, _ := stream["httpSettings"].(map[string]interface{})
|
http, _ := stream["httpSettings"].(map[string]interface{})
|
||||||
obj["path"], _ = http["path"].(string)
|
obj["path"], _ = http["path"].(string)
|
||||||
obj["host"] = searchHost(http)
|
obj["host"] = searchHost(http)
|
||||||
case "quic":
|
|
||||||
quic, _ := stream["quicSettings"].(map[string]interface{})
|
|
||||||
header := quic["header"].(map[string]interface{})
|
|
||||||
obj["type"], _ = header["type"].(string)
|
|
||||||
obj["host"], _ = quic["security"].(string)
|
|
||||||
obj["path"], _ = quic["key"].(string)
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
||||||
obj["path"] = grpc["serviceName"].(string)
|
obj["path"] = grpc["serviceName"].(string)
|
||||||
|
@ -370,12 +364,6 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string {
|
||||||
http, _ := stream["httpSettings"].(map[string]interface{})
|
http, _ := stream["httpSettings"].(map[string]interface{})
|
||||||
params["path"] = http["path"].(string)
|
params["path"] = http["path"].(string)
|
||||||
params["host"] = searchHost(http)
|
params["host"] = searchHost(http)
|
||||||
case "quic":
|
|
||||||
quic, _ := stream["quicSettings"].(map[string]interface{})
|
|
||||||
params["quicSecurity"] = quic["security"].(string)
|
|
||||||
params["key"] = quic["key"].(string)
|
|
||||||
header := quic["header"].(map[string]interface{})
|
|
||||||
params["headerType"] = header["type"].(string)
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
||||||
params["serviceName"] = grpc["serviceName"].(string)
|
params["serviceName"] = grpc["serviceName"].(string)
|
||||||
|
@ -604,12 +592,6 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string
|
||||||
http, _ := stream["httpSettings"].(map[string]interface{})
|
http, _ := stream["httpSettings"].(map[string]interface{})
|
||||||
params["path"] = http["path"].(string)
|
params["path"] = http["path"].(string)
|
||||||
params["host"] = searchHost(http)
|
params["host"] = searchHost(http)
|
||||||
case "quic":
|
|
||||||
quic, _ := stream["quicSettings"].(map[string]interface{})
|
|
||||||
params["quicSecurity"] = quic["security"].(string)
|
|
||||||
params["key"] = quic["key"].(string)
|
|
||||||
header := quic["header"].(map[string]interface{})
|
|
||||||
params["headerType"] = header["type"].(string)
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
||||||
params["serviceName"] = grpc["serviceName"].(string)
|
params["serviceName"] = grpc["serviceName"].(string)
|
||||||
|
@ -839,12 +821,6 @@ func (s *SubService) genShadowsocksLink(inbound *model.Inbound, email string) st
|
||||||
http, _ := stream["httpSettings"].(map[string]interface{})
|
http, _ := stream["httpSettings"].(map[string]interface{})
|
||||||
params["path"] = http["path"].(string)
|
params["path"] = http["path"].(string)
|
||||||
params["host"] = searchHost(http)
|
params["host"] = searchHost(http)
|
||||||
case "quic":
|
|
||||||
quic, _ := stream["quicSettings"].(map[string]interface{})
|
|
||||||
params["quicSecurity"] = quic["security"].(string)
|
|
||||||
params["key"] = quic["key"].(string)
|
|
||||||
header := quic["header"].(map[string]interface{})
|
|
||||||
params["headerType"] = header["type"].(string)
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
grpc, _ := stream["grpcSettings"].(map[string]interface{})
|
||||||
params["serviceName"] = grpc["serviceName"].(string)
|
params["serviceName"] = grpc["serviceName"].(string)
|
||||||
|
|
|
@ -471,7 +471,6 @@ class StreamSettings extends CommonClass {
|
||||||
this.kcp = kcpSettings;
|
this.kcp = kcpSettings;
|
||||||
this.ws = wsSettings;
|
this.ws = wsSettings;
|
||||||
this.http = httpSettings;
|
this.http = httpSettings;
|
||||||
this.quic = quicSettings;
|
|
||||||
this.grpc = grpcSettings;
|
this.grpc = grpcSettings;
|
||||||
this.httpupgrade = httpupgradeSettings;
|
this.httpupgrade = httpupgradeSettings;
|
||||||
this.splithttp = splithttpSettings;
|
this.splithttp = splithttpSettings;
|
||||||
|
@ -523,7 +522,6 @@ class StreamSettings extends CommonClass {
|
||||||
kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined,
|
kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined,
|
||||||
wsSettings: network === 'ws' ? this.ws.toJson() : undefined,
|
wsSettings: network === 'ws' ? this.ws.toJson() : undefined,
|
||||||
httpSettings: network === 'http' ? this.http.toJson() : undefined,
|
httpSettings: network === 'http' ? this.http.toJson() : undefined,
|
||||||
quicSettings: network === 'quic' ? this.quic.toJson() : undefined,
|
|
||||||
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
||||||
httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined,
|
httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined,
|
||||||
splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined,
|
splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined,
|
||||||
|
@ -591,7 +589,7 @@ class Outbound extends CommonClass {
|
||||||
|
|
||||||
canEnableTls() {
|
canEnableTls() {
|
||||||
if (![Protocols.VMess, Protocols.VLESS, Protocols.Trojan, Protocols.Shadowsocks].includes(this.protocol)) return false;
|
if (![Protocols.VMess, Protocols.VLESS, Protocols.Trojan, Protocols.Shadowsocks].includes(this.protocol)) return false;
|
||||||
return ["tcp", "ws", "http", "quic", "grpc", "httpupgrade", "splithttp"].includes(this.stream.network);
|
return ["tcp", "ws", "http", "grpc", "httpupgrade", "splithttp"].includes(this.stream.network);
|
||||||
}
|
}
|
||||||
|
|
||||||
//this is used for xtls-rprx-vision
|
//this is used for xtls-rprx-vision
|
||||||
|
@ -707,11 +705,6 @@ class Outbound extends CommonClass {
|
||||||
stream.http = new HttpStreamSettings(
|
stream.http = new HttpStreamSettings(
|
||||||
json.path,
|
json.path,
|
||||||
json.host);
|
json.host);
|
||||||
} else if (network === 'quic') {
|
|
||||||
stream.quic = new QuicStreamSettings(
|
|
||||||
json.host ? json.host : 'none',
|
|
||||||
json.path,
|
|
||||||
json.type ? json.type : 'none');
|
|
||||||
} else if (network === 'grpc') {
|
} else if (network === 'grpc') {
|
||||||
stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi');
|
stream.grpc = new GrpcStreamSettings(json.path, json.authority, json.type == 'multi');
|
||||||
} else if (network === 'httpupgrade') {
|
} else if (network === 'httpupgrade') {
|
||||||
|
@ -753,11 +746,6 @@ class Outbound extends CommonClass {
|
||||||
stream.ws = new WsStreamSettings(path, host);
|
stream.ws = new WsStreamSettings(path, host);
|
||||||
} else if (type === 'http' || type == 'h2') {
|
} else if (type === 'http' || type == 'h2') {
|
||||||
stream.http = new HttpStreamSettings(path, host);
|
stream.http = new HttpStreamSettings(path, host);
|
||||||
} else if (type === 'quic') {
|
|
||||||
stream.quic = new QuicStreamSettings(
|
|
||||||
url.searchParams.get('quicSecurity') ?? 'none',
|
|
||||||
url.searchParams.get('key') ?? '',
|
|
||||||
headerType ?? 'none');
|
|
||||||
} else if (type === 'grpc') {
|
} else if (type === 'grpc') {
|
||||||
stream.grpc = new GrpcStreamSettings(
|
stream.grpc = new GrpcStreamSettings(
|
||||||
url.searchParams.get('serviceName') ?? '',
|
url.searchParams.get('serviceName') ?? '',
|
||||||
|
|
|
@ -449,37 +449,6 @@ class HttpStreamSettings extends XrayCommonClass {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class QuicStreamSettings extends XrayCommonClass {
|
|
||||||
constructor(
|
|
||||||
security = 'none',
|
|
||||||
key = RandomUtil.randomSeq(10),
|
|
||||||
type = 'none'
|
|
||||||
) {
|
|
||||||
super();
|
|
||||||
this.security = security;
|
|
||||||
this.key = key;
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
static fromJson(json = {}) {
|
|
||||||
return new QuicStreamSettings(
|
|
||||||
json.security,
|
|
||||||
json.key,
|
|
||||||
json.header ? json.header.type : 'none',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
toJson() {
|
|
||||||
return {
|
|
||||||
security: this.security,
|
|
||||||
key: this.key,
|
|
||||||
header: {
|
|
||||||
type: this.type,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class GrpcStreamSettings extends XrayCommonClass {
|
class GrpcStreamSettings extends XrayCommonClass {
|
||||||
constructor(
|
constructor(
|
||||||
serviceName = "",
|
serviceName = "",
|
||||||
|
@ -1092,7 +1061,6 @@ class StreamSettings extends XrayCommonClass {
|
||||||
kcpSettings = new KcpStreamSettings(),
|
kcpSettings = new KcpStreamSettings(),
|
||||||
wsSettings = new WsStreamSettings(),
|
wsSettings = new WsStreamSettings(),
|
||||||
httpSettings = new HttpStreamSettings(),
|
httpSettings = new HttpStreamSettings(),
|
||||||
quicSettings = new QuicStreamSettings(),
|
|
||||||
grpcSettings = new GrpcStreamSettings(),
|
grpcSettings = new GrpcStreamSettings(),
|
||||||
httpupgradeSettings = new HTTPUpgradeStreamSettings(),
|
httpupgradeSettings = new HTTPUpgradeStreamSettings(),
|
||||||
splithttpSettings = new SplitHTTPStreamSettings(),
|
splithttpSettings = new SplitHTTPStreamSettings(),
|
||||||
|
@ -1109,7 +1077,6 @@ class StreamSettings extends XrayCommonClass {
|
||||||
this.kcp = kcpSettings;
|
this.kcp = kcpSettings;
|
||||||
this.ws = wsSettings;
|
this.ws = wsSettings;
|
||||||
this.http = httpSettings;
|
this.http = httpSettings;
|
||||||
this.quic = quicSettings;
|
|
||||||
this.grpc = grpcSettings;
|
this.grpc = grpcSettings;
|
||||||
this.httpupgrade = httpupgradeSettings;
|
this.httpupgrade = httpupgradeSettings;
|
||||||
this.splithttp = splithttpSettings;
|
this.splithttp = splithttpSettings;
|
||||||
|
@ -1173,7 +1140,6 @@ class StreamSettings extends XrayCommonClass {
|
||||||
KcpStreamSettings.fromJson(json.kcpSettings),
|
KcpStreamSettings.fromJson(json.kcpSettings),
|
||||||
WsStreamSettings.fromJson(json.wsSettings),
|
WsStreamSettings.fromJson(json.wsSettings),
|
||||||
HttpStreamSettings.fromJson(json.httpSettings),
|
HttpStreamSettings.fromJson(json.httpSettings),
|
||||||
QuicStreamSettings.fromJson(json.quicSettings),
|
|
||||||
GrpcStreamSettings.fromJson(json.grpcSettings),
|
GrpcStreamSettings.fromJson(json.grpcSettings),
|
||||||
HTTPUpgradeStreamSettings.fromJson(json.httpupgradeSettings),
|
HTTPUpgradeStreamSettings.fromJson(json.httpupgradeSettings),
|
||||||
SplitHTTPStreamSettings.fromJson(json.splithttpSettings),
|
SplitHTTPStreamSettings.fromJson(json.splithttpSettings),
|
||||||
|
@ -1194,7 +1160,6 @@ class StreamSettings extends XrayCommonClass {
|
||||||
kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined,
|
kcpSettings: network === 'kcp' ? this.kcp.toJson() : undefined,
|
||||||
wsSettings: network === 'ws' ? this.ws.toJson() : undefined,
|
wsSettings: network === 'ws' ? this.ws.toJson() : undefined,
|
||||||
httpSettings: network === 'http' ? this.http.toJson() : undefined,
|
httpSettings: network === 'http' ? this.http.toJson() : undefined,
|
||||||
quicSettings: network === 'quic' ? this.quic.toJson() : undefined,
|
|
||||||
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
grpcSettings: network === 'grpc' ? this.grpc.toJson() : undefined,
|
||||||
httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined,
|
httpupgradeSettings: network === 'httpupgrade' ? this.httpupgrade.toJson() : undefined,
|
||||||
splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined,
|
splithttpSettings: network === 'splithttp' ? this.splithttp.toJson() : undefined,
|
||||||
|
@ -1311,10 +1276,6 @@ class Inbound extends XrayCommonClass {
|
||||||
return this.network === "kcp";
|
return this.network === "kcp";
|
||||||
}
|
}
|
||||||
|
|
||||||
get isQuic() {
|
|
||||||
return this.network === "quic"
|
|
||||||
}
|
|
||||||
|
|
||||||
get isGrpc() {
|
get isGrpc() {
|
||||||
return this.network === "grpc";
|
return this.network === "grpc";
|
||||||
}
|
}
|
||||||
|
@ -1393,18 +1354,6 @@ class Inbound extends XrayCommonClass {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
get quicSecurity() {
|
|
||||||
return this.stream.quic.security;
|
|
||||||
}
|
|
||||||
|
|
||||||
get quicKey() {
|
|
||||||
return this.stream.quic.key;
|
|
||||||
}
|
|
||||||
|
|
||||||
get quicType() {
|
|
||||||
return this.stream.quic.type;
|
|
||||||
}
|
|
||||||
|
|
||||||
get kcpType() {
|
get kcpType() {
|
||||||
return this.stream.kcp.type;
|
return this.stream.kcp.type;
|
||||||
}
|
}
|
||||||
|
@ -1424,7 +1373,7 @@ class Inbound extends XrayCommonClass {
|
||||||
|
|
||||||
canEnableTls() {
|
canEnableTls() {
|
||||||
if (![Protocols.VMESS, Protocols.VLESS, Protocols.TROJAN, Protocols.SHADOWSOCKS].includes(this.protocol)) return false;
|
if (![Protocols.VMESS, Protocols.VLESS, Protocols.TROJAN, Protocols.SHADOWSOCKS].includes(this.protocol)) return false;
|
||||||
return ["tcp", "ws", "http", "quic", "grpc", "httpupgrade", "splithttp"].includes(this.network);
|
return ["tcp", "ws", "http", "grpc", "httpupgrade", "splithttp"].includes(this.network);
|
||||||
}
|
}
|
||||||
|
|
||||||
//this is used for xtls-rprx-vision
|
//this is used for xtls-rprx-vision
|
||||||
|
@ -1497,10 +1446,6 @@ class Inbound extends XrayCommonClass {
|
||||||
obj.net = 'h2';
|
obj.net = 'h2';
|
||||||
obj.path = this.stream.http.path;
|
obj.path = this.stream.http.path;
|
||||||
obj.host = this.stream.http.host.join(',');
|
obj.host = this.stream.http.host.join(',');
|
||||||
} else if (network === 'quic') {
|
|
||||||
obj.type = this.stream.quic.type;
|
|
||||||
obj.host = this.stream.quic.security;
|
|
||||||
obj.path = this.stream.quic.key;
|
|
||||||
} else if (network === 'grpc') {
|
} else if (network === 'grpc') {
|
||||||
obj.path = this.stream.grpc.serviceName;
|
obj.path = this.stream.grpc.serviceName;
|
||||||
obj.authority = this.stream.grpc.authority;
|
obj.authority = this.stream.grpc.authority;
|
||||||
|
@ -1570,12 +1515,6 @@ class Inbound extends XrayCommonClass {
|
||||||
params.set("path", http.path);
|
params.set("path", http.path);
|
||||||
params.set("host", http.host);
|
params.set("host", http.host);
|
||||||
break;
|
break;
|
||||||
case "quic":
|
|
||||||
const quic = this.stream.quic;
|
|
||||||
params.set("quicSecurity", quic.security);
|
|
||||||
params.set("key", quic.key);
|
|
||||||
params.set("headerType", quic.type);
|
|
||||||
break;
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
const grpc = this.stream.grpc;
|
const grpc = this.stream.grpc;
|
||||||
params.set("serviceName", grpc.serviceName);
|
params.set("serviceName", grpc.serviceName);
|
||||||
|
@ -1691,12 +1630,6 @@ class Inbound extends XrayCommonClass {
|
||||||
params.set("path", http.path);
|
params.set("path", http.path);
|
||||||
params.set("host", http.host);
|
params.set("host", http.host);
|
||||||
break;
|
break;
|
||||||
case "quic":
|
|
||||||
const quic = this.stream.quic;
|
|
||||||
params.set("quicSecurity", quic.security);
|
|
||||||
params.set("key", quic.key);
|
|
||||||
params.set("headerType", quic.type);
|
|
||||||
break;
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
const grpc = this.stream.grpc;
|
const grpc = this.stream.grpc;
|
||||||
params.set("serviceName", grpc.serviceName);
|
params.set("serviceName", grpc.serviceName);
|
||||||
|
@ -1779,12 +1712,6 @@ class Inbound extends XrayCommonClass {
|
||||||
params.set("path", http.path);
|
params.set("path", http.path);
|
||||||
params.set("host", http.host);
|
params.set("host", http.host);
|
||||||
break;
|
break;
|
||||||
case "quic":
|
|
||||||
const quic = this.stream.quic;
|
|
||||||
params.set("quicSecurity", quic.security);
|
|
||||||
params.set("key", quic.key);
|
|
||||||
params.set("headerType", quic.type);
|
|
||||||
break;
|
|
||||||
case "grpc":
|
case "grpc":
|
||||||
const grpc = this.stream.grpc;
|
const grpc = this.stream.grpc;
|
||||||
params.set("serviceName", grpc.serviceName);
|
params.set("serviceName", grpc.serviceName);
|
||||||
|
|
|
@ -239,7 +239,6 @@
|
||||||
<a-select-option value="kcp">mKCP</a-select-option>
|
<a-select-option value="kcp">mKCP</a-select-option>
|
||||||
<a-select-option value="ws">WebSocket</a-select-option>
|
<a-select-option value="ws">WebSocket</a-select-option>
|
||||||
<a-select-option value="http">H2</a-select-option>
|
<a-select-option value="http">H2</a-select-option>
|
||||||
<a-select-option value="quic">QUIC</a-select-option>
|
|
||||||
<a-select-option value="grpc">gRPC</a-select-option>
|
<a-select-option value="grpc">gRPC</a-select-option>
|
||||||
<a-select-option value="httpupgrade">HTTPUpgrade</a-select-option>
|
<a-select-option value="httpupgrade">HTTPUpgrade</a-select-option>
|
||||||
<a-select-option value="splithttp">SplitHTTP</a-select-option>
|
<a-select-option value="splithttp">SplitHTTP</a-select-option>
|
||||||
|
@ -318,30 +317,6 @@
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- quic -->
|
|
||||||
<template v-if="outbound.stream.network === 'quic'">
|
|
||||||
<a-form-item label='{{ i18n "pages.inbounds.stream.quic.encryption" }}'>
|
|
||||||
<a-select v-model="outbound.stream.quic.security" :dropdown-class-name="themeSwitcher.currentTheme">
|
|
||||||
<a-select-option value="none">None</a-select-option>
|
|
||||||
<a-select-option value="aes-128-gcm">AES-128-GCM</a-select-option>
|
|
||||||
<a-select-option value="chacha20-poly1305">CHACHA20-POLY1305</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label='{{ i18n "password" }}'>
|
|
||||||
<a-input v-model.trim="outbound.stream.quic.key"></a-input>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label='{{ i18n "camouflage" }}'>
|
|
||||||
<a-select v-model="outbound.stream.quic.type" :dropdown-class-name="themeSwitcher.currentTheme">
|
|
||||||
<a-select-option value="none">None</a-select-option>
|
|
||||||
<a-select-option value="srtp">SRTP</a-select-option>
|
|
||||||
<a-select-option value="utp">uTP</a-select-option>
|
|
||||||
<a-select-option value="wechat-video">WeChat</a-select-option>
|
|
||||||
<a-select-option value="dtls">DTLS 1.2</a-select-option>
|
|
||||||
<a-select-option value="wireguard">WireGuard</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- grpc -->
|
<!-- grpc -->
|
||||||
<template v-if="outbound.stream.network === 'grpc'">
|
<template v-if="outbound.stream.network === 'grpc'">
|
||||||
<a-form-item label='Service Name'>
|
<a-form-item label='Service Name'>
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
{{define "form/streamQUIC"}}
|
|
||||||
<a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
|
|
||||||
<a-form-item label='{{ i18n "pages.inbounds.stream.quic.encryption" }}'>
|
|
||||||
<a-select v-model="inbound.stream.quic.security" :dropdown-class-name="themeSwitcher.currentTheme">
|
|
||||||
<a-select-option value="none">None</a-select-option>
|
|
||||||
<a-select-option value="aes-128-gcm">AES-128-GCM</a-select-option>
|
|
||||||
<a-select-option value="chacha20-poly1305">CHACHA20-POLY1305</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item>
|
|
||||||
<template slot="label">
|
|
||||||
<a-tooltip>
|
|
||||||
<template slot="title">
|
|
||||||
<span>{{ i18n "reset" }}</span>
|
|
||||||
</template>
|
|
||||||
{{ i18n "password" }}
|
|
||||||
<a-icon @click="inbound.stream.quic.key = RandomUtil.randomSeq(10)"type="sync"> </a-icon>
|
|
||||||
</a-tooltip>
|
|
||||||
</template>
|
|
||||||
<a-input v-model.trim="inbound.stream.quic.key"></a-input>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label='{{ i18n "camouflage" }}'>
|
|
||||||
<a-select v-model="inbound.stream.quic.type" style="width: 50%" :dropdown-class-name="themeSwitcher.currentTheme">
|
|
||||||
<a-select-option value="none">None</a-select-option>
|
|
||||||
<a-select-option value="srtp">SRTP</a-select-option>
|
|
||||||
<a-select-option value="utp">uTP</a-select-option>
|
|
||||||
<a-select-option value="wechat-video">WeChat</a-select-option>
|
|
||||||
<a-select-option value="dtls">DTLS 1.2</a-select-option>
|
|
||||||
<a-select-option value="wireguard">WireGuard</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
</a-form>
|
|
||||||
{{end}}
|
|
|
@ -8,7 +8,6 @@
|
||||||
<a-select-option value="kcp">mKCP</a-select-option>
|
<a-select-option value="kcp">mKCP</a-select-option>
|
||||||
<a-select-option value="ws">WebSocket</a-select-option>
|
<a-select-option value="ws">WebSocket</a-select-option>
|
||||||
<a-select-option value="http">H2</a-select-option>
|
<a-select-option value="http">H2</a-select-option>
|
||||||
<a-select-option value="quic">QUIC</a-select-option>
|
|
||||||
<a-select-option value="grpc">gRPC</a-select-option>
|
<a-select-option value="grpc">gRPC</a-select-option>
|
||||||
<a-select-option value="httpupgrade">HTTPUpgrade</a-select-option>
|
<a-select-option value="httpupgrade">HTTPUpgrade</a-select-option>
|
||||||
<a-select-option value="splithttp">SplitHTTP</a-select-option>
|
<a-select-option value="splithttp">SplitHTTP</a-select-option>
|
||||||
|
@ -36,11 +35,6 @@
|
||||||
{{template "form/streamHTTP"}}
|
{{template "form/streamHTTP"}}
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- quic -->
|
|
||||||
<template v-if="inbound.stream.network === 'quic'">
|
|
||||||
{{template "form/streamQUIC"}}
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- grpc -->
|
<!-- grpc -->
|
||||||
<template v-if="inbound.stream.network === 'grpc'">
|
<template v-if="inbound.stream.network === 'grpc'">
|
||||||
{{template "form/streamGRPC"}}
|
{{template "form/streamGRPC"}}
|
||||||
|
|
|
@ -58,26 +58,6 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="inbound.isQuic">
|
|
||||||
<tr>
|
|
||||||
<td>quic {{ i18n "encryption" }}</td>
|
|
||||||
<td>
|
|
||||||
<a-tag>[[ inbound.quicSecurity ]]</a-tag>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>quic {{ i18n "password" }}</td>
|
|
||||||
<td>
|
|
||||||
<a-tag>[[ inbound.quicKey ]]</a-tag>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>quic {{ i18n "camouflage" }}</td>
|
|
||||||
<td>
|
|
||||||
<a-tag>[[ inbound.quicType ]]</a-tag>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</template>
|
|
||||||
<template v-if="inbound.isKcp">
|
<template v-if="inbound.isKcp">
|
||||||
<tr>
|
<tr>
|
||||||
<td>kcp {{ i18n "encryption" }}</td>
|
<td>kcp {{ i18n "encryption" }}</td>
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "Request Header"
|
"requestHeader" = "Request Header"
|
||||||
"responseHeader" = "Response Header"
|
"responseHeader" = "Response Header"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "Encryption"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "Panel Settings"
|
"title" = "Panel Settings"
|
||||||
"save" = "Save"
|
"save" = "Save"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "Encabezado de solicitud"
|
"requestHeader" = "Encabezado de solicitud"
|
||||||
"responseHeader" = "Encabezado de respuesta"
|
"responseHeader" = "Encabezado de respuesta"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "Cifrado"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "Configuraciones"
|
"title" = "Configuraciones"
|
||||||
"save" = "Guardar"
|
"save" = "Guardar"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "سربرگ درخواست"
|
"requestHeader" = "سربرگ درخواست"
|
||||||
"responseHeader" = "سربرگ پاسخ"
|
"responseHeader" = "سربرگ پاسخ"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "رمزنگاری"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "تنظیمات پنل"
|
"title" = "تنظیمات پنل"
|
||||||
"save" = "ذخیره"
|
"save" = "ذخیره"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "Header Permintaan"
|
"requestHeader" = "Header Permintaan"
|
||||||
"responseHeader" = "Header Respons"
|
"responseHeader" = "Header Respons"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "Enkripsi"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "Pengaturan Panel"
|
"title" = "Pengaturan Panel"
|
||||||
"save" = "Simpan"
|
"save" = "Simpan"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "Cabeçalho da Requisição"
|
"requestHeader" = "Cabeçalho da Requisição"
|
||||||
"responseHeader" = "Cabeçalho da Resposta"
|
"responseHeader" = "Cabeçalho da Resposta"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "Criptografia"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "Configurações do Painel"
|
"title" = "Configurações do Painel"
|
||||||
"save" = "Salvar"
|
"save" = "Salvar"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "Заголовок запроса"
|
"requestHeader" = "Заголовок запроса"
|
||||||
"responseHeader" = "Заголовок ответа"
|
"responseHeader" = "Заголовок ответа"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "Шифрование"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "Настройки"
|
"title" = "Настройки"
|
||||||
"save" = "Сохранить"
|
"save" = "Сохранить"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "İstek Başlığı"
|
"requestHeader" = "İstek Başlığı"
|
||||||
"responseHeader" = "Yanıt Başlığı"
|
"responseHeader" = "Yanıt Başlığı"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "Şifreleme"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "Panel Ayarları"
|
"title" = "Panel Ayarları"
|
||||||
"save" = "Kaydet"
|
"save" = "Kaydet"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "Заголовок запиту"
|
"requestHeader" = "Заголовок запиту"
|
||||||
"responseHeader" = "Заголовок відповіді"
|
"responseHeader" = "Заголовок відповіді"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "Шифрування"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "Параметри панелі"
|
"title" = "Параметри панелі"
|
||||||
"save" = "Зберегти"
|
"save" = "Зберегти"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "Header yêu cầu"
|
"requestHeader" = "Header yêu cầu"
|
||||||
"responseHeader" = "Header phản hồi"
|
"responseHeader" = "Header phản hồi"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "Mã hóa"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "Cài đặt"
|
"title" = "Cài đặt"
|
||||||
"save" = "Lưu"
|
"save" = "Lưu"
|
||||||
|
|
|
@ -225,9 +225,6 @@
|
||||||
"requestHeader" = "请求头"
|
"requestHeader" = "请求头"
|
||||||
"responseHeader" = "响应头"
|
"responseHeader" = "响应头"
|
||||||
|
|
||||||
[pages.inbounds.stream.quic]
|
|
||||||
"encryption" = "加密"
|
|
||||||
|
|
||||||
[pages.settings]
|
[pages.settings]
|
||||||
"title" = "面板设置"
|
"title" = "面板设置"
|
||||||
"save" = "保存"
|
"save" = "保存"
|
||||||
|
|
Loading…
Reference in a new issue