Added support for Vmess AEAD (including Loon/QX/Surge), closes 70

This commit is contained in:
Peng-YM 2022-03-11 22:00:41 +08:00
parent a981763982
commit 265a88fc5f
3 changed files with 39 additions and 9 deletions

View File

@ -2492,10 +2492,14 @@ var ProxyUtils = (function () {
}`;
}
}
return `vmess=${proxy.server}:${proxy.port},method=${proxy.cipher === "auto" ? "none" : proxy.cipher
let result = `vmess=${proxy.server}:${proxy.port},method=${proxy.cipher === "auto" ? "none" : proxy.cipher
},password=${proxy.uuid}${obfs_opts}${proxy.tfo ? ",fast-open=true" : ",fast-open=false"
}${proxy.udp ? ",udp-relay=true" : ",udp-relay=false"},tag=${proxy.name
}`;
}${proxy.udp ? ",udp-relay=true" : ",udp-relay=false"}`;
if (typeof proxy['vmess-aead'] !== "undefined") {
result += `,aead=${proxy['vmess-aead']}`;
}
result += `,tag=${proxy.name}`;
return result;
case "trojan":
return `trojan=${proxy.server}:${proxy.port},password=${proxy.password
}${proxy.sni ? ",tls-host=" + proxy.sni : ""
@ -2563,8 +2567,12 @@ var ProxyUtils = (function () {
obfs_opts += `${proxy.sni ? ",tls-name:" + proxy.sni : ""
},skip-cert-verify:${proxy["skip-cert-verify"] || "false"}`;
}
return `${proxy.name}=vmess,${proxy.server},${proxy.port},${proxy.cipher === "auto" ? "none" : proxy.cipher
let result = `${proxy.name}=vmess,${proxy.server},${proxy.port},${proxy.cipher === "auto" ? "none" : proxy.cipher
},"${proxy.uuid}",over-tls:${proxy.tls || "false"}${obfs_opts}`;
if (typeof proxy['vmess-aead'] !== "undefined") {
result += `,vmess-aead=${proxy['vmess-aead']}`;
}
return result;
case "trojan":
return `${proxy.name}=trojan,${proxy.server},${proxy.port},"${proxy.password
}"${proxy.sni ? ",tls-name:" + proxy.sni : ""},skip-cert-verify:${proxy["skip-cert-verify"] || "false"
@ -2615,6 +2623,9 @@ var ProxyUtils = (function () {
result = `${proxy.name}=vmess,${proxy.server},${proxy.port
},username=${proxy.uuid},tls=${proxy.tls || "false"},tfo=${proxy.tfo || "false"
}`;
if (typeof proxy['vmess-aead'] !== "undefined") {
result += `,vmess-aead=${proxy['vmess-aead']}`;
}
if (proxy.network === "ws") {
const path = proxy["ws-path"] || "/";
const wsHeaders = Object.entries(proxy["ws-headers"]).map(

File diff suppressed because one or more lines are too long

View File

@ -185,6 +185,24 @@
</v-col>
</v-row>
</v-radio-group>
<v-radio-group
v-model="options['vmess-aead']"
class="mt-0 mb-0"
dense
>
Vmess AEAD
<v-row>
<v-col>
<v-radio label="默认" value="DEFAULT"/>
</v-col>
<v-col>
<v-radio label="强制开启" value="FORCE_OPEN"/>
</v-col>
<v-col>
<v-radio label="强制关闭" value="FORCE_CLOSE"/>
</v-col>
</v-row>
</v-radio-group>
</v-item-group>
</v-form>
</v-card>
@ -369,7 +387,8 @@ export default {
udp: "DEFAULT",
"skip-cert-verify": "DEFAULT",
tfo: "DEFAULT",
"surge-hybrid": "DEFAULT"
"surge-hybrid": "DEFAULT",
"vmess-aead": "DEFAULT",
},
process: [],
selected: []
@ -437,8 +456,8 @@ export default {
type: "Useless Filter"
});
}
// udp, tfo, scert
for (const opt of ['udp', 'tfo', 'skip-cert-verify', 'surge-hybrid']) {
// udp, tfo, scert, surge-hybrid, vmess-aead
for (const opt of ['udp', 'tfo', 'skip-cert-verify', 'surge-hybrid', 'vmess-aead']) {
if (this.options[opt] !== 'DEFAULT') {
output.process.push({
type: "Set Property Operator",