Merge pull request #165 from KerryJi/feature/dev

fix fallback bug
This commit is contained in:
vaxilu
2022-04-28 14:32:31 +08:00
committed by GitHub
6 changed files with 35 additions and 16 deletions

1
.gitignore vendored
View File

@@ -7,3 +7,4 @@ x-ui-*.tar.gz
/x-ui
/release.sh
.sync*
main

2
go.mod
View File

@@ -9,7 +9,7 @@ require (
github.com/gin-contrib/sessions v0.0.3
github.com/gin-gonic/gin v1.7.1
github.com/go-ole/go-ole v1.2.5 // indirect
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1
github.com/nicksnyder/go-i18n/v2 v2.1.2
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
github.com/robfig/cron/v3 v3.0.1

View File

@@ -110,11 +110,13 @@ class XrayCommonClass {
}
class TcpStreamSettings extends XrayCommonClass {
constructor(type='none',
constructor(acceptProxyProtocol=false,
type='none',
request=new TcpStreamSettings.TcpRequest(),
response=new TcpStreamSettings.TcpResponse(),
) {
super();
this.acceptProxyProtocol = acceptProxyProtocol;
this.type = type;
this.request = request;
this.response = response;
@@ -125,7 +127,7 @@ class TcpStreamSettings extends XrayCommonClass {
if (!header) {
header = {};
}
return new TcpStreamSettings(
return new TcpStreamSettings(json.acceptProxyProtocol,
header.type,
TcpStreamSettings.TcpRequest.fromJson(header.request),
TcpStreamSettings.TcpResponse.fromJson(header.response),
@@ -134,6 +136,7 @@ class TcpStreamSettings extends XrayCommonClass {
toJson() {
return {
acceptProxyProtocol: this.acceptProxyProtocol,
header: {
type: this.type,
request: this.type === 'http' ? this.request.toJson() : undefined,
@@ -293,8 +296,9 @@ class KcpStreamSettings extends XrayCommonClass {
}
class WsStreamSettings extends XrayCommonClass {
constructor(path='/', headers=[]) {
constructor(acceptProxyProtocol=false, path='/', headers=[]) {
super();
this.acceptProxyProtocol = acceptProxyProtocol;
this.path = path;
this.headers = headers;
}
@@ -318,6 +322,7 @@ class WsStreamSettings extends XrayCommonClass {
static fromJson(json={}) {
return new WsStreamSettings(
json.acceptProxyProtocol,
json.path,
XrayCommonClass.toHeaders(json.headers),
);
@@ -325,6 +330,7 @@ class WsStreamSettings extends XrayCommonClass {
toJson() {
return {
acceptProxyProtocol: this.acceptProxyProtocol,
path: this.path,
headers: XrayCommonClass.toV2Headers(this.headers, false),
};
@@ -411,10 +417,11 @@ class GrpcStreamSettings extends XrayCommonClass {
class TlsStreamSettings extends XrayCommonClass {
constructor(serverName='',
certificates=[new TlsStreamSettings.Cert()]) {
certificates=[new TlsStreamSettings.Cert()], alpn=[]) {
super();
this.server = serverName;
this.certs = certificates;
this.alpn = alpn;
}
addCert(cert) {
@@ -430,9 +437,11 @@ class TlsStreamSettings extends XrayCommonClass {
if (!ObjectUtil.isEmpty(json.certificates)) {
certs = json.certificates.map(cert => TlsStreamSettings.Cert.fromJson(cert));
}
return new TlsStreamSettings(
json.serverName,
certs,
json.alpn
);
}
@@ -440,6 +449,7 @@ class TlsStreamSettings extends XrayCommonClass {
return {
serverName: this.server,
certificates: TlsStreamSettings.toJsonArray(this.certs),
alpn: this.alpn
};
}
}
@@ -629,11 +639,7 @@ class Inbound extends XrayCommonClass {
if (isTls) {
this.stream.security = 'tls';
} else {
if (this.protocol === Protocols.TROJAN) {
this.xtls = true;
} else {
this.stream.security = 'none';
}
this.stream.security = 'none';
}
}
@@ -645,11 +651,7 @@ class Inbound extends XrayCommonClass {
if (isXTls) {
this.stream.security = 'xtls';
} else {
if (this.protocol === Protocols.TROJAN) {
this.tls = true;
} else {
this.stream.security = 'none';
}
this.stream.security = 'none';
}
}

View File

@@ -1,6 +1,9 @@
{{define "form/streamTCP"}}
<!-- tcp type -->
<a-form layout="inline">
<a-form-item label="acceptProxyProtocol">
<a-switch v-model="inbound.stream.tcp.acceptProxyProtocol"></a-switch>
</a-form-item>
<a-form-item label="http 伪装">
<a-switch
:checked="inbound.stream.tcp.type === 'http'"

View File

@@ -1,4 +1,9 @@
{{define "form/streamWS"}}
<a-form layout="inline">
<a-form-item label="acceptProxyProtocol">
<a-switch v-model="inbound.stream.ws.acceptProxyProtocol"></a-switch>
</a-form-item>
</a-form>
<a-form layout="inline">
<a-form-item label="路径">
<a-input v-model.trim="inbound.stream.ws.path"></a-input>

View File

@@ -16,6 +16,9 @@
<a-form-item label="域名">
<a-input v-model.trim="inbound.stream.tls.server"></a-input>
</a-form-item>
<a-form-item label="alpn" placeholder="http/1.1,h2">
<a-input v-model.trim="inbound.stream.tls.alpn"></a-input>
</a-form-item>
<a-form-item label="证书">
<a-radio-group v-model="inbound.stream.tls.certs[0].useFile"
button-style="solid">
@@ -42,4 +45,9 @@
</a-form-item>
</template>
</a-form>
<a-form layout="inline" v-else-if = "inbound.stream.network === 'tcp' ">
<a-form-item label="tcp-acceptProxyProtocol">
<a-switch v-model="inbound.stream.tcp.acceptProxyProtocol"></a-switch>
</a-form-item>
</a-form>
{{end}}