Skip to content

Commit

Permalink
[externalProxy] seprated port field alireza0#656
Browse files Browse the repository at this point in the history
  • Loading branch information
alireza0 committed Nov 29, 2023
1 parent 3dd8dbd commit 3a913ca
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 50 deletions.
41 changes: 12 additions & 29 deletions sub/subService.go
Original file line number Diff line number Diff line change
Expand Up @@ -254,14 +254,9 @@ func (s *SubService) genVmessLink(inbound *model.Inbound, email string) string {
}
}
newObj["ps"] = s.genRemark(inbound, email, ep["remark"].(string))
dest, _ := ep["dest"].(string)
d := strings.Split(dest, ":")
if len(d) == 2 {
newObj["add"] = d[0]
newObj["port"] = d[1]
} else {
newObj["add"] = d[0]
}
newObj["add"] = ep["dest"].(string)
newObj["port"] = ep["port"].(string)

if newSecurity != "same" {
newObj["tls"] = newSecurity
}
Expand Down Expand Up @@ -421,13 +416,9 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string {
ep, _ := externalProxy.(map[string]interface{})
newSecurity, _ := ep["forceTls"].(string)
dest, _ := ep["dest"].(string)
d := strings.Split(dest, ":")
link := ""
if len(d) == 2 {
link = fmt.Sprintf("vless://%s@%s:%s", uuid, d[0], d[1])
} else {
link = fmt.Sprintf("vless://%s@%s:%d", uuid, d[0], port)
}
port, _ := ep["port"].(string)
link := fmt.Sprintf("vless://%s@%s:%s", uuid, dest, port)

if newSecurity != "same" {
params["security"] = newSecurity
} else {
Expand Down Expand Up @@ -603,13 +594,9 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string
ep, _ := externalProxy.(map[string]interface{})
newSecurity, _ := ep["forceTls"].(string)
dest, _ := ep["dest"].(string)
d := strings.Split(dest, ":")
link := ""
if len(d) == 2 {
link = fmt.Sprintf("trojan://%s@%s:%s", password, d[0], d[1])
} else {
link = fmt.Sprintf("trojan://%s@%s:%d", password, d[0], port)
}
port, _ := ep["port"].(string)
link := fmt.Sprintf("trojan://%s@%s:%s", password, dest, port)

if newSecurity != "same" {
params["security"] = newSecurity
} else {
Expand Down Expand Up @@ -760,13 +747,9 @@ func (s *SubService) genShadowsocksLink(inbound *model.Inbound, email string) st
ep, _ := externalProxy.(map[string]interface{})
newSecurity, _ := ep["forceTls"].(string)
dest, _ := ep["dest"].(string)
d := strings.Split(dest, ":")
link := ""
if len(d) == 2 {
link = fmt.Sprintf("ss://%s@%s:%s", base64.StdEncoding.EncodeToString([]byte(encPart)), d[0], d[1])
} else {
link = fmt.Sprintf("ss://%s@%s:%d", base64.StdEncoding.EncodeToString([]byte(encPart)), d[0], inbound.Port)
}
port, _ := ep["port"].(string)
link := fmt.Sprintf("ss://%s@%s:%s", base64.StdEncoding.EncodeToString([]byte(encPart)), dest, port)

if newSecurity != "same" {
params["security"] = newSecurity
} else {
Expand Down
9 changes: 1 addition & 8 deletions web/assets/js/model/xray.js
Original file line number Diff line number Diff line change
Expand Up @@ -1367,16 +1367,9 @@ class Inbound extends XrayCommonClass {
} else {
this.stream.externalProxy.forEach((ep) => {
let r = [remark, email, ep.remark].filter(x => x.length > 0).join('-')
let dest = ep.dest.split(":");
if(dest.length == 2) {
addr = dest[0];
port = dest[1];
} else {
addr = dest[0];
}
result.push({
remark: r,
link: this.genLink(addr, port, ep.forceTls, r, client)
link: this.genLink(ep.dest, ep.port, ep.forceTls, r, client)
});
});
}
Expand Down
25 changes: 14 additions & 11 deletions web/html/xui/form/stream/external_proxy.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,26 @@
<a-divider style="margin:0;"></a-divider>
<a-form-item label="External Proxy">
<a-switch v-model="externalProxy"></a-switch>
<a-button v-if="externalProxy" type="primary" style="margin-left: 10px" size="small" @click="inbound.stream.externalProxy.push({forceTls: 'same', dest: '', remark: ''})">+</a-button>
<a-button v-if="externalProxy" type="primary" style="margin-left: 10px" size="small" @click="inbound.stream.externalProxy.push({forceTls: 'same', dest: '', port: 443, remark: ''})">+</a-button>
</a-form-item>
<table width="100%" class="ant-table-tbody" v-if="externalProxy">
<tr style="line-height: 40px;">
<td width="100%">
<a-input-group style="margin-top:5px;" compact v-for="(row, index) in inbound.stream.externalProxy">
<template v-if="inbound.canEnableTls()">
<a-tooltip title="Force TLS">
<a-select v-model="row.forceTls" style="width:20%; margin: 0px" :dropdown-class-name="themeSwitcher.currentTheme">
<a-select-option value="same">{{ i18n "pages.inbounds.same" }}</a-select-option>
<a-select-option value="none">{{ i18n "none" }}</a-select-option>
<a-select-option value="tls">TLS</a-select-option>
</a-select>
</a-tooltip>
<template>
<a-tooltip title="Force TLS">
<a-select v-model="row.forceTls" style="width:20%; margin: 0px" :dropdown-class-name="themeSwitcher.currentTheme">
<a-select-option value="same">{{ i18n "pages.inbounds.same" }}</a-select-option>
<a-select-option value="none">{{ i18n "none" }}</a-select-option>
<a-select-option value="tls">TLS</a-select-option>
</a-select>
</a-tooltip>
</template>
<a-input style="width: 40%" v-model.trim="row.dest" placeholder='{{ i18n "host" }}:{{ i18n "pages.inbounds.port" }}'></a-input>
<a-input :style="inbound.canEnableTls() ? 'width: 30%' : 'width: 50%'" v-model.trim="row.remark" placeholder='{{ i18n "remark" }}'></a-input>
<a-input style="width: 35%" v-model.trim="row.dest" placeholder='{{ i18n "host" }}'></a-input>
<a-tooltip title='{{ i18n "pages.inbounds.port" }}'>
<a-input-number style="width: 15%;" v-model.number="row.port" min="1" max="65531"></a-input-number>
</a-tooltip>
<a-input style="width: 20%" v-model.trim="row.remark" placeholder='{{ i18n "remark" }}'></a-input>
<a-button style="width: 10%; margin: 0px" @click="inbound.stream.externalProxy.splice(index, 1)">-</a-button>
</a-input-group>
</td>
Expand Down
3 changes: 2 additions & 1 deletion web/html/xui/inbound_modal.html
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@
if (value) {
inModal.inbound.stream.externalProxy = [{
forceTls: "same",
dest: window.location.hostname + ":" + inModal.inbound.port,
dest: window.location.hostname,
port: inModal.inbound.port,
remark: ""
}];
} else {
Expand Down
3 changes: 2 additions & 1 deletion web/service/inbound.go
Original file line number Diff line number Diff line change
Expand Up @@ -1383,7 +1383,8 @@ func (s *InboundService) MigrationRequirements() {
for _, domain := range domains {
if domainMap, ok := domain.(map[string]interface{}); ok {
domainMap["forceTls"] = "same"
domainMap["dest"] = domainMap["domain"].(string) + fmt.Sprintf(":%d", ep.Port)
domainMap["port"] = ep.Port
domainMap["dest"] = domainMap["domain"].(string)
delete(domainMap, "domain")
}
}
Expand Down

0 comments on commit 3a913ca

Please sign in to comment.