diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-04-20 17:05:27 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-04-20 17:05:27 +0300 |
| commit | ae5ad505d04fa347eb96a0d2bfb54ff541c3b709 (patch) | |
| tree | 54a8088e98e15868238be54b063bb051ab84fcb0 /web/html/form/stream | |
| parent | c188056f64be268dda8f7c16e23f7ef9c90d014f (diff) | |
add hysteria inbound
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
Diffstat (limited to 'web/html/form/stream')
| -rw-r--r-- | web/html/form/stream/stream_hysteria.html | 75 | ||||
| -rw-r--r-- | web/html/form/stream/stream_settings.html | 8 |
2 files changed, 82 insertions, 1 deletions
diff --git a/web/html/form/stream/stream_hysteria.html b/web/html/form/stream/stream_hysteria.html new file mode 100644 index 00000000..5e43d462 --- /dev/null +++ b/web/html/form/stream/stream_hysteria.html @@ -0,0 +1,75 @@ +{{define "form/streamHysteria"}} +<a-form :colon="false" :label-col="{ md: {span:8} }" + :wrapper-col="{ md: {span:14} }"> + <a-form-item label='Auth Password'> + <a-input v-model.trim="inbound.stream.hysteria.auth"></a-input> + </a-form-item> + <a-form-item label='UDP Idle Timeout'> + <a-input-number v-model.number="inbound.stream.hysteria.udpIdleTimeout" + :min="0"></a-input-number> + </a-form-item> + <a-form-item label='Masquerade'> + <a-switch v-model="inbound.stream.hysteria.masqueradeSwitch"></a-switch> + </a-form-item> + <template v-if="inbound.stream.hysteria.masqueradeSwitch"> + <a-divider :style="{ margin: '5px 0 0' }">Masquerade</a-divider> + <a-form-item label='Type'> + <a-select v-model="inbound.stream.hysteria.masquerade.type" + :dropdown-class-name="themeSwitcher.currentTheme"> + <a-select-option value="file">File</a-select-option> + <a-select-option value="proxy">Proxy</a-select-option> + <a-select-option value="string">String</a-select-option> + </a-select> + </a-form-item> + <a-form-item label='Dir' + v-if="inbound.stream.hysteria.masquerade.type === 'file'"> + <a-input + v-model.trim="inbound.stream.hysteria.masquerade.dir"></a-input> + </a-form-item> + <template v-if="inbound.stream.hysteria.masquerade.type === 'proxy'"> + <a-form-item label='URL'> + <a-input + v-model.trim="inbound.stream.hysteria.masquerade.url"></a-input> + </a-form-item> + <a-form-item label='Rewrite Host'> + <a-switch + v-model="inbound.stream.hysteria.masquerade.rewriteHost"></a-switch> + </a-form-item> + <a-form-item label='Insecure'> + <a-switch + v-model="inbound.stream.hysteria.masquerade.insecure"></a-switch> + </a-form-item> + </template> + <template v-if="inbound.stream.hysteria.masquerade.type === 'string'"> + <a-form-item label='Content'> + <a-input + v-model.trim="inbound.stream.hysteria.masquerade.content"></a-input> + </a-form-item> + <a-form-item + label='{{ i18n "pages.inbounds.stream.tcp.requestHeader" }}'> + <a-button size="small" + @click="inbound.stream.hysteria.masquerade.addHeader('', '')">+</a-button> + </a-form-item> + <a-form-item :wrapper-col="{span:24}"> + <a-input-group compact + v-for="(header, index) in inbound.stream.hysteria.masquerade.headers"> + <a-input style="width: 50%" v-model.trim="header.name" + placeholder='{{ i18n "pages.inbounds.stream.general.name"}}'> + <template slot="addonBefore" style="margin: 0;">[[ + index+1 ]]</template> + </a-input> + <a-input style="width: 50%" v-model.trim="header.value" + placeholder='{{ i18n "pages.inbounds.stream.general.value" }}'> + <a-button slot="addonAfter" size="small" + @click="inbound.stream.hysteria.masquerade.removeHeader(index)">-</a-button> + </a-input> + </a-input-group> + </a-form-item> + <a-form-item label='Status Code'> + <a-input-number + v-model.number="inbound.stream.hysteria.masquerade.statusCode"></a-input-number> + </a-form-item> + </template> + </template> +</a-form> +{{end}}
\ No newline at end of file diff --git a/web/html/form/stream/stream_settings.html b/web/html/form/stream/stream_settings.html index 5b00ef25..700fe793 100644 --- a/web/html/form/stream/stream_settings.html +++ b/web/html/form/stream/stream_settings.html @@ -1,7 +1,8 @@ {{define "form/streamSettings"}} <!-- select stream network --> <a-form :colon="false" :label-col="{ md: {span:8} }" - :wrapper-col="{ md: {span:14} }"> + :wrapper-col="{ md: {span:14} }" + v-if="inbound.protocol != Protocols.HYSTERIA"> <a-form-item label='{{ i18n "transmission" }}'> <a-select v-model="inbound.stream.network" :style="{ width: '75%' }" @change="streamNetworkChange" @@ -36,6 +37,11 @@ {{template "form/streamGRPC"}} </template> +<!-- hysteria --> +<template v-if="inbound.stream.network === 'hysteria'"> + {{template "form/streamHysteria"}} +</template> + <!-- httpupgrade --> <template v-if="inbound.stream.network === 'httpupgrade'"> {{template "form/streamHTTPUpgrade"}} |
