增加适配sudp

This commit is contained in:
刘嘉伟 2024-12-02 14:53:21 +08:00
parent dc511fabc4
commit 90233f006a
2 changed files with 32 additions and 9 deletions

View File

@ -56,7 +56,8 @@ ${
: "" : ""
} }
[[${ [[${
(m.type === "stcp" || m.type === "xtcp") && m.stcpModel === "visitors" (m.type === "stcp" || m.type === "xtcp" || m.type === "sudp") &&
m.stcpModel === "visitors"
? "visitors" ? "visitors"
: "proxies" : "proxies"
}]] }]]
@ -98,6 +99,7 @@ httpPassword = "${m.httpPassword}"
break; break;
case "stcp": case "stcp":
case "xtcp": case "xtcp":
case "sudp":
if (m.stcpModel === "visitors") { if (m.stcpModel === "visitors") {
// 访问者 // 访问者
toml += ` toml += `
@ -252,6 +254,7 @@ httpPassword = "${m.httpPassword}"
break; break;
case "stcp": case "stcp":
case "xtcp": case "xtcp":
case "sudp":
if (m.stcpModel === "visitors") { if (m.stcpModel === "visitors") {
// 访问者 // 访问者
ini += ` ini += `

View File

@ -74,7 +74,7 @@ const editForm = ref<Proxy>(defaultForm.value);
/** /**
* 代理类型 * 代理类型
*/ */
const proxyTypes = ref(["http", "https", "tcp", "udp", "stcp", "xtcp"]); const proxyTypes = ref(["http", "https", "tcp", "udp", "stcp", "xtcp", "sudp"]);
const stcpModels = ref([ const stcpModels = ref([
{ {
@ -172,20 +172,28 @@ const isStcp = computed(() => {
return editForm.value.type === "stcp"; return editForm.value.type === "stcp";
}); });
const isSudp = computed(() => {
return editForm.value.type === "sudp";
});
const isXtcp = computed(() => { const isXtcp = computed(() => {
return editForm.value.type === "xtcp"; return editForm.value.type === "xtcp";
}); });
const isStcpVisited = computed(() => { const isStcpVisited = computed(() => {
return ( return (
(editForm.value.type === "stcp" || editForm.value.type === "xtcp") && (editForm.value.type === "stcp" ||
editForm.value.type === "sudp" ||
editForm.value.type === "xtcp") &&
editForm.value.stcpModel === "visited" editForm.value.stcpModel === "visited"
); );
}); });
const isStcpVisitors = computed(() => { const isStcpVisitors = computed(() => {
return ( return (
(editForm.value.type === "stcp" || editForm.value.type === "xtcp") && (editForm.value.type === "stcp" ||
editForm.value.type === "sudp" ||
editForm.value.type === "xtcp") &&
editForm.value.stcpModel === "visitors" editForm.value.stcpModel === "visitors"
); );
}); });
@ -463,7 +471,11 @@ const handleCopyAccessAddress = (proxy: Proxy) => {
accessAddressStr = `${proxy.type}://${proxy.customDomains[0]}`; accessAddressStr = `${proxy.type}://${proxy.customDomains[0]}`;
} else if (proxy.type === "tcp" || proxy.type === "udp") { } else if (proxy.type === "tcp" || proxy.type === "udp") {
accessAddressStr = `${frpcConfig.value.serverAddr}:${proxy.remotePort}`; accessAddressStr = `${frpcConfig.value.serverAddr}:${proxy.remotePort}`;
} else if (proxy.type === "stcp" || proxy.type === "xtcp") { } else if (
proxy.type === "stcp" ||
proxy.type === "xtcp" ||
proxy.type === "sudp"
) {
accessAddressStr = `${proxy.bindAddr}:${proxy.bindPort}`; accessAddressStr = `${proxy.bindAddr}:${proxy.bindPort}`;
} }
const { copy, copied } = useClipboard(); const { copy, copied } = useClipboard();
@ -612,7 +624,9 @@ onUnmounted(() => {
</el-tag> </el-tag>
<el-tag <el-tag
v-if=" v-if="
(proxy.type === 'stcp' || proxy.type === 'xtcp') && (proxy.type === 'stcp' ||
proxy.type === 'xtcp' ||
proxy.type === 'sudp') &&
proxy.stcpModel === 'visitors' proxy.stcpModel === 'visitors'
" "
size="small" size="small"
@ -622,7 +636,9 @@ onUnmounted(() => {
<el-tag <el-tag
size="small" size="small"
v-if=" v-if="
(proxy.type === 'stcp' || proxy.type === 'xtcp') && (proxy.type === 'stcp' ||
proxy.type === 'xtcp' ||
proxy.type === 'sudp') &&
proxy.stcpModel === 'visited' proxy.stcpModel === 'visited'
" "
>被访问者 >被访问者
@ -796,7 +812,7 @@ onUnmounted(() => {
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<template v-if="isStcp || isXtcp"> <template v-if="isStcp || isSudp || isXtcp">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="`${editForm.type}模式:`" prop="stcpModel"> <el-form-item :label="`${editForm.type}模式:`" prop="stcpModel">
<el-radio-group v-model="editForm.stcpModel"> <el-radio-group v-model="editForm.stcpModel">
@ -866,7 +882,7 @@ onUnmounted(() => {
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
<template v-if="!(isStcp || isXtcp) || isStcpVisited"> <template v-if="!(isStcp || isXtcp || isSudp) || isStcpVisited">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="内网地址:" prop="localIp"> <el-form-item label="内网地址:" prop="localIp">
<el-autocomplete <el-autocomplete
@ -1325,6 +1341,10 @@ onUnmounted(() => {
background: #f8bf4b; background: #f8bf4b;
} }
.sudp {
background: #3d4bb9;
}
.domain-input { .domain-input {
width: calc(100% - 115px); width: calc(100% - 115px);
} }